[binutils-gdb] gas/ELF: Allow local symbol with non-protected visibility

"H.J. Lu via Binutils-cvs" <[email protected]> Thu, 25 Jun 2026 02:28:42 +0000 (GMT)
Newsgroups gmane.comp.gnu.binutils.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f85ff0c4bced98c61c8ac90e0bf96cc59c257a0b

commit f85ff0c4bced98c61c8ac90e0bf96cc59c257a0b
Author: H.J. Lu <[email protected]>
Date:   Wed Jun 24 08:09:56 2026 +0800

    gas/ELF: Allow local symbol with non-protected visibility
    
    In the source code extracted from glibc:
    
    extern void _dl_sysinfo_int80 (void)
      __attribute__ ((visibility ("hidden")));
    
    asm (".text\n\t"
         ".type _dl_sysinfo_int80,@function\n"
         "_dl_sysinfo_int80:\n\t"
         "int $0x80;\n\t"
         "ret");
    
    uintptr_t
    foo ()
    {
      return (uintptr_t) _dl_sysinfo_int80;
    }
    
    _dl_sysinfo_int80 is a local function, but it is defined in an asm
    statement.  Since it is referenced in C, it is declared as hidden,
    which leads to an assembler warning:
    
    Warning: local symbol `_dl_sysinfo_int80' has non-default visibility
    
    Symbol binding and visiblity are orthogonal.  One is for link-editing,
    the other for runtime linking.  In principle, all combinations are "okay"
    (if questionable), and have obvious implementations.  But it's only that
    specific combination STB_LOCAL+STV_PROTECTED that is explicitely made
    ill-formed in the spec (despite it being also obviously implementable).
    Warning on that combination can be done on the grounds of following the
    spec.  But no other combination is so spelled out, so there's no basis
    for trying to disallow them.
    
    Partially revert:
    
    commit c4150acbda1b3ce0602f79cbb7700b39e577be7e
    Author: Jan Beulich <[email protected]>
    Date:   Fri May 8 11:45:04 2026 +0200
    
        gas/ELF: warn upon non-default visibility of local symbols
    
    and update elf_adjust_symtab to only warn local symbol with protected
    visibility.
    
    binutils/
    
            PR gas/34312
            * testsuite/binutils-all/localize-hidden-1.l: Adjusted.
            * testsuite/binutils-all/nm-ver.s: Revert commit c4150acbda1.
    
    gas/
    
            PR gas/34312
            * config/obj-elf.c (elf_adjust_symtab): Allow local symbol with
            non-protected visibility.
            * testsuite/gas/elf/visibility.l: Adjusted.
            * testsuite/gas/i386/tlsnopic.s: Revert commit c4150acbda1.
    
    ld/
    
            PR gas/34312
            * testsuite/ld-aarch64/ifunc-21.s: Revert commit c4150acbda1.
            * testsuite/ld-aarch64/ifunc-21.s: Likewise.
            * testsuite/ld-tic6x/shlib-1.rd: Likewise.
            * testsuite/ld-tic6x/shlib-1.s: Likewise.
            * testsuite/ld-tic6x/shlib-1b.rd: Likewise.
            * testsuite/ld-tic6x/shlib-1r.dd: Likewise.
            * testsuite/ld-tic6x/shlib-1r.rd: Likewise.
            * testsuite/ld-tic6x/shlib-1rb.dd: Likewise.
            * testsuite/ld-tic6x/shlib-1rb.rd: Likewise.
            * testsuite/ld-tic6x/shlib-noindex.rd: Likewise.
            * testsuite/ld-tic6x/static-app-1.rd: Likewise.
            * testsuite/ld-tic6x/static-app-1b.rd: Likewise.
            * testsuite/ld-tic6x/static-app-1r.dd: Likewise.
            * testsuite/ld-tic6x/static-app-1r.rd: Likewise.
            * testsuite/ld-tic6x/static-app-1rb.dd: Likewise.
            * testsuite/ld-tic6x/static-app-1rb.rd: Likewise.
    
    Signed-off-by: H.J. Lu <[email protected]>

Diff:
---
 .../testsuite/binutils-all/localize-hidden-1.l     |  4 +--
 binutils/testsuite/binutils-all/nm-ver.s           |  2 --
 gas/config/obj-elf.c                               |  7 +++--
 gas/testsuite/gas/elf/visibility.l                 |  4 +--
 gas/testsuite/gas/i386/tlsnopic.s                  |  1 -
 ld/testsuite/ld-aarch64/ifunc-21.s                 |  1 -
 ld/testsuite/ld-tic6x/shlib-1.rd                   | 28 +++++++++--------
 ld/testsuite/ld-tic6x/shlib-1.s                    |  1 -
 ld/testsuite/ld-tic6x/shlib-1b.rd                  | 28 +++++++++--------
 ld/testsuite/ld-tic6x/shlib-1r.dd                  |  2 +-
 ld/testsuite/ld-tic6x/shlib-1r.rd                  | 28 +++++++++--------
 ld/testsuite/ld-tic6x/shlib-1rb.dd                 |  2 +-
 ld/testsuite/ld-tic6x/shlib-1rb.rd                 | 28 +++++++++--------
 ld/testsuite/ld-tic6x/shlib-noindex.rd             | 28 +++++++++--------
 ld/testsuite/ld-tic6x/static-app-1.rd              | 35 +++++++++++-----------
 ld/testsuite/ld-tic6x/static-app-1b.rd             | 35 +++++++++++-----------
 ld/testsuite/ld-tic6x/static-app-1r.dd             |  2 +-
 ld/testsuite/ld-tic6x/static-app-1r.rd             | 33 ++++++++++----------
 ld/testsuite/ld-tic6x/static-app-1rb.dd            |  2 +-
 ld/testsuite/ld-tic6x/static-app-1rb.rd            | 33 ++++++++++----------
 20 files changed, 156 insertions(+), 148 deletions(-)

diff --git a/binutils/testsuite/binutils-all/localize-hidden-1.l b/binutils/testsuite/binutils-all/localize-hidden-1.l
index 2ae5910037b..b14b766009e 100644
--- a/binutils/testsuite/binutils-all/localize-hidden-1.l
+++ b/binutils/testsuite/binutils-all/localize-hidden-1.l
@@ -1,4 +1,2 @@
 [^:]*: Assembler messages:
-[^:]*: Warning: local symbol .Lhidden. has non-default visibility
-[^:]*: Warning: local symbol .Linternal. has non-default visibility
-[^:]*: Warning: local symbol .Lprotected. has non-default visibility
+[^:]*: Warning: local symbol .Lprotected. has protected visibility
diff --git a/binutils/testsuite/binutils-all/nm-ver.s b/binutils/testsuite/binutils-all/nm-ver.s
index a8803c1651a..e68c45a9dfd 100644
--- a/binutils/testsuite/binutils-all/nm-ver.s
+++ b/binutils/testsuite/binutils-all/nm-ver.s
@@ -1,7 +1,5 @@
 	.symver foo_old,foo@VER_1
-	.global "foo@VER_1"
 	.hidden foo_old
-	.global foo_old
 foo_old:
 	.dc.b 0
 
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 6850cab1902..2e15b25150b 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -2756,9 +2756,12 @@ elf_adjust_symtab (void)
 	  const asymbol *bfdsym = symbol_get_bfdsym (symp);
 	  elf_symbol_type *elfsym = elf_symbol_from (bfdsym);
 
-	  if (ELF_ST_VISIBILITY (elfsym->internal_elf_sym.st_other)
+	  /* Allow local symbol with non-protected visibility:
+	     https://sourceware.org/bugzilla/show_bug.cgi?id=34312 */
+	  if ((ELF_ST_VISIBILITY (elfsym->internal_elf_sym.st_other)
+	       == STV_PROTECTED)
 	      && !(bfdsym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)))
-	    as_warn (_("local symbol `%s' has non-default visibility"),
+	    as_warn (_("local symbol `%s' has protected visibility"),
 		     S_GET_NAME (symp));
 	}
 
