Fixup build with llvm/clang:
https://reviews.llvm.org/D23497 and the attached FreeBSD patch work together
to fix this problem and should be sufficient so long as you don't have
-save-temps or -via-file-asm in your compiler flags. The LLVM patch makes the
.local directive work properly when assembling an ELF while the FreeBSD patch
ensures the assembler never sees a forward-declared local label by declaring
them in advance with .local. However, the LLVM patch currently breaks if you
use -save-temps or -via-file-asm since MCAsmStreamer's implementation of .local
doesn't do anything to the MCSymbol and only emits a .local directive. This
causes the assembler to interpret it as an external symbol and emit the wrong
jal expansion.
Submitted by: Daniel Sanders <Daniel.Sanders@imgtec.com>