[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 Paul A. Bristow pbristow at hetp dot u-net.com changed: What|Removed |Added CC||pbristow at hetp dot u-net.com --- Comment #12 from Paul A. Bristow pbristow at hetp dot u-net.com --- This still exists at 4.8.2 and is a *showstopper* for running the Boost.Math library at all the available precisions, up to 128-bit precision where available. typeid(type).name() fails with: undefined reference to `typeinfo for __float128' We can check that the library seems to work OK by ugly hacking of error handling and a few examples of test code (out of the hundreds of tests), but we absolutely need this before it can be fully tested at 128-bit precision and released. Getting this library to pass is part of a demonstration of the proposed C++ and C library additions by Christopher Kormanyos and John Maddock Floating-Point Typedefs Having Specified Widths - N3626 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3626.pdf http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1703.pdf Everything is working to provide full C++ 128-bit floating-point - apart from this :-( So we are very keen to have a fix.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #13 from Marc Glisse glisse at gcc dot gnu.org --- It looks like emit_support_tinfos (rtti.c) should go through registered_builtin_types (hidden in c-common.c) in addition to the hardcoded fundamentals list.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #11 from Steve Ward planet36 at gmail dot com 2012-10-21 22:05:35 UTC --- This problem still exists in g++ 4.7.2.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||john.salmon at deshaw dot ||com --- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-25 15:04:17 UTC --- *** Bug 40855 has been marked as a duplicate of this bug. ***
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|4.6.1 |---
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #9 from Steve Ward planet36 at gmail dot com 2011-04-14 15:56:12 UTC --- Created attachment 23982 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23982 This test-case shows how typeinfo for non-complex 128-bit types DOES NOT work, but typeinfo for complex 128-bit types DOES work. $ g++-4.5 --version g++-4.5 (Ubuntu/Linaro 4.5.1-7ubuntu2) 4.5.1 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ uname --all Linux dev8 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 18:42:20 UTC 2011 x86_64 GNU/Linux $ g++-4.5 gcc_bug_43622.cpp ./a.out complex_int128 = Cn complex_uint128 = Co complex_binary128 = Cg
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Target Milestone|4.6.0 |4.6.1 --- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2011-03-25 19:52:22 UTC --- GCC 4.6.0 is being released, adjusting target milestone.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #2 from joseph at codesourcery dot com joseph at codesourcery dot com 2011-02-24 15:23:33 UTC --- This seems related to bug 40855. See also http://gcc.gnu.org/ml/gcc-patches/2009-11/msg00652.html and the rest of that thread. libstdc++ support for extended integer and floating-point types covers more than typeinfo; see what I said at http://gcc.gnu.org/ml/gcc-patches/2010-05/msg01912.html and the followups thereto. There's numeric_limits (see bug 40856), and I/O support (with the same issues as for libgfortran about avoiding libquadmath in static links if the functionality isn't used in a particular program), and mathematical functions, and maybe more - certainly most of that would not be suitable for 4.6, however.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #3 from Benjamin Kosnik bkoz at gcc dot gnu.org 2011-02-24 18:53:08 UTC --- Expecting this as exported as fundamental_type_info, see in emit_support_tinfos via rtti.c:1461: static tree *const fundamentals[] = { void_type_node, boolean_type_node, wchar_type_node, char16_type_node, char32_type_node, char_type_node, signed_char_type_node, unsigned_char_type_node, short_integer_type_node, short_unsigned_type_node, integer_type_node, unsigned_type_node, long_integer_type_node, long_unsigned_type_node, long_long_integer_type_node, long_long_unsigned_type_node, int128_integer_type_node, int128_unsigned_type_node, float_type_node, double_type_node, long_double_type_node, dfloat32_type_node, dfloat64_type_node, dfloat128_type_node, nullptr_type_node, 0 }; Which should take care of this, given the libstdc++ ver patch to export the symbols. However, none is emitted when building libsupc++/fundamental_type_info.o. Ouch.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #4 from Benjamin Kosnik bkoz at gcc dot gnu.org 2011-02-24 18:54:06 UTC --- Created attachment 23457 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=23457 typeinfo exports for float128
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #5 from Benjamin Kosnik bkoz at gcc dot gnu.org 2011-02-24 19:09:33 UTC --- RE comment 2. Yes, agreed full support is a ways off. However, typeinfo support is ostensibly already there, just not emitted. This is a bug, and not something users can work around. IMHO it should be fixed, and since there are already 4.6.0 typeinfo exports this seems like an opportune time to do it.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-02-24 19:13:16 UTC --- I guess #c4 patch will break ppc/s390 etc. config/os/gnu-linux/ldbl-extra.ver already has: CXXABI_LDBL_1.3 { _ZT[IS]g; _ZT[IS]Pg; _ZT[IS]PKg; }; So, IMNSHO you don't want to add something like that to gnu.ver, but have a special *.ver file for those 3 targets (i?86/x86_64/ia64) that have __float128.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 --- Comment #7 from Benjamin Kosnik bkoz at gcc dot gnu.org 2011-02-24 19:28:02 UTC --- ack, I mis-read rtti.c, these are the decimal exports, ie decimal128 not float128. Jakub you are correct these are exports as LD symbols via ld versioning via inclusion. I missed that! %find . -type f | xargs grep _ZTIg ./powerpc-linux-gnu/baseline_symbols.txt:OBJECT:8:_ZTIg@@CXXABI_LDBL_1.3 ./sparc-linux-gnu/baseline_symbols.txt:OBJECT:8:_ZTIg@@CXXABI_LDBL_1.3 ./powerpc64-linux-gnu/32/baseline_symbols.txt:OBJECT:8:_ZTIg@@CXXABI_LDBL_1.3 ./powerpc64-linux-gnu/baseline_symbols.txt:OBJECT:16:_ZTIg@@CXXABI_LDBL_1.3 ./s390-linux-gnu/baseline_symbols.txt:OBJECT:8:_ZTIg@@CXXABI_LDBL_1.3 ./s390x-linux-gnu/baseline_symbols.txt:OBJECT:16:_ZTIg@@CXXABI_LDBL_1.3 ./alpha-linux-gnu/baseline_symbols.txt:OBJECT:16:_ZTIg@@CXXABI_LDBL_1.3 sparc may be questionable in reality as it is inferred on alpha.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622 Benjamin Kosnik bkoz at gcc dot gnu.org changed: What|Removed |Added CC||bkoz at gcc dot gnu.org AssignedTo|unassigned at gcc dot |bkoz at gcc dot gnu.org |gnu.org | Target Milestone|--- |4.6.0 --- Comment #1 from Benjamin Kosnik bkoz at gcc dot gnu.org 2011-02-24 07:33:56 UTC --- Mine.
[Bug libstdc++/43622] no C++ typeinfo for __float128 and __int128
-- paolo dot carlini at oracle dot com changed: What|Removed |Added Severity|normal |enhancement http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43622