[PATCH, Fortran] Revert to non-multilib-specific ISO_Fortran_binding.h
Tobias Burnus
tobias@codesourcery.com
Mon Sep 13 16:32:56 GMT 2021
Hi Gerald,
On 13.09.21 17:56, Gerald Pfeifer wrote:
> This broke bootstrap on i586-unknown-freebsd11:
>
> In file included from .../GCC-HEAD/libgfortran/runtime/ISO_Fortran_binding.c:30:
> .../GCC-HEAD/libgfortran/ISO_Fortran_binding.h:255:2:
> error: #error "Can't determine kind of long double"
> 255 | #error "Can't determine kind of long double"
> | ^~~~~
>
> Does this work on i586-*-linux?
>
>
> % egrep -r '#define.*LDBL_(MANT_DIG|MIN_EXP|MAX_EXP)' /usr/include/
> /usr/include/x86/float.h:#define LDBL_MANT_DIG 64
> /usr/include/x86/float.h:#define LDBL_MIN_EXP (-16381)
> /usr/include/x86/float.h:#define LDBL_MAX_EXP 16384
>
> This looks like it matches existing Linux case already in place?
Can you run 'echo | cpp -E -g3|grep DBL' to (or in the build dir: echo |
./gcc/cc1 -E -g3 -dD|grep DBL) to check what's the output?
It might be that /usr/include/x86/float.h is not used; e.g. there is
$(gcc-src)/ginclude/float.h which undef's the LDBL_MAX_EXP to replace it
by a #define using __LDBL_MAX_EXP. Thus, if those are different from the
values under /usr/include, it might be the reason for the fail?
I think it works under Linux, at least the "x86-64 -m32"
libgfortran.{so,a} build and the -m32 testsuite runs do work.
Tobias
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
More information about the Fortran
mailing list