public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
@ 2004-03-24 17:21 schoen at ztt dot fh-worms dot de
  2004-03-24 17:25 ` [Bug libstdc++/14720] " schoen at ztt dot fh-worms dot de
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: schoen at ztt dot fh-worms dot de @ 2004-03-24 17:21 UTC (permalink / raw)
  To: gcc-bugs

Here is the output of: "gcc -v -save-temps all-your-options source-file"

Compile command:

g++ -v -save-temps -I
/home/schoen/src/projects/meprosCpp/trunk/3rdparty/smartAssert -I
/home/schoen/src/projects/meprosCpp/trunk/3rdparty/boost/linux  Main.cpp


Compiler Output:

Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/specs
Configured with: ../configure --prefix=/usr --libdir=/usr/lib
--with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info
--enable-shared --enable-threads=posix --disable-checking --enable-long-long
--enable-__cxa_atexit --enable-clocale=gnu
--enable-languages=c,c++,ada,f77,objc,java,pascal --host=i586-mandrake-linux-gnu
--with-system-zlib
Thread model: posix
gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)
 /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/cc1plus -E -D__GNUG__=3 -quiet
-v -I /home/schoen/src/projects/meprosCpp/trunk/3rdparty/smartAssert -I
/home/schoen/src/projects/meprosCpp/trunk/3rdparty/boost/linux -D__GNUC__=3
-D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=2 -D_GNU_SOURCE Main.cpp Main.ii
ignoring nonexistent directory "/usr/i586-mandrake-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/schoen/src/projects/meprosCpp/trunk/3rdparty/smartAssert
 /home/schoen/src/projects/meprosCpp/trunk/3rdparty/boost/linux
 /usr/include/c++/3.3.2
 /usr/include/c++/3.3.2/i586-mandrake-linux-gnu
 /usr/include/c++/3.3.2/backward
 /usr/local/include
 /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/cc1plus -fpreprocessed Main.ii
-quiet -dumpbase Main.cpp -auxbase Main -version -o Main.s
GNU C++ version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk) (i586-mandrake-linux-gnu)
        compiled by GNU C version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64306
 as -V -Qy -o Main.o Main.s
GNU assembler version 2.14.90.0.7 (i586-mandrake-linux-gnu) using BFD version
2.14.90.0.7 20031029
 /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/collect2 --eh-frame-hdr -m
elf_i386 -dynamic-linker /lib/ld-linux.so.2
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/../../../crt1.o
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/../../../crti.o
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/crtbegin.o
-L/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2
-L/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/../../.. Main.o -lstdc++ -lm
-lgcc_s -lgcc -lc -lgcc_s -lgcc
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/crtend.o
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/../../../crtn.o
Main.o(.gnu.linkonce.t._ZSt7getlineIcSt11char_traitsIcEN5boost12smart_assert7Private18smart_assert_allocIcEEERSt13basic_istreamIT_T0_ESB_RSbIS8_S9_T1_ES8_+0x18f):
In function `std::basic_istream<char, std::char_traits<char> >&
std::getline<char, std::char_traits<char>,
boost::smart_assert::Private::smart_assert_alloc<char>
>(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char,
std::char_traits<char>, boost::smart_assert::Private::smart_assert_alloc<char>
>&, char)':
: undefined reference to `std::basic_ios<char, std::char_traits<char>
>::_M_setstate(std::_Ios_Iostate)'
collect2: ld returned 1 exit status

Additional Information:
The problem also occurs on Gentoo Linux with gcc 3.3.2, and also with gcc 3.3.3
on Mandrake 10.0.

The problem does NOT occur with gcc 3.3.1 on Mandrake 10.0 (I didn't test gcc
3.3.1 on Gentoo).

The problem does NOT occur when additionally linking against the static library:
libstdc++.a.

-- 
           Summary: Undefined reference to `std::basic_ios<char,
                    std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
           Product: gcc
           Version: 3.3.2
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: schoen at ztt dot fh-worms dot de
                CC: gcc-bugs at gcc dot gnu dot org


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
@ 2004-03-24 17:25 ` schoen at ztt dot fh-worms dot de
  2004-03-24 17:30 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: schoen at ztt dot fh-worms dot de @ 2004-03-24 17:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From schoen at ztt dot fh-worms dot de  2004-03-24 17:25 -------
Created an attachment (id=5992)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5992&action=view)
Compressed *.ii file to reproduce the error.


-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
  2004-03-24 17:25 ` [Bug libstdc++/14720] " schoen at ztt dot fh-worms dot de
