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.