[RFC PATCH] Optionally use -mlong-double-128 by default on {powerpc{,64},s390{,x},sparc,alpha}-linux
Benjamin Kosnik
bkoz@redhat.com
Sat Jan 28 22:08:00 GMT 2006
- Previous message (by thread): [RFC PATCH] Optionally use -mlong-double-128 by default on {powerpc{,64},s390{,x},sparc,alpha}-linux
- Next message (by thread): [RFC PATCH] Optionally use -mlong-double-128 by default on {powerpc{,64},s390{,x},sparc,alpha}-linux
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
> 2006-01-27 Jakub Jelinek <jakub@redhat.com>
>
> * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
> (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
> * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
> (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
> * configure.ac: Add --with{out}-long-double-128 configure option.
> (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
> * configure: Rebuilt.
> * config.in: Rebuilt.
> libstdc++-v3/
> * configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check.
> If true, set also port_specific_symbol_files and create
> as_symver_specs.
> (SYMVER_CXXFLAGS): New substituted var.
> * configure: Rebuilt.
> * config.h.in: Rebuilt.
> * scripts/as_symver_filter: New file.
> * config/os/gnu-linux/ldbl-extra.ver: New file.
> * src/Makefile.am (libstdc++-symbol.ver): Append instead of
> insert in the middle if port specific symbol file requests it.
> (AM_CXXFLAGS): Add SYMVER_CXXFLAGS.
> * src/Makefile.in: Rebuilt.
OK
> * src/complex_io.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Add compatibility
> symbols.
> * src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
> * src/limits.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
> * src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
> * src/ostream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
> * src/wlocale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
> * config/locale/generic/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
> Likewise.
> * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
> * libmath/stubs.c []: Likewise.
I would like to move the _GLIBCXX_LONG_DOUBLE_COMPAT bits into src/compatibility.cc.
I'm having problems applying this patch to mainline.
In general, I think this approach is sane.
> Also, there is another problem I haven't thought of before.
> 8 virtual tables contain pointers to methods with long double
> arguments:
> _ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
> _ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
> _ZTVSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE
> _ZTVSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE
> _ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
> _ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
> _ZTVSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE
> _ZTVSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE
>
> Are any objects of those classes ever created inside of libstdc++.so.6
> or just in user code and passed over to libstdc++ routines?
Created inside libstdc++.
> If the latter, then we can simply (well, certainly not very simple)
> duplicate the virtual table and make it
> _ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@GLIBCXX_3.4
> plus
> _ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_LDBL_3.4
-benjamin
- Previous message (by thread): [RFC PATCH] Optionally use -mlong-double-128 by default on {powerpc{,64},s390{,x},sparc,alpha}-linux
- Next message (by thread): [RFC PATCH] Optionally use -mlong-double-128 by default on {powerpc{,64},s390{,x},sparc,alpha}-linux
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Gcc-patches
mailing list