[resend] Fix miscompilation and thus build on ia64's gcc-10 and later
Checks
Context |
Check |
Description |
redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
redhat-pt-bot/TryBot-32bit |
success
|
Build for i686
|
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_glibc_build--master-arm |
success
|
Testing passed
|
Commit Message
From: Sergei Trofimovich <slyich@gmail.com>
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
Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
---
Re-sending this after discussion at the review meeting
and after checking back with Debian (see above). -Andreas
---
sysdeps/unix/sysv/linux/ia64/dl-sysdep.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
On 8/31/23 10:40, Andreas K. Hüttel via Libc-alpha wrote:
> From: Sergei Trofimovich <slyich@gmail.com>
>
> 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
> Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
> Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
If this fixes the issue downstream we should push it upstream.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> ---
> Re-sending this after discussion at the review meeting
> and after checking back with Debian (see above). -Andreas
> ---
> sysdeps/unix/sysv/linux/ia64/dl-sysdep.h | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h b/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
> index 3e4d5da820..eb7681b704 100644
> --- a/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
> +++ b/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
> @@ -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 . */
s/GPREL22 ./GPREL22. *//g
> +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" \
@@ -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" \