diff --git a/gas/testsuite/gas/elf/visibility.l b/gas/testsuite/gas/elf/visibility.l
index 4abd55d9ff5..8933defb910 100644
--- a/gas/testsuite/gas/elf/visibility.l
+++ b/gas/testsuite/gas/elf/visibility.l
@@ -3,6 +3,4 @@
 [^:]*:5: Warning: visibility of .gd. is already .internal.
 [^:]*:21: Warning: visibility of .ge. is already .hidden.
 [^:]*:26: Warning: visibility of .we. is already .hidden.
-[^:]*: Warning: local symbol .li. has non-default visibility
-[^:]*: Warning: local symbol .lh. has non-default visibility
-[^:]*: Warning: local symbol .lp. has non-default visibility
+[^:]*: Warning: local symbol .lp. has protected visibility
diff --git a/gas/testsuite/gas/i386/tlsnopic.s b/gas/testsuite/gas/i386/tlsnopic.s
index 596e6288f63..3a8b794195d 100644
--- a/gas/testsuite/gas/i386/tlsnopic.s
+++ b/gas/testsuite/gas/i386/tlsnopic.s
@@ -2,7 +2,6 @@
 	.globl baz
 	.hidden baz
 	.globl var
-	.globl var2
 	.hidden var2
 bar:	.long 27
 baz:	.long 29
