gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4) I had two c++ files with private classes and other public functions. I linked them with a third unit of main code (using gcc command line). Now the linker linked the second compilation unit to the private class in the first compilation unit not to its private class. The conflict was not detected by GCC but was detected by MSVC. It result in the program getting SEGV in weird and incomprehensible ways. The fix was to wrap the private classes in anonymous namespaces.
Please add detection for this sort of conflicting symbols. To build compilation unit g++ -g -O0 -I../../lib_content_adaptor/include CContentPluginExample.cpp -c -o CContentPluginExample.o To build executable g++ -g -O0 -o drivable_plugin drivable_plugin.o CContentPluginExample.o -L/usr/lib/debug/lib -L../../build/x86/libs -l_content_manager -l_content_adaptor -l_os -lpthread -- Summary: Two compilation units have same private class but no conflict detected or reported. Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mat_geek at yahoo dot com dot au http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34200