https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71363
Jerry DeLisle <jvdelisle at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jvdelisle at gcc dot gnu.org --- Comment #2 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- (In reply to Paul Mustiere from comment #0) > Hello, > > I am building the GNU toolchain for Android with support for Fortran, and > encountered an issue when targeting x86 for the runtime library. > > Note: I'm using the toolchain sources provided by Google, but as far as I > can tell the Fortran part is simply 4.9 since they are not trying to build > with Fortran. > > In intrisics/cshift0.c, I get a 'duplicate case value' > (http://paste.ubuntu.com/16861425/). As far as I can tell: > > - GFC_DTYPE_REAL_16 is defined (but not GFC_DTYPE_REAL_10), hence > GFC_REAL_16 is defined as long double. > - sizeof(long double) = sizeof(double) = 8, which causes the duplicate case. > > I find a workaround which consists of detecting both sizes in mk-kinds-h.sh > and checking that they are not equal before defining GFC_REAL_16. The rest > of the toolchain compiles fine, but I am not sure it's ideal. > Also, I'm curious as to why Fortran seems to be fine with real (kind=16) but > C doesn't seem to be able to hold variables that big. > > I know I'm not using the regular GNU toolchain but any help is appreciated. > > Cheers, > Paul Mustiere Paul, Look for where "for k in $possible_real_kinds" is in the mk-kinds script. Where is $possible_real_kinds set?