@ 2004-03-24 17:30 ` pinskia at gcc dot gnu dot org
  2004-03-29 17:54 ` bkoz at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-24 17:30 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |normal


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
  2004-03-24 17:25 ` [Bug libstdc++/14720] " schoen at ztt dot fh-worms dot de
  2004-03-24 17:30 ` pinskia at gcc dot gnu dot org
@ 2004-03-29 17:54 ` bkoz at gcc dot gnu dot org
  2004-03-29 18:55 ` bkoz at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: bkoz at gcc dot gnu dot org @ 2004-03-29 17:54 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |bkoz at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-03-29 17:54:48
               date|                            |


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
                   ` (2 preceding siblings ...)
  2004-03-29 17:54 ` bkoz at gcc dot gnu dot org
@ 2004-03-29 18:55 ` bkoz at gcc dot gnu dot org
  2004-05-14 15:29 ` cvs-commit at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: bkoz at gcc dot gnu dot org @ 2004-03-29 18:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bkoz at gcc dot gnu dot org  2004-03-29 18:55 -------

I'm not quite sure where these _M_setstate references are coming from. From your
(huge) preprocessed source, I'm guessing:

%g++ 14720.ii
/tmp/ccv13WmI.o(.gnu.linkonce.t._ZSt7getlineIcSt11char_traitsIcEN5boost12smart_assert7Private18smart_assert_allocIcEEERSt13basic_istreamIT_T0_ESB_RSbIS8_S9_T1_ES8_+0x18f):
In function `std::basic_istream<char, std::char_traits<char> >&
std::getline<char, std::char_traits<char>,
boost::smart_assert::Private::smart_assert_alloc<char>
>(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char,
std::char_traits<char>, boost::smart_assert::Private::smart_assert_alloc<char>
>&, char)':
: undefined reference to `std::basic_ios<char, std::char_traits<char>
>::_M_setstate(std::_Ios_Iostate)'
collect2: ld returned 1 exit status

So, _M_setstate cannot be found. Because this works with static, and not shared,
this indicates something's up with the link map exports.

This doesn't happen with the 3.4/3.5 link maps:
%readelf -s --wide libstdc++.so.6.0.0 | grep _M_setstate
   885: 00057430    41 FUNC    WEAK   DEFAULT   11
_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
  1721: 000577b0    41 FUNC    WEAK   DEFAULT   11
_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate@@GLIBCXX_3.4
  1756: 00057430    41 FUNC    WEAK   DEFAULT   11
_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate
  2592: 000577b0    41 FUNC    WEAK   DEFAULT   11
_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate


... but is visible with 3.3.x:
%readelf -s --wide libstdc++.so.5.0.5  | grep _M_setstate
   426: 000475b0    46 FUNC    LOCAL  DEFAULT   11
_ZNSt9basic_iosIcSt11char_traitsIcEE11_M_setstateESt12_Ios_Iostate
   507: 000480e0    46 FUNC    LOCAL  DEFAULT   11
_ZNSt9basic_iosIwSt11char_traitsIwEE11_M_setstateESt12_Ios_Iostate

So, the solution seems to b pretty straight forward, in that _M_setstate bits
need to be added to the link map for 3.3.x.

The 3.4/3.5 link map exports this with:
     std::i[a-n]*;

Probably the std::string backflips on the 3.3. branch are getting in the way for
that version of the sources.

-benjamin

-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
                   ` (3 preceding siblings ...)
  2004-03-29 18:55 ` bkoz at gcc dot gnu dot org
