--- a/binutils/testsuite/binutils-all/localize-hidden-1.d
+++ b/binutils/testsuite/binutils-all/localize-hidden-1.d
@@ -2,6 +2,7 @@
 #objdump: --syms
 #objcopy: --localize-hidden
 #name: --localize-hidden test 1
+#warning_output: localize-hidden-1.l
 #...
 0+1200 l .*\*ABS\*	0+ \.hidden Lhidden
 0+1300 l .*\*ABS\*	0+ \.internal Linternal
--- /dev/null
+++ b/binutils/testsuite/binutils-all/localize-hidden-1.l
@@ -0,0 +1,4 @@
+[^:]*: 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
--- a/binutils/testsuite/binutils-all/nm-ver.s
+++ b/binutils/testsuite/binutils-all/nm-ver.s
@@ -1,5 +1,7 @@
 	.symver foo_old,foo@VER_1
+	.global "foo@VER_1"
 	.hidden foo_old
+	.global foo_old
 foo_old:
 	.dc.b 0
 
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -2730,6 +2730,23 @@ elf_adjust_symtab (void)
 {
   unsigned int i;
 
+  if (!had_errors ())
+    for (symbolS *symp = symbol_rootP; symp; symp = symbol_next (symp))
+      if (!symbol_removed_p (symp)
+	  && S_IS_DEFINED (symp)
+	  && (bfd_keep_unused_section_symbols (stdoutput)
+	      || !symbol_section_p (symp)
+	      || symbol_used_in_reloc_p (symp)))
+	{
+	  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)
+	      && !(bfdsym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)))
+	    as_warn (_("local symbol `%s' has non-default visibility"),
+		     S_GET_NAME (symp));
+	}
+
   /* Make the SHT_GROUP sections that describe each section group.  We
      can't set up the section contents here yet, because elf section
      indices have yet to be calculated.  elf.c:set_group_contents does
--- a/gas/config/tc-loongarch.h
+++ b/gas/config/tc-loongarch.h
@@ -121,10 +121,6 @@ extern void tc_loongarch_parse_to_dw2reg
 
 extern int tc_loongarch_regname_to_dw2regnum (char *);
 
-#define tc_symbol_new_hook(sym) \
-  if (0 == strcmp (sym->bsym->name, FAKE_LABEL_NAME)) \
-    S_SET_OTHER (sym, STV_HIDDEN);
-
 extern void loongarch_pre_output_hook (void);
 #define md_pre_output_hook loongarch_pre_output_hook ()
 #define GAS_SORT_RELOCS 1
--- a/gas/testsuite/gas/elf/visibility.l
+++ b/gas/testsuite/gas/elf/visibility.l
@@ -3,3 +3,6 @@
 [^:]*: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
--- a/gas/testsuite/gas/elf/visibility.s
+++ b/gas/testsuite/gas/elf/visibility.s
@@ -26,3 +26,12 @@ gu:	.dc.b 0
 	.protected we
 	.p2align 3
 	.dc.a we
+
+	.internal li
+li:	.dc.b 0
+
+	.hidden lh
+lh:	.dc.b 0
+
+	.protected lp
+lp:	.dc.b 0
--- a/gas/testsuite/gas/i386/tlsnopic.s
+++ b/gas/testsuite/gas/i386/tlsnopic.s
@@ -2,6 +2,7 @@
 	.globl baz
 	.hidden baz
 	.globl var
+	.globl var2
 	.hidden var2
 bar:	.long 27
 baz:	.long 29
--- a/ld/testsuite/ld-aarch64/ifunc-21.s
+++ b/ld/testsuite/ld-aarch64/ifunc-21.s
@@ -1,5 +1,6 @@
 	.text
 	.type ifunc, @gnu_indirect_function
+	.global ifunc
 	.hidden ifunc
 ifunc:
 	ret
--- 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 0001b0 10     15  21  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entr
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 27 entries:
+Symbol table '\.symtab' contains 25 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,16 +106,14 @@ Symbol table '\.symtab' contains 27 entr
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    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
+    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
--- a/ld/testsuite/ld-tic6x/shlib-1.s
+++ b/ld/testsuite/ld-tic6x/shlib-1.s
@@ -1,6 +1,7 @@
 	.text
 	.nocmp
 	.align	2
+	.global	sub1
 	.hidden	sub1
 	.type	sub1, @function
 sub1:
--- 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 0001b0 10     15  21  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entr
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 27 entries:
+Symbol table '\.symtab' contains 25 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,16 +106,14 @@ Symbol table '\.symtab' contains 27 entr
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    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
+    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
--- 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]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
+100000a0:[ \t]*0ffff812[ \t]*b \.S2 10000060 <sub(1@plt|@plt\+0x10)>
 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
--- 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 0001b0 10     15  21  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entr
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 27 entries:
+Symbol table '\.symtab' contains 25 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,16 +106,14 @@ Symbol table '\.symtab' contains 27 entr
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    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
+    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
--- 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]*0ffffc12[ \t]*b \.S2 10000080 <sub1>
+100000a0:[ \t]*0ffff812[ \t]*b \.S2 10000060 <sub(1@plt|@plt\+0x10)>
 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
--- 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 0001b0 10     15  21  4
+  \[14\] \.symtab           SYMTAB          00000000 00214c 000190 10     15  19  4
   \[15\] \.strtab           STRTAB .*
   \[16\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -90,7 +90,7 @@ Symbol table '\.dynsym' contains 12 entr
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   11 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT    9 sub
 
-Symbol table '\.symtab' contains 27 entries:
+Symbol table '\.symtab' contains 25 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -106,16 +106,14 @@ Symbol table '\.symtab' contains 27 entr
     11: 10000128     0 SECTION LOCAL  DEFAULT   11.*
     12: 10000130     0 SECTION LOCAL  DEFAULT   12.*
     13: 00000000     0 SECTION LOCAL  DEFAULT   13.*
-    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
+    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
--- 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 0001c0 10     16  22  4
+  \[15\] \.symtab           SYMTAB          00000000 00214c 0001a0 10     16  20  4
   \[16\] \.strtab           STRTAB .*
   \[17\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -96,7 +96,7 @@ Symbol table '\.dynsym' contains 12 entr
     10: 10000128     4 OBJECT  GLOBAL DEFAULT   12 a
     11: 100000c0    52 FUNC    GLOBAL DEFAULT   10 sub
 
-Symbol table '\.symtab' contains 28 entries:
+Symbol table '\.symtab' contains 26 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
      1: 00008000     0 SECTION LOCAL  DEFAULT    1.*
@@ -113,16 +113,14 @@ Symbol table '\.symtab' contains 28 entr
     12: 10000128     0 SECTION LOCAL  DEFAULT   12.*
     13: 10000130     0 SECTION LOCAL  DEFAULT   13.*
     14: 00000000     0 SECTION LOCAL  DEFAULT   14.*
-    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
+    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
--- 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]* 0001c0 10     13  22  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001b0 10     13  20  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -78,7 +78,7 @@ Symbol table '\.dynsym' contains 8 entri
      6: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
      7: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
 
-Symbol table '\.symtab' contains 28 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.*
@@ -92,19 +92,18 @@ Symbol table '\.symtab' contains 28 entr
      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-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
+    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
--- 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]* 0001c0 10     13  22  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001b0 10     13  20  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -78,7 +78,7 @@ Symbol table '\.dynsym' contains 8 entri
      6: 00000000     0 NOTYPE  WEAK   DEFAULT  UND g1
      7: [0-9a-f]*     4 OBJECT  GLOBAL DEFAULT    9 a
 
-Symbol table '\.symtab' contains 28 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.*
@@ -92,19 +92,18 @@ Symbol table '\.symtab' contains 28 entr
      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-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
+    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
--- 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]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
+10000020:[ \t]*0ffff812[ \t]*b \.S2 [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+>
 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
--- 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]* 0001b0 10     13  21  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001a0 10     13  19  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -76,7 +76,7 @@ Symbol table '\.dynsym' contains 8 entri
      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 26 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,18 +90,17 @@ Symbol table '\.symtab' contains 27 entr
      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-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
+    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
--- 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]*0ffffc12[ \t]*b \.S2 10000000 <sub1>
+10000020:[ \t]*0ffff812[ \t]*b \.S2 [0-9a-f]+ <_DYNAMIC\+0x[0-9a-f]+>
 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
--- 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]* 0001b0 10     13  21  4
+  \[12\] \.symtab           SYMTAB          00000000 [0-9a-f]* 0001a0 10     13  19  4
   \[13\] \.strtab           STRTAB .*
   \[14\] \.shstrtab         STRTAB .*
 Key to Flags:
@@ -76,7 +76,7 @@ Symbol table '\.dynsym' contains 8 entri
      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 26 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,18 +90,17 @@ Symbol table '\.symtab' contains 27 entr
      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-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
+    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