diff --git a/ld/testsuite/ld-aarch64/ifunc-21.s b/ld/testsuite/ld-aarch64/ifunc-21.s
index 5e7c315b5e9..a1563dcbbdd 100644
--- a/ld/testsuite/ld-aarch64/ifunc-21.s
+++ b/ld/testsuite/ld-aarch64/ifunc-21.s
@@ -1,6 +1,5 @@
 	.text
 	.type ifunc, @gnu_indirect_function
-	.global ifunc
 	.hidden ifunc
 ifunc:
 	ret
diff --git a/ld/testsuite/ld-tic6x/shlib-1.rd b/ld/testsuite/ld-tic6x/shlib-1.rd
index e8181604f27..cf1f34689f1 100644
--- a/ld/testsuite/ld-tic6x/shlib-1.rd
+++ b/ld/testsuite/ld-tic6x/shlib-1.rd
@@ -16,7 +16,7 @@ Section Headers:
   \[11\] \.neardata         PROGBITS        10000128 002128 000008 00  WA  0   0  4
   \[12\] \.bss              NOBITS          10000130 002130 000004 00  WA  0   0  4
   \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00      0   0  1
-  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 0001b0 10     15  21  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entries:
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 25 entries:
+Symbol table '\.symtab' contains 27 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,14 +106,16 @@ Symbol table '\.symtab' contains 25 entries:
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    14: 10000080     0 FUNC    LOCAL  DEFAULT    9 sub1
-    15: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-    16: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
-    17: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
-    18: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
-    19: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
-    20: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
-    21: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
-    22: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
-    23: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
-    24: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
+    14: 00000000     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    15: 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
+    16: 00000000     0 FILE    LOCAL  DEFAULT  ABS 
+    17: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
+    18: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+    19: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+    20: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
+    21: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
+    22: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
+    23: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
+    24: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
+    25: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
+    26: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
diff --git a/ld/testsuite/ld-tic6x/shlib-1.s b/ld/testsuite/ld-tic6x/shlib-1.s
index 7d2f4c016ea..058bcbc69ff 100644
--- a/ld/testsuite/ld-tic6x/shlib-1.s
+++ b/ld/testsuite/ld-tic6x/shlib-1.s
@@ -1,7 +1,6 @@
 	.text
 	.nocmp
 	.align	2
-	.global	sub1
 	.hidden	sub1
 	.type	sub1, @function
 sub1:
diff --git a/ld/testsuite/ld-tic6x/shlib-1b.rd b/ld/testsuite/ld-tic6x/shlib-1b.rd
index e8181604f27..cf1f34689f1 100644
--- a/ld/testsuite/ld-tic6x/shlib-1b.rd
+++ b/ld/testsuite/ld-tic6x/shlib-1b.rd
@@ -16,7 +16,7 @@ Section Headers:
   \[11\] \.neardata         PROGBITS        10000128 002128 000008 00  WA  0   0  4
   \[12\] \.bss              NOBITS          10000130 002130 000004 00  WA  0   0  4
   \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00      0   0  1
