On 19 May 2011 15:03, <asyropoulos@xxxxxxx> wrote: > >> ignore that ... you didn't say whether you looked at the libstdc++.so >> libs in /opt/gcc-4.6.0 and whether any of them use ELF symbol >> versioning, which might make them incompatible. > > I have compiled Qt with gcc 4.5.3 and 4.6.0 and now I am trying again > with 4.6.0 that has been configured to use GNU ld and GNU as. As about > the versioning thing I am not sure what you mean, bur I hope the following > help: > > $ elfdump -v /usr/lib/libstdc++.so.6.0.14 > > Version Needed Section: .SUNW_version > index file version > [2] libm.so.2 SUNW_1.2 > [3] libgcc_s.so.1 GCC_3.0 [ INFO ] > [4] GCC_3.3 [ INFO ] > [5] GCC_4.2.0 This shows that /usr/lib/libstdc++.so doesn't use symvers. > $ elfdump -v /opt/gcc-4.6.0/lib/libstdc++.so.6.0.15 > > Version Definition Section: .SUNW_version > index version dependency > [1] libstdc++.so.6 [ BASE ] > [2] GLIBCXX_3.4 > [3] GLIBCXX_3.4.1 GLIBCXX_3.4 > [4] GLIBCXX_3.4.2 GLIBCXX_3.4.1 > ... This shows that /opt/gcc-4.6.0/lib/libstdc++.so does use symvers. Therefore they are not compatible. If you compile with gcc 4.6 you must ensure the library in /opt is found. I suspect the wrong libstdc++.so is being found at link time. Another alternative would be to rebuild gcc 4.6 without symbol versioning enabled so that you get compatibility with the lib from gcc 4.5