PowerPC: Backport fix for libgcc long double support.
This patch takes the fix that was applied to the trunk on December 3rd, and it
applies it to the GCC 10 branch.
I have verified it by building compilers configured for both normal 128-bit IBM
long double and 64-bit long double with/without the patch. I did make check
and the results were the expected results comparing 128-bit long double to
64-bit long double.
With the patch installed, the test case provided will build and run cleanly
with compilers configured for either 128-bit IBM long double or 64-bit long
double without error.
Without the patch installed, the linker complains about mixing long double
types.
Here is the test case.
#include <stdio.h>
#include <stdint.h>
int
main()
{
long double a = 2.0;
__int128 b = 8;
printf("sizeof(long double) = %ld\n", sizeof(long double));
printf("a * b = %Lf\n", a * (long double) b);
return 0;
}
Can I apply this patch to the gcc-10-branch and close out PR 97543?
libgcc/
2021-01-20 Michael Meissner <[email protected]>
PR libgcc/97543, PR libgcc/97643
Backport from trunk.
2020-12-03 Michael Meissner <[email protected]>
* config/rs6000/t-linux (IBM128_STATIC_OBJS): New make variable.
(IBM128_SHARED_OBJS): New make variable.
(IBM128_OBJS): New make variable. Set all objects to use the
explicit IBM format, and disable gnu attributes.
(IBM128_CFLAGS): New make variable.
(gcc_s_compile): Add -mno-gnu-attribute to all shared library
modules.
--
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: [email protected], phone: +1 (978) 899-4797