On 2005-06-09, at 00:57, Daniel Kegel wrote:

Can somebody suggest a place to start looking for
why the libgcc_s.so built by crosstool's gcc-3.4 can't handle
exceptions from apps built by fc3's gcc-3.4?

The C++ program

#include <iostream>
void foo() throw (int) {
 std::cout << "In foo()" << std::endl;
 throw 1;
}
int main() {
 try {
   foo();
 } catch (int i) {
   std::cout << "Caught " << i << std::endl;
 }
 std::cout << "Finished" << std::endl;
 return 0;
}

works fine when built by FC3's gcc-3.4.
It also works fine when built by crosstool's gcc-3.4.

But when you add the libgcc_s.so built by crosstool into
ld.so.conf, the results are different; apps built
by fc3's gcc-3.4 die when they try to throw exceptions,
but apps built by crosstool's gcc-3.4 keep working.
Help!

NTPL vers. non NTPL signal handling differences.
The FC3 compiler contains some "backward compatibility" shims at
quite a few places, which are allowing old binaries to execute.
However stuff compiled with the FC3 version of the compiler, which
contains some "features" not seen otherwise will be of course
inconsistent with anything else.

Reply via email to