[OpenIndiana-discuss] undefined symbol __gnu_cxx::__pool<true>::_M_reserve_block(unsigned int, unsigned int)
Apostolos Syropoulos
asyropoulos at yahoo.com
Sat Nov 2 20:34:55 UTC 2013
Hello,
Finally, I have managed to solve the problems and to successfully compile Qt 4.8.5 with
g++ 4.7.2. The first error I reported is caused by enforcing visibility support with
__attribute__ ((visibility("hidden")))
I changed this to __attribute__ ((visibility("default"))) and the first error disappeared.
BTW, I have found the following regarding visibility:
http://stackoverflow.com/questions/16770399/limiting-shared-library-symbol-visibility-on-solaris
The second problem was easier to solve but more difficult to find. The problem was that for
some reason during the linking process the compiler was linking against /usr/sfw/lib/libstdc++.so.6
and not /usr/lib/libstdc++.so.6 The one in /usr/sfw/lib is old and does not define symbols that
have been introduced later on. By, deleting all instances of /usr/sfw/lib in file
mkspecs/solaris-g++/qmake.conf the problem was solved.
Unfortunately, the resulting binaries core dumb! gdb revealed the following:
Core was generated by `./assistant'.
Program terminated with signal 11, Segmentation fault.
[New process 90868 ]
#0 0xfefc688f in elf_lazy_find_sym () from /lib/ld.so.1
This problem can be solved by run the binaries as follows:
$ LD_NOLAZYLOAD=1 ./assistant
Of course, I will try the binaries on my laptop that runs a very recent version of
OI to see if this problem is caused by some bug in the system where I compiled Qt
(it runs oi_134_11).
A.S.
----------------------
Apostolos Syropoulos
Xanthi, Greece
More information about the OpenIndiana-discuss
mailing list