This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgcc/78804] [RX] -m64bit-doubles does not work
- From: "olegendo at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 11 Aug 2017 18:57:28 +0000
- Subject: [Bug libgcc/78804] [RX] -m64bit-doubles does not work
- Auto-submitted: auto-generated
- References: <bug-78804-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #4 from Oleg Endo <olegendo at gcc dot gnu.org> ---
(In reply to Nick Clifton from comment #2)
>
> So what I suspect is that something is missing from the rx libgcc
> configuration files (libgcc/config/rx/t-rx and/or libgcc/config/rx/rx-lib.h)
> which means that float_to_si() is being mis-compiled, for the 64-bit-doubles
> multilib, with the size of a double set to 32-bits.
I did a bit of digging ...
When the 64-bit-double/libgcc multilib is built, the correct -m64bit-doubles
arg is passed to the compiler.
In libgcc/config/rx/t-rx there is:
FPBIT = true
ifeq ($(double_type_size),64)
DPBIT = true
endif
and double_type_size is set to 64:
config.log:double_type_size='64'
config.log:long_double_type_size='64'
config.status:S["long_double_type_size"]="64"
config.status:S["double_type_size"]="64"
Makefile:double_type_size = 64
Makefile:long_double_type_size = 64
Taking out FPBIT, DPBIT from libgcc/config/rx/t-rx or setting both to true
doesn't make a difference.
The __RX_64BIT_DOUBLES__ check in libgcc/config/rx/rx-lib.h seems to be OK when
building 64-bit-double/libgcc, so FLOAT_ONLY is not defined and DF is not
redefined to SF.
libgcc/fp-bit.c is also compiled with things defined such as L_addsub_df.
When 64-bit-double/libgcc is built, FLOAT_ONLY is not defined in
libgcc/fp-bit.h
...
Any other ideas where or what to check?