[PATCH] powerpc64le build fails with GCC7
Alexey Neyman
stilor@att.net
Mon Aug 21 21:19:00 GMT 2017
On 08/21/2017 02:08 PM, Alexey Neyman wrote:
> On 08/21/2017 12:40 PM, Michael Meissner wrote:
>> On Mon, Aug 21, 2017 at 08:56:48AM -0700, Alexey Neyman wrote:
>>> Hi all,
>>>
>>> With GCC7, the test for -mfloat128 fails with a message that this
>>> option requires -mfloat128-type to be supplied as well. Cannot
>>> supply both options unconditionally, though, as GCC6 would choke on
>>> unknown option.
>>>
>>> Patch attached, please review. Build-tested only, with GCC 7.2.0 and
>>> 6.4.0.
>>>
>>> Regards,
>>> Alexey.
>>>
>>> From ea42205587b557c604f165ffdb745d94035fd18d Mon Sep 17 00:00:00 2001
>>> From: Alexey Neyman <stilor@att.net>
>>> Date: Mon, 21 Aug 2017 08:50:02 -0700
>>> Subject: [PATCH] Fix powerpc64le target with GCC7
>>>
>>> With GCC7, the test for -mfloat128 fails with a message that this
>>> option requires -mfloat128-type to be supplied as well. Cannot
>>> supply both options unconditionally, though, as GCC6 would choke
>>> on unknown option.
>>>
>>> * sysdeps/powerpc/powerpc64le/configure.ac:
>>> Detect if -mfloat128-type needs to be supplied in addition to
>>> -mfloat128
>>> * configure.ac (libc_cv_compiler_powerpc64le_float128_type):
>>> New variable.
>>> * config.make.in (config-cflags-mfloat128-type): New variable.
>>> * sysdeps/powerpc/powerpc64le/configure, configure: Regenerate.
>> This comes up because when you configure a cross compiler, the test
>> for whether
>> long double defaults to 64 bits or 128 bits fails (i.e. glibc is at
>> least 2.4
>> or newer), and the compiler defaults long double to 64 bits. If you
>> add the
>> --with-long-double-128 switch when you build the compiler, it should
>> avoid the
>> message.
> Thanks, this explains it.
>
> Shouldn't the GCC configuration fall back to 128-bit long double if
> the test fails - given that GLIBC requires it?
This should've been:
Shouldn't the GCC configuration for powerpc64le-*-linux target fall back
to 128-bit long double if the test fails - given that GLIBC requires it?
Sorry, hit "send" too fast.
>
> Regards,
> Alexey.
>
>>
>> Similarly, when my patch to make -mfloat128 goes in, I reworked the
>> test so
>> that float128 no longer checks if long doubles are 64 bits or 128 bits.
>> However, if you are doing a cross compiler, you should make sure the
>> long
>> double support matches your target system (presumably configure the
>> cross
>> compiler to use an appropriate glibc or add the --with-long-double-128
>> configuration option).
>>
>>
>
More information about the Libc-alpha
mailing list