The underying linker failure cause is not just an overflow
but a functional difference in '_dl_sysinfo_break' symbol linkage.
'_dl_sysinfo_break' is defined as a function in assembly
but declared as a global 'common' variable. Making it non-common
actually breaks sysinfo handler which is expected to be called
without function descriptor indirection. As sysonfo handler
is called before rtld processed it's own relocations.
Let's revert back to -fcommon until we have better glibc fix.
This reverts commit
8ec720b67f38952a4b9c6054c6d8ef0fc79d0343.
Bug: https://bugs.gentoo.org/723268
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
# Workaround GPREL22 overflow by slightly pessimizing global
# references to go via 64-bit relocations instead of 22-bit ones.
# This allows building glibc on ia64 without an overflow: #723268
- append-flags -mno-sdata
- :
+ append-flags -fcommon
;;
mips)
# The mips abi cannot support the GNU style hashes. #233233
# Workaround GPREL22 overflow by slightly pessimizing global
# references to go via 64-bit relocations instead of 22-bit ones.
# This allows building glibc on ia64 without an overflow: #723268
- append-flags -mno-sdata
- :
+ append-flags -fcommon
;;
mips)
# The mips abi cannot support the GNU style hashes. #233233
# Workaround GPREL22 overflow by slightly pessimizing global
# references to go via 64-bit relocations instead of 22-bit ones.
# This allows building glibc on ia64 without an overflow: #723268
- append-flags -mno-sdata
- :
+ append-flags -fcommon
;;
mips)
# The mips abi cannot support the GNU style hashes. #233233