-  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 0001b0 10     15  21  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entries:
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 25 entries:
+Symbol table '\.symtab' contains 27 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,14 +106,16 @@ Symbol table '\.symtab' contains 25 entries:
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    14: 10000080     0 FUNC    LOCAL  DEFAULT    9 sub1
-    15: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-    16: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
-    17: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
-    18: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
-    19: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
-    20: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
-    21: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
-    22: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
-    23: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
-    24: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
+    14: 00000000     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    15: 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
+    16: 00000000     0 FILE    LOCAL  DEFAULT  ABS 
+    17: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
+    18: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+    19: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+    20: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
+    21: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
+    22: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
+    23: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
+    24: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
+    25: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
+    26: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
diff --git a/ld/testsuite/ld-tic6x/shlib-1r.dd b/ld/testsuite/ld-tic6x/shlib-1r.dd
index 68caa87d14d..b9934b5d27b 100644
--- a/ld/testsuite/ld-tic6x/shlib-1r.dd
+++ b/ld/testsuite/ld-tic6x/shlib-1r.dd
@@ -42,7 +42,7 @@ Disassembly of section \.text:
 10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
 10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
 1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
-100000a0:[ \t]*0ffff812[ \t]*b \.S2 10000060 <sub(1@plt|@plt\+0x10)>
+100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
 100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
 100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
 100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
diff --git a/ld/testsuite/ld-tic6x/shlib-1r.rd b/ld/testsuite/ld-tic6x/shlib-1r.rd
index e8181604f27..cf1f34689f1 100644
--- a/ld/testsuite/ld-tic6x/shlib-1r.rd
+++ b/ld/testsuite/ld-tic6x/shlib-1r.rd
@@ -16,7 +16,7 @@ Section Headers:
   \[11\] \.neardata         PROGBITS        10000128 002128 000008 00  WA  0   0  4
   \[12\] \.bss              NOBITS          10000130 002130 000004 00  WA  0   0  4
   \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00      0   0  1
-  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 0001b0 10     15  21  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entries:
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 25 entries:
+Symbol table '\.symtab' contains 27 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,14 +106,16 @@ Symbol table '\.symtab' contains 25 entries:
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    14: 10000080     0 FUNC    LOCAL  DEFAULT    9 sub1
-    15: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-    16: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
-    17: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
-    18: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
-    19: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
-    20: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
-    21: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
-    22: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
-    23: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
-    24: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
+    14: 00000000     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    15: 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
+    16: 00000000     0 FILE    LOCAL  DEFAULT  ABS 
+    17: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
+    18: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+    19: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+    20: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
+    21: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
+    22: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
+    23: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
+    24: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
+    25: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
+    26: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
diff --git a/ld/testsuite/ld-tic6x/shlib-1rb.dd b/ld/testsuite/ld-tic6x/shlib-1rb.dd
index c7d55075695..6b3a2c2464b 100644
--- a/ld/testsuite/ld-tic6x/shlib-1rb.dd
+++ b/ld/testsuite/ld-tic6x/shlib-1rb.dd
@@ -42,7 +42,7 @@ Disassembly of section \.text:
 10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14
 10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt>
 1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt>
-100000a0:[ \t]*0ffff812[ \t]*b \.S2 10000060 <sub(1@plt|@plt\+0x10)>
+100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
 100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
 100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
 100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15
diff --git a/ld/testsuite/ld-tic6x/shlib-1rb.rd b/ld/testsuite/ld-tic6x/shlib-1rb.rd
index e8181604f27..cf1f34689f1 100644
--- a/ld/testsuite/ld-tic6x/shlib-1rb.rd
+++ b/ld/testsuite/ld-tic6x/shlib-1rb.rd
@@ -16,7 +16,7 @@ Section Headers:
   \[11\] \.neardata         PROGBITS        10000128 002128 000008 00  WA  0   0  4
   \[12\] \.bss              NOBITS          10000130 002130 000004 00  WA  0   0  4
   \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00      0   0  1
-  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 0001b0 10     15  21  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entries:
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 25 entries:
+Symbol table '\.symtab' contains 27 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,14 +106,16 @@ Symbol table '\.symtab' contains 25 entries:
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    14: 10000080     0 FUNC    LOCAL  DEFAULT    9 sub1
-    15: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-    16: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
-    17: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
-    18: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
-    19: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
-    20: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
-    21: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
-    22: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
-    23: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
-    24: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
+    14: 00000000     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    15: 10000080     0 FUNC    LOCAL  HIDDEN     9 sub1
+    16: 00000000     0 FILE    LOCAL  DEFAULT  ABS 
+    17: 00008154     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
+    18: 10000130     4 OBJECT  LOCAL  DEFAULT   12 c
+    19: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+    20: 10000100     0 NOTYPE  LOCAL  DEFAULT   10 __c6xabi_DSBT_BASE
+    21: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
+    22: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
+    23: 1000012c     4 OBJECT  GLOBAL DEFAULT   11 g2
+    24: 10000088    52 FUNC    GLOBAL DEFAULT    9 sub0
+    25: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
+    26: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
diff --git a/ld/testsuite/ld-tic6x/shlib-noindex.rd b/ld/testsuite/ld-tic6x/shlib-noindex.rd
index 76a26bd7847..52e433424f1 100644
--- a/ld/testsuite/ld-tic6x/shlib-noindex.rd
+++ b/ld/testsuite/ld-tic6x/shlib-noindex.rd
@@ -17,7 +17,7 @@ Section Headers:
   \[12\] \.neardata         PROGBITS        10000128 002128 000008 00  WA  0   0  4
   \[13\] \.bss              NOBITS          10000130 002130 000004 00  WA  0   0  4
   \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00      0   0  1
