This is the mail archive of the libstdc++@sourceware.cygnus.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Voodoo


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]