[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