-  \[15\] \.symtab           SYMTAB          00000000 00214c 0001a0 10     16  20  4
+  \[15\] \.symtab           SYMTAB          00000000 00214c 0001c0 10     16  22  4
   \[16\] \.strtab           STRTAB .*
   \[17\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -96,7 +96,7 @@ Symbol table '\.dynsym' contains 12 entries:
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   12 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT   10 sub
 
-Symbol table '\.symtab' contains 26 entries:
+Symbol table '\.symtab' contains 28 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -113,14 +113,16 @@ Symbol table '\.symtab' contains 26 entries:
     12: 10000128     0 SECTION LOCAL  DEFAULT   12.*
     13: 10000130     0 SECTION LOCAL  DEFAULT   13.*
     14: 00000000     0 SECTION LOCAL  DEFAULT   14.*
-    15: 10000080     0 FUNC    LOCAL  DEFAULT   10 sub1
-    16: 00008160     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
-    17: 10000130     4 OBJECT  LOCAL  DEFAULT   13 c
-    18: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
-    19: 10000100     0 NOTYPE  LOCAL  DEFAULT   11 __c6xabi_DSBT_BASE
-    20: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
-    21: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
-    22: 1000012c     4 OBJECT  GLOBAL DEFAULT   12 g2
-    23: 10000088    52 FUNC    GLOBAL DEFAULT   10 sub0
-    24: 10000128     4 OBJECT  GLOBAL DEFAULT   12 a
-    25: 100000c0    52 FUNC    GLOBAL DEFAULT   10 sub
+    15: 00000000     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    16: 10000080     0 FUNC    LOCAL  HIDDEN    10 sub1
+    17: 00000000     0 FILE    LOCAL  DEFAULT  ABS 
+    18: 00008160     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
+    19: 10000130     4 OBJECT  LOCAL  DEFAULT   13 c
+    20: 1000010c     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+    21: 10000100     0 NOTYPE  LOCAL  DEFAULT   11 __c6xabi_DSBT_BASE
+    22: 00000000     0 NOTYPE  WEAK   DEFAULT  UND b
+    23: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
+    24: 1000012c     4 OBJECT  GLOBAL DEFAULT   12 g2
+    25: 10000088    52 FUNC    GLOBAL DEFAULT   10 sub0
+    26: 10000128     4 OBJECT  GLOBAL DEFAULT   12 a
+    27: 100000c0    52 FUNC    GLOBAL DEFAULT   10 sub
diff --git a/ld/testsuite/ld-tic6x/static-app-1.rd b/ld/testsuite/ld-tic6x/static-app-1.rd
index fbf453a09b1..cbb887c8114 100644
--- a/ld/testsuite/ld-tic6x/static-app-1.rd
+++ b/ld/testsuite/ld-tic6x/static-app-1.rd
@@ -14,7 +14,7 @@ Section Headers:
   \[ 9\] \.neardata         PROGBITS        [0-9a-f]* [0-9a-f]* 000014 00  WA  0   0  4
   \[10\] \.bss              NOBITS          [0-9a-f]* [0-9a-f]* 000004 00  WA  0   0  4
   \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 [0-9a-f]* 000019 00      0   0  1
-  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001b0 10     13  20  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001c0 10     13  22  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -78,7 +78,7 @@ Symbol table '\.dynsym' contains 8 entries:
      6: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
      7: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
 
-Symbol table '\.symtab' contains 27 entries:
+Symbol table '\.symtab' contains 28 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    1.*
@@ -92,18 +92,19 @@ Symbol table '\.symtab' contains 27 entries:
      9: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    9.*
     10: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   10.*
     11: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   11.*
-    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1\.o
-    13: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
-    14: [0-9a-f]*     8 OBJECT  LOCAL  DEFAULT    9 w
-    15: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS ?
-    16: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
-    17: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
-    18: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
-    19: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
-    20: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
-    21: [0-9a-f]*     0 FUNC    GLOBAL HIDDEN     7 sub1
-    22: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
-    23: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
-    24: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
-    25: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
-    26: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub
+    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    13: [0-9a-f]*     0 FUNC    LOCAL  HIDDEN     7 sub1
+    14: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1\.o
+    15: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
+    16: [0-9a-f]*     8 OBJECT  LOCAL  DEFAULT    9 w
+    17: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS 
+    18: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
+    19: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
+    20: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
+    21: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
+    22: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
+    23: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
+    24: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
+    25: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
+    26: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
+    27: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub
diff --git a/ld/testsuite/ld-tic6x/static-app-1b.rd b/ld/testsuite/ld-tic6x/static-app-1b.rd
index fbf453a09b1..cbb887c8114 100644
--- a/ld/testsuite/ld-tic6x/static-app-1b.rd
+++ b/ld/testsuite/ld-tic6x/static-app-1b.rd
@@ -14,7 +14,7 @@ Section Headers:
   \[ 9\] \.neardata         PROGBITS        [0-9a-f]* [0-9a-f]* 000014 00  WA  0   0  4
   \[10\] \.bss              NOBITS          [0-9a-f]* [0-9a-f]* 000004 00  WA  0   0  4
   \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 [0-9a-f]* 000019 00      0   0  1
-  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001b0 10     13  20  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001c0 10     13  22  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -78,7 +78,7 @@ Symbol table '\.dynsym' contains 8 entries:
      6: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
      7: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
 
-Symbol table '\.symtab' contains 27 entries:
+Symbol table '\.symtab' contains 28 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    1.*
@@ -92,18 +92,19 @@ Symbol table '\.symtab' contains 27 entries:
      9: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    9.*
     10: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   10.*
     11: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   11.*
-    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1\.o
-    13: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
-    14: [0-9a-f]*     8 OBJECT  LOCAL  DEFAULT    9 w
-    15: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS ?
-    16: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
-    17: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
-    18: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
-    19: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
-    20: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
-    21: [0-9a-f]*     0 FUNC    GLOBAL HIDDEN     7 sub1
-    22: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
-    23: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
-    24: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
-    25: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
-    26: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub
+    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    13: [0-9a-f]*     0 FUNC    LOCAL  HIDDEN     7 sub1
+    14: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1\.o
+    15: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
+    16: [0-9a-f]*     8 OBJECT  LOCAL  DEFAULT    9 w
+    17: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS 
+    18: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
+    19: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
+    20: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
+    21: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
+    22: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
+    23: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
+    24: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
+    25: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
+    26: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
+    27: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub
diff --git a/ld/testsuite/ld-tic6x/static-app-1r.dd b/ld/testsuite/ld-tic6x/static-app-1r.dd
index f494d91faab..82b3ecd13c3 100644
--- a/ld/testsuite/ld-tic6x/static-app-1r.dd
+++ b/ld/testsuite/ld-tic6x/static-app-1r.dd
@@ -15,7 +15,7 @@ Disassembly of section \.text:
 10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
 10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub>
 1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0>
-10000020:[ \t]*0ffff812[ \t]*b \.S2 [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+>
+10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
 10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
 10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
 1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15
diff --git a/ld/testsuite/ld-tic6x/static-app-1r.rd b/ld/testsuite/ld-tic6x/static-app-1r.rd
index 9c71915871a..9b6d21169d1 100644
--- a/ld/testsuite/ld-tic6x/static-app-1r.rd
+++ b/ld/testsuite/ld-tic6x/static-app-1r.rd
@@ -14,7 +14,7 @@ Section Headers:
   \[ 9\] \.neardata         PROGBITS        [0-9a-f]* [0-9a-f]* 00000c 00  WA  0   0  4
   \[10\] \.bss              NOBITS          [0-9a-f]* [0-9a-f]* 000004 00  WA  0   0  4
   \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 [0-9a-f]* 000019 00      0   0  1
-  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001a0 10     13  19  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001b0 10     13  21  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -76,7 +76,7 @@ Symbol table '\.dynsym' contains 8 entries:
      6: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
      7: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
 
-Symbol table '\.symtab' contains 26 entries:
+Symbol table '\.symtab' contains 27 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    1.*
@@ -90,17 +90,18 @@ Symbol table '\.symtab' contains 26 entries:
      9: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    9.*
     10: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   10.*
     11: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   11.*
-    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1r\.o
-    13: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
-    14: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS ?
-    15: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
-    16: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
-    17: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
-    18: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
-    19: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
-    20: [0-9a-f]*     0 FUNC    GLOBAL HIDDEN     7 sub1
-    21: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
-    22: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
-    23: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
-    24: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
-    25: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub
+    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    13: [0-9a-f]*     0 FUNC    LOCAL  HIDDEN     7 sub1
+    14: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1r\.o
+    15: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
+    16: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS 
+    17: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
+    18: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
+    19: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
+    20: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
+    21: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
+    22: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
+    23: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
+    24: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
+    25: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
+    26: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub
diff --git a/ld/testsuite/ld-tic6x/static-app-1rb.dd b/ld/testsuite/ld-tic6x/static-app-1rb.dd
index 901a62d1ad8..9e211ca489b 100644
--- a/ld/testsuite/ld-tic6x/static-app-1rb.dd
+++ b/ld/testsuite/ld-tic6x/static-app-1rb.dd
@@ -15,7 +15,7 @@ Disassembly of section \.text:
 10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14
 10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub>
 1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0>
-10000020:[ \t]*0ffff812[ \t]*b \.S2 [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+>
+10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
 10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3
 10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14
 1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15
diff --git a/ld/testsuite/ld-tic6x/static-app-1rb.rd b/ld/testsuite/ld-tic6x/static-app-1rb.rd
index 9c71915871a..9b6d21169d1 100644
--- a/ld/testsuite/ld-tic6x/static-app-1rb.rd
+++ b/ld/testsuite/ld-tic6x/static-app-1rb.rd
@@ -14,7 +14,7 @@ Section Headers:
   \[ 9\] \.neardata         PROGBITS        [0-9a-f]* [0-9a-f]* 00000c 00  WA  0   0  4
   \[10\] \.bss              NOBITS          [0-9a-f]* [0-9a-f]* 000004 00  WA  0   0  4
   \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 [0-9a-f]* 000019 00      0   0  1
-  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001a0 10     13  19  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001b0 10     13  21  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -76,7 +76,7 @@ Symbol table '\.dynsym' contains 8 entries:
      6: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
      7: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
 
-Symbol table '\.symtab' contains 26 entries:
+Symbol table '\.symtab' contains 27 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    1.*
@@ -90,17 +90,18 @@ Symbol table '\.symtab' contains 26 entries:
      9: [0-9a-f]*     0 SECTION LOCAL  DEFAULT    9.*
     10: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   10.*
     11: [0-9a-f]*     0 SECTION LOCAL  DEFAULT   11.*
-    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1r\.o
-    13: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
-    14: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS ?
-    15: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
-    16: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
-    17: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
-    18: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
-    19: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
-    20: [0-9a-f]*     0 FUNC    GLOBAL HIDDEN     7 sub1
-    21: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
-    22: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
-    23: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
-    24: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
-    25: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub
+    12: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-1\.o
+    13: [0-9a-f]*     0 FUNC    LOCAL  HIDDEN     7 sub1
+    14: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS .*shlib-app-1r\.o
+    15: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    7 fish
+    16: [0-9a-f]*     0 FILE    LOCAL  DEFAULT  ABS 
+    17: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    6 _DYNAMIC
+    18: [0-9a-f]*     4 OBJECT  LOCAL  DEFAULT   10 c
+    19: [0-9a-f]*     0 OBJECT  LOCAL  DEFAULT    8 _GLOBAL_OFFSET_TABLE_
+    20: [0-9a-f]*     0 NOTYPE  LOCAL  DEFAULT    8 __c6xabi_DSBT_BASE
+    21: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 b
+    22: [0-9a-f]*     0 NOTYPE  WEAK   DEFAULT  UND g1
+    23: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 g2
+    24: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub0
+    25: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
+    26: [0-9a-f]*    52 FUNC    GLOBAL DEFAULT    7 sub