]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
arm: don't engage symver scrubber hack in CCS mode
authorJan Beulich <jbeulich@suse.com>
Wed, 11 Sep 2024 11:55:01 +0000 (13:55 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 11 Sep 2024 11:55:01 +0000 (13:55 +0200)
In that mode the comment char is ; while @ has no special meaning.
Engaging the special logic in that case results in comments not being
respected on .symver lines.

gas/app.c
gas/testsuite/gas/arm/ccs-symver.d [new file with mode: 0644]
gas/testsuite/gas/arm/ccs-symver.s [new file with mode: 0644]

index 41ba4163a2aa84cbaf17679cc54573f04fd6b935..bca3c3e8146e1d6d78147b78ad289650d492d16f 100644 (file)
--- a/gas/app.c
+++ b/gas/app.c
@@ -805,7 +805,9 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen,
         in this function.  */
       if (symver_state == NULL)
        {
-         if ((state == 0 || state == 1) && ch == symver_pseudo[0])
+         if ((state == 0 || state == 1)
+             && strchr (tc_comment_chars, '@') != NULL
+             && ch == symver_pseudo[0])
            symver_state = symver_pseudo + 1;
        }
       else
diff --git a/gas/testsuite/gas/arm/ccs-symver.d b/gas/testsuite/gas/arm/ccs-symver.d
new file mode 100644 (file)
index 0000000..c1255ab
--- /dev/null
@@ -0,0 +1,10 @@
+#name: .symver in CCS mode
+#as: -mccs
+#readelf: -sW
+# This test is only valid on ELF based ports.
+#notarget: *-*-pe *-*-wince
+
+#...
+ +[0-9]+: +0+ +1 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +foo
+ +[0-9]+: +0+ +1 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +foo@version1
+#pass
diff --git a/gas/testsuite/gas/arm/ccs-symver.s b/gas/testsuite/gas/arm/ccs-symver.s
new file mode 100644 (file)
index 0000000..00a96f5
--- /dev/null
@@ -0,0 +1,7 @@
+       .data
+       .globl foo
+       .type foo,@object
+foo:
+       .byte 0
+       .size foo,.-foo
+       .symver foo,foo@version1;remove