From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20611 invoked by alias); 8 Apr 2002 21:56:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 20587 invoked by uid 71); 8 Apr 2002 21:56:02 -0000 Date: Mon, 08 Apr 2002 14:56:00 -0000 Message-ID: <20020408215602.20585.qmail@sources.redhat.com> To: bkoz@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Christoph Bugel Subject: Re: libstdc++/5166: Segfault when using global std::string from dlopen Reply-To: Christoph Bugel X-SW-Source: 2002-04/txt/msg00507.txt.bz2 List-Id: The following reply was made to PR libstdc++/5166; it has been noted by GNATS. From: Christoph Bugel To: bkoz@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Cc: Subject: Re: libstdc++/5166: Segfault when using global std::string from dlopen Date: Tue, 9 Apr 2002 00:47:17 +0300 On Fri 2002-04-05, bkoz@gcc.gnu.org wrote: [...] > See libstdc++/6062. I'd appreciate it if you'd try this with the gcc-3.1 toolchain. [...] > I think this is either a gcc-on-HPUX specific problem, or a problem with the HPUX dynamic linker. Thoughts on how to proceed? I think you're right, it does work just fine on Linux and on Solaris. But on HP-UX it still crashes on me; I just tried with the latest gcc 3.1. (Test is identical to the one attached to this PR, except that I removed the unneeded -lpthread from Makefile) I'll be happy to provide more details, etc. Or if someone can tell me what obvious mistake (FAQ?) I made, please do :-) BTW, to be sure, I tested a similar scenario with pure C code, and that doesn't crash. Also, if someone with access to an HP machine could confirm this, it would be helpful. Thanks Below are shell commands with the details: $ make g++ -fPIC -Wall -g -c mydll.cc -o mydll.o g++ -fPIC -shared -o libmydll.sl mydll.o -fPIC -g g++ -fPIC -Wall -g -c main.cc -o main.o g++ -o main main.o -fPIC -g -ldld $ ./main hello Segmentation fault (core dumped) $ gcc -v Reading specs from /users/chris/big/install-test31/lib/gcc-lib/hppa2.0w-hp-hpux11.00/3.1/specs Configured with: /users/chris/big/gcc-20020401/configure --prefix=/users/chris/big/install-test31 --with-gnu-as --with-as=/test/gnu/bin/as --enable-languages=c++ Thread model: single gcc version 3.1 20020401 (prerelease) $ gdb main core HP gdb 2.1 Copyright 1986 - 1999 Free Software Foundation, Inc. Hewlett-Packard Wildebeest 2.1 (based on GDB 5.0-hpwdb-20000630) Wildebeest is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for Wildebeest. Type "show warranty" for details. Wildebeest was built for PA-RISC 1.1 or 2.0 (narrow), HP-UX 11.00. . Core was generated by `main'. Program terminated with signal 11, Segmentation fault. warning: The shared libraries were not privately mapped; setting a breakpoint in a shared library will not work until you rerun the program. #0 _ZNSsaSEPKc (this=, __s=0x7f7ae0f4 "") at /users/chris/big/build-31/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/bits/basic_string.h:153 153 /users/chris/big/build-31/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/bits/basic_string.h: No such file or directory. (gdb) where #0 _ZNSsaSEPKc (this=, __s=0x7f7ae0f4 "") at /users/chris/big/build-31/hppa2.0w-hp-hpux11.00/libstdc++-v3/include/bits/basic_string.h:153 #1 0xc04a2bc8 in func () at mydll.cc:10 #2 0x2d70 in main () at main.cc:20 $ gcc -rdynamic gcc: unrecognized option `-rdynamic' gcc: no input files