ld relocation error for AArm64

"Alan O. Freier" <[email protected]> Mon, 25 Feb 2019 09:20:51 -0700
Newsgroups gmane.comp.gnu.utils.bugs
Message-ID <[email protected]>
This is the message from ld:

gcc -g -I. -pthread -fomit-frame-pointer objs/AssignmentInstructions.o 
objs/Common.o objs/InstructionInterpreter.o objs/JumpInstructions.o 
objs/ControlTransfers.o objs/StackInstructions.o 
objs/MemoryOrganization.o objs/BlockTransfers.o objs/Processes.o 
objs/Unimplemented.o objs/Test.o objs/Float.o objs/Driver.o -o RunMesa.run
/usr/bin/ld: objs/Test.o: relocation R_AARCH64_ABS32 against `a local 
symbol' can not be used when making a shared object
/usr/bin/ld: BFD (GNU Binutils for Debian) 2.31.1 internal error, 
aborting at ../../bfd/elfnn-aarch64.c:5546 in 
elf64_aarch64_final_link_relocate

With this gentle urging tacked on:
/usr/bin/ld: Please report this bug.

The object file noted in the message is the product of an assembly file, 
and it is not what you might call trivial. 'a local symbol' doesn't get 
me much closer to the source of the problem. Test.o is one of 13 object 
files (12 from assembly files, one from c) being linked into an 
executable, not a shared library.

 > cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

 > $ ld -V
GNU ld (GNU Binutils for Debian) 2.31.1

For what it's worth, the same code builds just fine on open_Suse running 
(apparently) the same vintage of ld.

 > ld -V
GNU ld (GNU Binutils; openSUSE Tumbleweed) 2.31.1.20180828-2

AO