This is the mail archive of the
libstdc++@sourceware.cygnus.com
mailing list for the libstdc++ project.
Voodoo
- To: libstdc++ at sourceware dot cygnus dot com
- Subject: Voodoo
- From: heh <prince at wcug dot wwu dot edu>
- Date: Fri, 24 Sep 1999 14:24:55 -0700 (PDT)
- Reply-To: chrisp at lizardtech dot com
Hello all.
I didn't see any information available in the message logs, on this
topic of mysterious undefined references. I get the following (sample)
when building a static library.
/usr/local/lib/libstdc++.a(ios.o): In function `ios_base::_M_grow_words(int)':
/home/chrisp/compiler/bld-libstdc++/src/../../libstdc++-2.90.6.1/src/ios.cc:162: undefined reference to `__start_cp_handler'
/usr/local/lib/libstdc++.a(ios.o): In function `ios_base::_M_call_callbacks(ios_base::event)':
/home/chrisp/compiler/bld-libstdc++/src/../../libstdc++-2.90.6.1/src/ios.cc:211: undefined reference to `__start_cp_handler'
/home/chrisp/compiler/bld-libstdc++/src/../../libstdc++-2.90.6.1/src/ios.cc:211: undefined reference to `__start_cp_handler'
/usr/local/lib/libstdc++.a(ios.o): In function `ios_base::_M_init(void)':
/home/chrisp/compiler/bld-libstdc++/src/../../libstdc++-2.90.6.1/bits/localefwd.h:409: undefined reference to `__start_cp_handler'
/home/chrisp/compiler/bld-libstdc++/src/../../libstdc++-2.90.6.1/bits/localefwd.h:347: undefined reference to `__start_cp_handler'
Now when I look at the files ios.cc there are no references to
__start_cp_handler especially in and around the lines reported. Of
course I have also checked every file for references, and the entire dir
structure for any files containing a reference to __start_cp_handler (as
well as __eh_rtime_match).
There is a reference to __start_cp_handler in the following files:
/home/chrisp/compiler/gcc-2.95.1/gcc/cp/ChangeLog: * cp/except.c (call_eh_info): Use __start_cp_handler instead of
/home/chrisp/compiler/gcc-2.95.1/gcc/cp/ChangeLog: (__start_cp_handler): Get exception info pointer, set caught field,
/home/chrisp/compiler/gcc-2.95.1/gcc/cp/except.c: fn = get_identifier ("__start_cp_handler");
/home/chrisp/compiler/gcc-2.95.1/gcc/cp/except.c: /* Declare cp_eh_info * __start_cp_handler (void),
/home/chrisp/compiler/gcc-2.95.1/gcc/cp/exception.cc: __start_cp_handler (void)
Both of the undefined references seem to be calls from GCC and not the
libstdc++. So I'm starting to wonder if this is a bug or if there is an
additional library that is required? Maybe some unwritten law of how all
this should go together?
I thought I must be linking the wrong library. Sure enough that is the
correct library version.
Some information; I'm running SUSE 6.1 Linux, GCC 2.95.1 and
libstdc++-2.90.6.1. I'm certain I am using the correct gcc/g++
compiler, and library.
[chrisp@dendrite chrisp]$ gcc --version && g++ --version
2.95.1
2.95.1
Any help for this voodoo would be greatly appreciated.
Thanks.
Chris :)
sent from: prince@wcug.wwu.edu
reply to: chrisp@lizardtech.com
===================
What is "Windows 95/98"?
32 bit extensions for a 16 bit patch to an 8 bit operating system
originally coded for a 4 bit microprocessor written by a 2 bit company
that can't stand 1 bit of competition