[Bug libstdc++/36104] New: gnu-versioned-namespace is broken in gcc 4.3.0

2008-05-01 Thread vorfeed dot canal at gmail dot com
libstdc++ from GCC 4.3.0 can not be built with --gnu-versioned-namespace
option.

libtool: compile:  /var/tmp/portage/sys-devel/gcc-4.3.0/work/build/./gcc/xgcc
-shared-libgcc -B/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/./gcc
-nostdinc++ -L/var/tmp/
portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/src
-L/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs
-B/usr/
i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include
-I/var/tmp/portage/sys-devel/gcc-4.
3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu
-I/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include
-I/var/tmp/
portage/sys-devel/gcc-4.3.0/work/gcc-4.3.0/libstdc++-v3/libsupc++
-fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual
-fdiagnostics-show-location=once -ffunct
ion-sections -fdata-sections -O2 -mtune=i686 -pipe -D_GNU_SOURCE -std=gnu++0x
-c
/var/tmp/portage/sys-devel/gcc-4.3.0/work/gcc-4.3.0/libstdc++-v3/src/hash_c++0x.cc
 -fPIC -
DPIC -o .libs/hash_c++0x.o
In file included from
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/functional:75,
 from
/var/tmp/portage/sys-devel/gcc-4.3.0/work/gcc-4.3.0/libstdc++-v3/src/hash.cc:35,
 from
/var/tmp/portage/sys-devel/gcc-4.3.0/work/gcc-4.3.0/libstdc++-v3/src/hash_c++0x.cc:30:
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:475:
error: expected initializer before '<' token
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:481:
error: expected initializer before '<' token
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:486:
error: expected initializer before '<' token
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:491:
error: expected initializer before '<' token
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:961:
error: template argument 1 is invalid
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:961:
error: template argument 2 is invalid
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:961:
error: template argument 3 is invalid
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1613:
error: reference to 'reference_wrapper' is ambiguous
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:430:
error: candidates are: template class std::refere
nce_wrapper
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/bits/stl_pair.h:222:
error: template struct std::_6::refer
ence_wrapper
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1613:
error: 'reference_wrapper' has not been declared
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1613:
error: expected ',' or '...' before '<' token
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:
In static member function 'static void std::_Function_base::_Ref
_manager<_Functor>::_M_init_functor(std::_Any_data&, int)':
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1616:
error: '__f' was not declared in this scope
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:
At global scope:
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1670:
error: template argument 2 is invalid
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1670:
error: expected unqualified-id before '>' token
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1685:
error: template argument 2 is invalid
/var/tmp/portage/sys-devel/gcc-4.3.0/work/build/i686-pc-linux-gnu/libstdc++-v3/include/tr1_impl/functional:1685:
error: expected unqualified-id before '>' token


-- 
   Summary: gnu-versioned-namespace is broken in gcc 4.3.0
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
      Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
   

[Bug libstdc++/36104] gnu-versioned-namespace is broken in gcc 4.3.0

2008-05-01 Thread vorfeed dot canal at gmail dot com


--- Comment #1 from vorfeed dot canal at gmail dot com  2008-05-01 20:56 
---
Created an attachment (id=15558)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15558&action=view)
Simple fix

I'm not 100% sure it's correct way to fix this problem but at least I can
compile the library with it.

Actually I'm pretty much sure it's incorrect way to fix gnu-versioned-namespace
as it leaves a lot of namespaces (like __gnu_pbds or std::__debug) unversioned
but I'm not libstdc++ expert...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36104