public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] powerpc64le: guarantee a .gnu.attributes section [BZ #26220]
@ 2020-07-08 22:23 Paul E. Murphy
  2020-07-17 20:56 ` Tulio Magno Quites Machado Filho
  2020-07-17 21:03 ` Carlos O'Donell
  0 siblings, 2 replies; 4+ messages in thread
From: Paul E. Murphy @ 2020-07-08 22:23 UTC (permalink / raw)
  To: libc-alpha

Upstream GCC 11 development is now building the ibm128 runtime
support (in libgcc) without a .gnu.attributes section on ppc64le.
Ensure we have one to replace by building one ibm128 file in
libc and libm with attributes.
---
 sysdeps/powerpc/powerpc64/le/Makefile | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
index 05ab13d85c..033dc77b01 100644
--- a/sysdeps/powerpc/powerpc64/le/Makefile
+++ b/sysdeps/powerpc/powerpc64/le/Makefile
@@ -38,6 +38,14 @@ if [ ! -z "$(filter libm.so libc.so,$(notdir $1))" ]; then \
 fi
 endef
 
+# Ensure a .gnu.attributes section is present by building an ibm128 file with
+# -mgnu-attribute in both libm and libc shared libraries.  Prior to GCC 11 this
+# section was implicitly included via static libgcc ibm128 routines.
+ifeq ($(subdir),math)
+$(objpfx)m_ldexpl.os: CFLAGS += -mgnu-attribute
+$(objpfx)s_ldexpl.os: CFLAGS += -mgnu-attribute
+endif
+
 endif # ifeq ($(build-shared),yes)
 endif # ifeq ($(ibm128-fcts),yes)
 
-- 
2.26.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc64le: guarantee a .gnu.attributes section [BZ #26220]
  2020-07-08 22:23 [PATCH] powerpc64le: guarantee a .gnu.attributes section [BZ #26220] Paul E. Murphy
@ 2020-07-17 20:56 ` Tulio Magno Quites Machado Filho
  2020-07-17 21:03 ` Carlos O'Donell
  1 sibling, 0 replies; 4+ messages in thread
From: Tulio Magno Quites Machado Filho @ 2020-07-17 20:56 UTC (permalink / raw)
  To: Paul E. Murphy, libc-alpha

"Paul E. Murphy via Libc-alpha" <libc-alpha@sourceware.org> writes:

> Upstream GCC 11 development is now building the ibm128 runtime
> support (in libgcc) without a .gnu.attributes section on ppc64le.
> Ensure we have one to replace by building one ibm128 file in
> libc and libm with attributes.

Tested with GCC master and LGTM.

But I think it also need to be approved by Carlos before it gets merged in
glibc 2.32.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>

-- 
Tulio Magno


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc64le: guarantee a .gnu.attributes section [BZ #26220]
  2020-07-08 22:23 [PATCH] powerpc64le: guarantee a .gnu.attributes section [BZ #26220] Paul E. Murphy
  2020-07-17 20:56 ` Tulio Magno Quites Machado Filho
@ 2020-07-17 21:03 ` Carlos O'Donell
  2020-07-21 14:32   ` Paul E Murphy
  1 sibling, 1 reply; 4+ messages in thread
From: Carlos O'Donell @ 2020-07-17 21:03 UTC (permalink / raw)
  To: Paul E. Murphy, libc-alpha

On 7/8/20 6:23 PM, Paul E. Murphy via Libc-alpha wrote:
> Upstream GCC 11 development is now building the ibm128 runtime
> support (in libgcc) without a .gnu.attributes section on ppc64le.
> Ensure we have one to replace by building one ibm128 file in
> libc and libm with attributes.
> ---
>  sysdeps/powerpc/powerpc64/le/Makefile | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
> index 05ab13d85c..033dc77b01 100644
> --- a/sysdeps/powerpc/powerpc64/le/Makefile
> +++ b/sysdeps/powerpc/powerpc64/le/Makefile
> @@ -38,6 +38,14 @@ if [ ! -z "$(filter libm.so libc.so,$(notdir $1))" ]; then \
>  fi
>  endef
>  
> +# Ensure a .gnu.attributes section is present by building an ibm128 file with
> +# -mgnu-attribute in both libm and libc shared libraries.  Prior to GCC 11 this
> +# section was implicitly included via static libgcc ibm128 routines.
> +ifeq ($(subdir),math)
> +$(objpfx)m_ldexpl.os: CFLAGS += -mgnu-attribute
> +$(objpfx)s_ldexpl.os: CFLAGS += -mgnu-attribute
> +endif
> +
>  endif # ifeq ($(build-shared),yes)
>  endif # ifeq ($(ibm128-fcts),yes)
>  
> 

I'll admit this seems a bit hackish. I would have expected the compiler
would have output something that marked the object as using the ibm128
with gnu attributes by default, but I guess that isn't a default and
you have to ask for the attributes?

OK for 2.32.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

-- 
Cheers,
Carlos.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc64le: guarantee a .gnu.attributes section [BZ #26220]
  2020-07-17 21:03 ` Carlos O'Donell
@ 2020-07-21 14:32   ` Paul E Murphy
  0 siblings, 0 replies; 4+ messages in thread
From: Paul E Murphy @ 2020-07-21 14:32 UTC (permalink / raw)
  To: Carlos O'Donell, Tulio Magno Quites Machado Filho, libc-alpha



On 7/17/20 4:03 PM, Carlos O'Donell wrote:
> On 7/8/20 6:23 PM, Paul E. Murphy via Libc-alpha wrote:
>> Upstream GCC 11 development is now building the ibm128 runtime
>> support (in libgcc) without a .gnu.attributes section on ppc64le.
>> Ensure we have one to replace by building one ibm128 file in
>> libc and libm with attributes.
>> ---
>>   sysdeps/powerpc/powerpc64/le/Makefile | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
>> index 05ab13d85c..033dc77b01 100644
>> --- a/sysdeps/powerpc/powerpc64/le/Makefile
>> +++ b/sysdeps/powerpc/powerpc64/le/Makefile
>> @@ -38,6 +38,14 @@ if [ ! -z "$(filter libm.so libc.so,$(notdir $1))" ]; then \
>>   fi
>>   endef
>>   
>> +# Ensure a .gnu.attributes section is present by building an ibm128 file with
>> +# -mgnu-attribute in both libm and libc shared libraries.  Prior to GCC 11 this
>> +# section was implicitly included via static libgcc ibm128 routines.
>> +ifeq ($(subdir),math)
>> +$(objpfx)m_ldexpl.os: CFLAGS += -mgnu-attribute
>> +$(objpfx)s_ldexpl.os: CFLAGS += -mgnu-attribute
>> +endif
>> +
>>   endif # ifeq ($(build-shared),yes)
>>   endif # ifeq ($(ibm128-fcts),yes)
>>   
>>
> 
> I'll admit this seems a bit hackish. I would have expected the compiler
> would have output something that marked the object as using the ibm128
> with gnu attributes by default, but I guess that isn't a default and
> you have to ask for the attributes?

Yes, but I think libc/libm should provide a permissive gnu attributes
section on libc/libm instead of stripping it.  We disabled this feature
when building glibc to avoid the linking warning/errors, thus any
externally built and subsequently linked libraries might provide their
own.

I have committed this patch.  Thank you Carlos and Tulio for reviewing.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-07-21 14:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-08 22:23 [PATCH] powerpc64le: guarantee a .gnu.attributes section [BZ #26220] Paul E. Murphy
2020-07-17 20:56 ` Tulio Magno Quites Machado Filho
2020-07-17 21:03 ` Carlos O'Donell
2020-07-21 14:32   ` Paul E Murphy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).