ia64: Work around miscompilation and fix build on ia64's gcc-10 and later
authorSergei Trofimovich <slyich@gmail.com>
Sat, 11 Jul 2020 17:06:51 +0000 (20:06 +0300)
committerAndreas K. Hüttel <dilfridge@gentoo.org>
Mon, 11 Sep 2023 17:19:46 +0000 (19:19 +0200)
Needed since gcc-10 enabled -fno-common by default.

[In use in Gentoo since gcc-10, no problems observed.
Also discussed with and reviewed by Jessica Clarke from
Debian. Andreas]

Bug: https://bugs.gentoo.org/723268
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
sysdeps/unix/sysv/linux/ia64/dl-sysdep.h

index 3e4d5da..5b3a5ad 100644 (file)
@@ -32,7 +32,9 @@
 #ifndef __ASSEMBLER__
 /* Don't declare this as a function---we want it's entry-point, not
    it's function descriptor... */
-extern int _dl_sysinfo_break attribute_hidden;
+/* Use section ".text" to force far GPREL64 relocation instead of
+   GPREL22. */
+extern int _dl_sysinfo_break attribute_hidden __attribute__((section(".text")));
 # define DL_SYSINFO_DEFAULT ((uintptr_t) &_dl_sysinfo_break)
 # define DL_SYSINFO_IMPLEMENTATION             \
   asm (".text\n\t"                             \