binutils: remove unused macro
Explicitly use /bin/bash for Makefile's shell
gcc: remove some unnecessary MIPS cruft
binutils: allow splitting of AUIPC-based relocs

The low part uses an indirect relocation to the high part to determine
how to fill itself in.  For example:

  .L1:
    auipc t0, %pcrel_hi(foo)
    [unrelated code]
    addi t0, t0, %pcrel_lo(.L1)

will correctly load &foo into t0.
binutils: create PLT entries for unknown symbols

Previously, we were failing to create them unless they were known to
be STT_FUNC.  But if they have yet to be seen, they're STT_NOTYPE.
binutils, glibc: remove unused reloc

Also, clean up dl-machine.h a bit.
gcc: improve PIC code generation

First of all, never spill symbolic addresses to the constant pool.  This
creates costly dynamic relocations while providing little benefit.

Second, due to a bug, we were failing to elide the GOT for local symbol
references with nonzero offsets.
glibc: fix preconfigure sh syntax
glibc: simplify ld.so self-relocation
glibc: Mac build gets further before failing
binutils, glibc: rewrite bfd; employ sane ELF ABI

The new BFD port is primarily based upon TILE-Gx, which is conveniently
simple and vanilla.  We no longer have dynamic REL relocations, and the
GOT no longer needs to be sorted a la MIPS.  So GNU-style shared object
hashes are now supported.

Note that there are probably a few lingering issues.
binutils: clean up GAS port a bit
binutils: improve GAS's constant-generation code
binutils: remove some pc-relative relocs

Previously, we had multiple low-part PC-relative relocs, e.g.
R_RISCV_GOT_LO12 and R_RISCV_TLS_GD_LO12.  But since these are indirect
relocs and enough info is encoded in the high part, they are redundant.
Now, we only have two: R_RISCV_PCREL_LO12_I and R_RISCV_PCREL_LO12_S.
For example, the following PIC code adds TLS variables x and y:

.L1: auipc a0, %tls_ie_pcrel_hi(x)
.L2: auipc a1, %tls_ie_pcrel_hi(y)
     ld a0, %pcrel_lo(.L1)(a0)
     ld a1, %pcrel_lo(.L2)(a1)
     ld a0, 0(a0)
     ld a1, 0(a1)
     add a0, a0, a1
binutils: clean up disassembler
binutils, glibc: renumber relocs

The ones that are part of the dynamic linking ABI should now be finalized.
binutils: teach readelf about RISC-V
binutils: support subword local label subtraction

Things like
  .half .L2 - .L3
are now supported.  This required some new relocs.
gcc: fix ICE on atomic test-and-set on globals
binutils: refactor check_relocs