Hi,
The behaviour of weak undef thread-local variables is not well defined. TLS relocations against weak undef symbols are not handled properly by the linker, and in some cases cause the linker to crash (notably when linking glibc for purecap Morello). This patch simply ignores these and emits a warning to that effect. This is a compromise to enable progress for Morello.
Regression tested an aarch64-none-elf cross, OK for users/ARM/morello-binutils-gdb-master?
Thanks, Alex
bfd/ChangeLog:
2021-12-08 Alex Coplan alex.coplan@arm.com
* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Skip over TLS relocations against weak undef symbols. (elfNN_aarch64_check_relocs): Likewise, but also warn.
ld/ChangeLog:
2021-12-08 Alex Coplan alex.coplan@arm.com
* testsuite/ld-aarch64/aarch64-elf.exp: Add morello-weak-tls test. * testsuite/ld-aarch64/morello-weak-tls.d: New test. * testsuite/ld-aarch64/morello-weak-tls.s: New test. * testsuite/ld-aarch64/weak-tls.d: Update test wrt new behaviour.