@ 2004-05-14 15:29 ` cvs-commit at gcc dot gnu dot org
  2004-05-14 18:08 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-05-14 15:29 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-05-13 21:33 -------
Subject: Bug 14720

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_3-branch
Changes by:	bkoz@gcc.gnu.org	2004-05-13 21:32:57

Modified files:
	libstdc++-v3   : ChangeLog configure configure.in 
	libstdc++-v3/config: linker-map.gnu 
	libstdc++-v3/testsuite: abi_check.cc 

Log message:
	2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/14720
	* config/linker-map.gnu: Export basic_ios::_M_setstate.
	* testsuite/abi_check.cc (check_version): Add GLIBCXX_3.2.4
	to known versions.
	* configure.in (libtool_VERSION): To 5:6:0.
	* configure: Regenerated.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.1464.2.183&r2=1.1464.2.184
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.286.2.20&r2=1.286.2.21
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.in.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.110.2.11&r2=1.110.2.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/linker-map.gnu.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.25.2.9&r2=1.25.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/abi_check.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.12.2.3&r2=1.12.2.4



-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
                   ` (4 preceding siblings ...)
  2004-05-14 15:29 ` cvs-commit at gcc dot gnu dot org
@ 2004-05-14 18:08 ` pinskia at gcc dot gnu dot org
  2004-05-27  2:08 ` cvs-commit at gcc dot gnu dot org
  2004-05-27 19:25 ` cvs-commit at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-05-14 18:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-05-14 12:25 -------
Fixed for 3.3.4.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |3.3.4


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
                   ` (5 preceding siblings ...)
  2004-05-14 18:08 ` pinskia at gcc dot gnu dot org
@ 2004-05-27  2:08 ` cvs-commit at gcc dot gnu dot org
  2004-05-27 19:25 ` cvs-commit at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-05-27  2:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-05-26 14:14 -------
Subject: Bug 14720

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	hammer-3_3-branch
Changes by:	matz@gcc.gnu.org	2004-05-26 14:14:15

Modified files:
	libstdc++-v3   : configure.in configure ChangeLog.hammer 

Log message:
	Backport from 3.3 branch:
	2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/14720
	* config/linker-map.gnu: Export basic_ios::_M_setstate.
	* testsuite/abi_check.cc (check_version): Add GLIBCXX_3.2.4
	to known versions.
	* configure.in (libtool_VERSION): To 5:6:0.
	* configure: Regenerated.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.in.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.107.2.12&r2=1.107.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.281.2.18&r2=1.281.2.19
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.hammer.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.1.2.15&r2=1.1.2.16



-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libstdc++/14720] Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate)
  2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
                   ` (6 preceding siblings ...)
  2004-05-27  2:08 ` cvs-commit at gcc dot gnu dot org
@ 2004-05-27 19:25 ` cvs-commit at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-05-27 19:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-05-27 09:56 -------
Subject: Bug 14720

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	hammer-3_3-branch
Changes by:	matz@gcc.gnu.org	2004-05-27 09:56:03

Modified files:
	libstdc++-v3/testsuite: abi_check.cc 
	libstdc++-v3/config: linker-map.gnu 

Log message:
	Backport from 3.3 branch:
	2004-05-13  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/14720
	* config/linker-map.gnu: Export basic_ios::_M_setstate.
	* testsuite/abi_check.cc (check_version): Add GLIBCXX_3.2.4
	to known versions.
	* configure.in (libtool_VERSION): To 5:6:0.
	* configure: Regenerated.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/abi_check.cc.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.10.2.4&r2=1.10.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/linker-map.gnu.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.22.2.9&r2=1.22.2.10



-- 


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-05-27  9:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-24 17:21 [Bug libstdc++/14720] New: Undefined reference to `std::basic_ios<char, std::char_traits<char> >::_M_setstate(std::_Ios_Iostate) schoen at ztt dot fh-worms dot de
2004-03-24 17:25 ` [Bug libstdc++/14720] " schoen at ztt dot fh-worms dot de
2004-03-24 17:30 ` pinskia at gcc dot gnu dot org
2004-03-29 17:54 ` bkoz at gcc dot gnu dot org
2004-03-29 18:55 ` bkoz at gcc dot gnu dot org
2004-05-14 15:29 ` cvs-commit at gcc dot gnu dot org
2004-05-14 18:08 ` pinskia at gcc dot gnu dot org
2004-05-27  2:08 ` cvs-commit at gcc dot gnu dot org
2004-05-27 19:25 ` cvs-commit at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).