Need to build libgfortran.a and libquadmath.a

Richard Earnshaw Richard.Earnshaw@foss.arm.com
Thu Mar 31 14:21:14 GMT 2022



On 31/03/2022 14:20, Andy Bowery via Gcc-help wrote:
>   
> Thank you Ruoyao for your answer on this.
> Does anyone in the community have experience of building 'libquadmath' on the ARM  (aarch64) platform?Particularly using gcc, are there flags that I need to set in order to get it built? Or should I obtain the ARM compiler provided by ARM (which is not free unfortunately)?
> Thanks,
> Andy Bowery    On Tuesday, 29 March 2022, 16:56:13 BST, Xi Ruoyao <xry111@mengyan1223.wang> wrote:
>   
>   On Tue, 2022-03-29 at 15:29 +0000, Andy Bowery via Gcc-help wrote:
>>   Thank you Jonathan for your quick response. I am afraid at the moment
>> I don't have access to such a multicore system. I will investigate
>> setting one up.
>> I tried a different approach and that was to build within the
>> libgfortran subfolder, by running 'configure' followed by 'make' in
>> that subfolder. I needed to make libbacktrace.la and libbacktrace.a
>> available. However this worked and 'libgfortran.a' was created.
>> So I tried the same approach in the libquadmath subfolder in order to
>> build 'libquadmath.a'. So in this subfolder I ran:
>> automake./configuremake
>> However all I got was the following output and no files created:
>> make  all-am
>> make[1]: Entering directory '/home/root/gcc/libquadmath'
>>
>> make  DO=all multi-do # make
>>
>> make[2]: Entering directory '/home/root/gcc/libquadmath'
>>
>> make[2]: Leaving directory '/home/root/gcc/libquadmath'
>> make[1]: Leaving directory '/home/root/gcc/libquadmath'
>>
>> What should I do here? I presume that this is what the higher Makefile
>> in gcc runs in this subfolder. So if I was run 'make' of the gcc
>> folder all the through, I presume that it wouldn't make the file
>> 'libquadmath.a' either. How do I get it to make libquadmath.a using
>> the Makefile in the libquadmath subfolder?
> 
> I don't think this is supported by GCC building system.  libquadmath,
> like other GCC target libraries, is only expected to be built with the
> exact same GCC version in the release tarball.  Using another compiler
> may cause failure.
> 
> For this specific issue, take a look at configure.ac:
> 
> AM_CONDITIONAL(BUILD_LIBQUADMATH, [test "x$libquad_cv_have_float128" = xyes])
> 
> So, if your compiler does not support __float128, libquadmath building
> system will do nothing.
> 
>  From https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html:
> 
>      __float128 is available on i386, x86_64, IA-64, and hppa HP-UX, as
>      well as on PowerPC GNU/Linux targets that enable the vector scalar
>      (VSX) instruction set.
> 
> So I guess __float128 is simply not available for your target.  Then
> there is no way to build libquadmath for it.

The AArch64 port of GCC provides _Float128, but it would appear it does 
not provide __float128.  Perhaps this is because the standards have 
started to move towards the former and the latter is some GNU extension?

Perhaps you could hack this by building with -D__float128=_Float128.

R.


More information about the Gcc-help mailing list