openwrt/toolchain/binutils/patches/2.40/046-gas-correct-symbol-name-comparison-in-.startof.-.siz.patch

47 lines
1.4 KiB
Diff
Raw Normal View History

From b2bc62b7b4e7638c3a249d2d2728ceb4d5f2b22c Mon Sep 17 00:00:00 2001
From: Jan Beulich <jbeulich@suse.com>
Date: Tue, 14 Feb 2023 08:35:02 +0100
Subject: [PATCH 46/50] gas: correct symbol name comparison in
.startof./.sizeof. handling
In 162c6aef1f3a ("gas: fold symbol table entries generated for
.startof.() / .sizeof.()") I screwed up quite badly, inverting the case
sensitive and case insensitive comparison functions.
---
gas/expr.c | 4 ++--
gas/testsuite/gas/elf/startof.d | 2 ++
gas/testsuite/gas/elf/startof.s | 3 +++
3 files changed, 7 insertions(+), 2 deletions(-)
--- a/gas/expr.c
+++ b/gas/expr.c
@@ -149,8 +149,8 @@ symbol_lookup_or_make (const char *name,
name = S_GET_NAME (symbolP);
if ((symbols_case_sensitive
- ? strcasecmp (buf, name)
- : strcmp (buf, name)) == 0)
+ ? strcmp (buf, name)
+ : strcasecmp (buf, name)) == 0)
{
free (buf);
return symbolP;
--- a/gas/testsuite/gas/elf/startof.d
+++ b/gas/testsuite/gas/elf/startof.d
@@ -7,4 +7,6 @@ Symbol table .*
#...
[1-8]: 0+ .* UND \.startof\.\.text
[2-9]: 0+ .* UND \.sizeof\.\.text
+ +[1-9][0-9]*: 0+ .* UND \.startof\.\.Text
+ +[1-9][0-9]*: 0+ .* UND \.sizeof\.\.TEXT
#pass
--- a/gas/testsuite/gas/elf/startof.s
+++ b/gas/testsuite/gas/elf/startof.s
@@ -4,3 +4,6 @@
.dc.a 0
.dc.a .sizeof.(.text)
.dc.a .startof.(.text)
+ .dc.a 0
+ .dc.a .startof.(.Text)
+ .dc.a .sizeof.(.TEXT)