[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#266105: marked as done (link problems with static libstdc++)



Your message dated Wed, 18 Aug 2004 01:01:48 +0200
with message-id <16674.36444.797572.328607@gargle.gargle.HOWL>
and subject line not a bug
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 16 Aug 2004 18:15:33 +0000
>From mfluhr@nero.com Mon Aug 16 11:15:32 2004
Return-path: <mfluhr@nero.com>
Received: from (s1.mailresponder.info) [195.88.216.6] 
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1Bwm16-0004WL-00; Mon, 16 Aug 2004 11:15:32 -0700
Received: from [192.168.4.32] (82.98.209.5)
          by s1.mailresponder.info with MERCUR Mailserver (v4.02.30 ODAtMjQzOS03MTc5)
          for <submit@bugs.debian.org>; Mon, 16 Aug 2004 20:15:11 +0200
Subject: link problems with static libstdc++
From: Mathieu Fluhr <mfluhr@nero.com>
To: submit@bugs.debian.org
Content-Type: text/plain
Organization: Ahead Software AG.
Message-Id: <1092680023.1066.25.camel@c-l-175>
Mime-Version: 1.0
X-Mailer: Ximian Evolution 1.4.6 
Date: Mon, 16 Aug 2004 20:13:44 +0200
Content-Transfer-Encoding: 7bit
Delivered-To: submit@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-8.0 required=4.0 tests=BAYES_00,HAS_PACKAGE 
	autolearn=no version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level: 

Package: libstdc++-5-3.3-dev
Version: 3.3.4-9

(note: seems to appear also with the 3.3.4-6sarge1 version... but needs
to be verified.)

This problem was reported a couple of times on the web... It also seems
to have been fixed (#260581) in some older version of the package.

I want to compile a library using the static version of the libstdc++.
For example this small program:

#include <iostream>
void
test()
{
   std::cout << "foobar\n";
}


Then, I try to compile it like this:

mathieu@c-l-175:~$ g++ -shared foobar.cpp -o foobar.so -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -lc
/usr/bin/ld: foobar.so: undefined versioned symbol name std::time_put_w@@GLIBCPP_3.2
/usr/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status


The thing is that with the new g++-3.4, using the libstdc++6, everything seems to work. 
So I decided to look a little bit more deeply in these 2 different version of 
libstdc++.a: One interesting thing is that in the 3.4 version, no symbols @@GLIBCPP_3.2 
appears. Maybe this is the solution for 3.3 ?

One other thing: this problem seems to be related to the bug #12595 of the gcc bugzilla. 
Maybe it can help.

Before I forget: I'm running a complete unstable system
kernel: 2.6.7 self compiled

mathieu@c-l-175:~$ dpkg -l | grep libstdc++
ii  libstdc++2.10- 2.95.4-22      The GNU stdc++ library (development files)
ii  libstdc++2.10- 2.95.4-22      The GNU stdc++ library
ii  libstdc++5     3.3.4-9        The GNU Standard C++ Library v3
ii  libstdc++5-3.3 3.3.4-9        The GNU Standard C++ Library v3 (development
ii  libstdc++5-dev 3.2.3-9        The GNU Standard C++ Library v3 (development
ii  libstdc++5-doc 3.2.3-9        The GNU Standard C++ Library v3 (documentati
ii  libstdc++6     3.4.1-5        The GNU Standard C++ Library v3
ii  libstdc++6-dev 3.4.1-5        The GNU Standard C++ Library v3 (development

mathieu@c-l-175:~$ dpkg -l | grep g++      
ii  g++            3.3.4-2        The GNU C++ compiler
ii  g++-2.95       2.95.4-22      The GNU C++ compiler
ii  g++-3.2        3.2.3-9        The GNU C++ compiler
ii  g++-3.3        3.3.4-9        The GNU C++ compiler
ii  g++-3.4        3.4.1-5        The GNU C++ compiler


Best Regards,
Mathieu Fluhr



---------------------------------------
Received: (at 266105-done) by bugs.debian.org; 17 Aug 2004 23:01:52 +0000
>From doko@cs.tu-berlin.de Tue Aug 17 16:01:51 2004
Return-path: <doko@cs.tu-berlin.de>
Received: from mail.cs.tu-berlin.de [130.149.17.13] (root)
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1BxCxj-0007tg-00; Tue, 17 Aug 2004 16:01:51 -0700
Received: from mailhost.cs.tu-berlin.de (postfix@mail.cs.tu-berlin.de [130.149.17.13])
	by mail.cs.tu-berlin.de (8.9.3p2/8.9.3) with ESMTP id BAA11489
	for <266105-done@bugs.debian.org>; Wed, 18 Aug 2004 01:01:49 +0200 (MEST)
Received: from localhost (localhost [127.0.0.1])
	by mailhost.cs.tu-berlin.de (Postfix) with ESMTP id A287CF217
	for <266105-done@bugs.debian.org>; Wed, 18 Aug 2004 01:01:49 +0200 (MEST)
Received: from mailhost.cs.tu-berlin.de ([127.0.0.1])
 by localhost (bueno [127.0.0.1]) (amavisd-new, port 10224) with ESMTP
 id 19334-12 for <266105-done@bugs.debian.org>;
 Wed, 18 Aug 2004 01:01:49 +0200 (MEST)
Received: from bolero.cs.tu-berlin.de (bolero.cs.tu-berlin.de [130.149.19.1])
	by mailhost.cs.tu-berlin.de (Postfix) with ESMTP
	for <266105-done@bugs.debian.org>; Wed, 18 Aug 2004 01:01:49 +0200 (MEST)
Received: (from doko@localhost)
	by bolero.cs.tu-berlin.de (8.12.10+Sun/8.12.8/Submit) id i7HN1n9s012064;
	Wed, 18 Aug 2004 01:01:49 +0200 (MEST)
From: Matthias Klose <doko@cs.tu-berlin.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <16674.36444.797572.328607@gargle.gargle.HOWL>
Date: Wed, 18 Aug 2004 01:01:48 +0200
To: 266105-done@bugs.debian.org
Subject: not a bug
X-Mailer: VM 7.03 under 21.4 (patch 6) "Common Lisp" XEmacs Lucid
X-Virus-Scanned: by amavisd-new at cs.tu-berlin.de
Delivered-To: 266105-done@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-3.0 required=4.0 tests=BAYES_00 autolearn=no 
	version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level: 

$ g++ -shared foobar.cpp -o foobar.so -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -lc
/usr/bin/ld: foobar.so: undefined versioned symbol name
std::time_put_w@@GLIBCPP_3.2
/usr/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status

sorry, what do you want to achieve?

- -lc is unneeded (and wrong)
- -lstdc++ is unneeded as well
- you're building a shared library without using -fPIC and trying to
  link the static libstdc++

g++ -shared -fPIC foobar.cc -o foobar.so is the way you want to build
your shlib.



Reply to: