[MC] Emit unused undefined symbol even if its binding is not set

For the following two cases, we currently suppress the symbols. This
patch emits them (compatible with GNU as).

* `test2_a = undef`: if `undef` is otherwise unused.
* `.hidden hidden`: if `hidden` is unused. This is the main point of the
  patch, because omitting the symbol would cause a linker semantic
  difference.

It causes a behavior change that is not compatible with GNU as:

.weakref foo1, bar1

When neither foo1 nor bar1 is used, we now emit bar1, which is arguably
more consistent.

Another change is that we will emit .TOC. for .TOC.@tocbase .  For this
directive, suppressing .TOC. can be seen as a size optimization, but we
choose to drop it for simplicity and consistency.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@373168 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/ELF/ppc64-abs64-dyn.s b/test/ELF/ppc64-abs64-dyn.s
index 2497631..45d10b2 100644
--- a/test/ELF/ppc64-abs64-dyn.s
+++ b/test/ELF/ppc64-abs64-dyn.s
@@ -12,10 +12,10 @@
 
 ## FIXME the addend for offset 0x20000 should be TOC base+0x8000+1, not 0x80001.
 # CHECK:      .rela.dyn {
-# CHECK-NEXT:   0x303B0 R_PPC64_RELATIVE - 0x8001
-# CHECK-NEXT:   0x303B8 R_PPC64_RELATIVE - 0x303B1
-# CHECK-NEXT:   0x303C0 R_PPC64_ADDR64 external 0x1
-# CHECK-NEXT:   0x303C8 R_PPC64_ADDR64 global 0x1
+# CHECK-NEXT:   0x303B8 R_PPC64_RELATIVE - 0x8001
+# CHECK-NEXT:   0x303C0 R_PPC64_RELATIVE - 0x303B9
+# CHECK-NEXT:   0x303C8 R_PPC64_ADDR64 external 0x1
+# CHECK-NEXT:   0x303D0 R_PPC64_ADDR64 global 0x1
 # CHECK-NEXT: }
 
 .data
diff --git a/test/ELF/ppc64-relocs.s b/test/ELF/ppc64-relocs.s
index 0fe0edf..e3363b6 100644
--- a/test/ELF/ppc64-relocs.s
+++ b/test/ELF/ppc64-relocs.s
@@ -26,13 +26,13 @@
   ld 1, .L1@toc@l(2)
 
 # CHECK-LABEL: Disassembly of section .R_PPC64_TOC16_LO_DS:
-# CHECK: ld 1, -32768(2)
+# CHECK: ld 1, -32760(2)
 
 .section .R_PPC64_TOC16_LO,"ax",@progbits
   addi  1, 2, .L1@toc@l
 
 # CHECK-LABEL: Disassembly of section .R_PPC64_TOC16_LO:
-# CHECK: addi 1, 2, -32768
+# CHECK: addi 1, 2, -32760
 
 .section .R_PPC64_TOC16_HI,"ax",@progbits
   addis 1, 2, .L1@toc@h