Waldek Hebisch wrote:
To clarify somewhat what Geoff Keating wrote: unsing -mlong-double-128 currenly means changed inteface. In first approximation all parts of the program need to be compiled with -mlong-double-128 -- _including_ runtime support (libgpc.a). At least part of the runtime must be re-coded to suppot better accuraccy. So using `libgpc.a' compiled with 64-bit long-double can not work with -mlong-double-128. The same applies to `libgcc.a' and `libc'. While updating `libgcc.a' and `libgpc.a' is part of compiler effort `libc' comes with OS and is beyond scope of GCC (Keating: "That's not a GCC problem").
In particular, gpc emits calls to `sin' and `Wirteln' using current size of long double, but libgpc.a uses 64-bit size, which causes problems.
In ideal world all this mess would be hidden from users of compiler, but using different size of fundamental types on single system is rare, and I can not see how one could make it transparent in C (in principle gpc has all relevant information in .gpi files, but C compiler have to translate different parts separately).
Thanks for the explanation. I found (http://gcc.gnu.org/ml/gcc-patches/2004-08/msg01093.html) that libc in Mac OS X 10.4 will support 128-bit long doubles, so I will be pleased to wait for that.
Regards,
Adriaan van Os