[OpenIndiana-discuss] undefined symbol __gnu_cxx::__pool<true>::_M_reserve_block(unsigned int, unsigned int)
Apostolos Syropoulos
asyropoulos at yahoo.com
Mon Nov 4 19:55:26 UTC 2013
>
> This problem can be solved by run the binaries as follows:
>
> $ LD_NOLAZYLOAD=1 ./assistant
>
Hello,
I have tried the binaries under oi_151.1.8 and I confirm that the binaries
work as expected without setting LD_NOLAZYLOAD=1! Now, I have encountered
another strange problem. I have compiled ffmpeg with gcc and it works just
fine (sometime ago I could compile it with SunStudio but not anymore: it
stops with some cryptic error message I did not have the time to investigate).
Now, I have tried ffDiaporama, a Qt application that uses the libraries
that come with ffmpeg. I patched some of the source files and now everything
compiles but when it comes to linking I get:
Undefined first referenced
symbol in file
avresample_close(AVAudioResampleContext*) ../../../build/cBaseMediaFile.o
avresample_free(AVAudioResampleContext**) ../../../build/cBaseMediaFile.o
avresample_convert(AVAudioResampleContext*, unsigned char**, int, int, unsigned char**, int, int) ../../../build/cBaseMediaFile.o
avresample_get_delay(AVAudioResampleContext*) ../../../build/cBaseMediaFile.o
avresample_open(AVAudioResampleContext*) ../../../build/cBaseMediaFile.o
avresample_available(AVAudioResampleContext*) ../../../build/cBaseMediaFile.o
avresample_alloc_context() ../../../build/cBaseMediaFile.o
ld: fatal: symbol referencing errors. No output written to ../../../build/ffDiaporama
These symbols are defined in libavresample which is included in the library list
-L/opt/gnu/lib -R/opt/gnu/lib -lavresample -lavformat -lavcodec -lavutil -lavfilter -lswscale -L/opt/gnu/lib -R/opt/gnu/lib -ltag -lSDL -lexiv2 -lqimageblitz -lintl -liconv -L/opt/gnu/qt4/lib -R/opt/gnu/qt4/lib -lQtSvg -lQtXml -lQtGui -lQtNetwork -lresolv -lsocket -lxnet -lnsl -lQtCore -lpthread -lrt
When I tried to merge an object file with an object file generated during ffmpeg's compilation that
defined two of these symbols, the linker complained that some symbols are defined two times, thus,
the linker "sees" the symbols but somehow fails to "put" them inside the final binary. In addition,
the following verifies (?) that this is true:
$ elfdump /opt/gnu/lib/libavresample.so|grep avresample_close
[63] 0x0000e140 0x000000ac FUNC GLOB D 1 .text avresample_close
[182] 0x0000e140 0x000000ac FUNC GLOB D 1 .text avresample_close
54 [63] avresample_close
[58] 0x000203c0 0x00003afe R_386_JMP_SLOT avresample_close
R_386_JMP_SLOT 0x203c0 .rel.plt avresample_close
Does anyone have any suggestion/idea that might help me to finally produce the binary?
Regards,
A.S.
----------------------
Apostolos Syropoulos
Xanthi, Greece
More information about the OpenIndiana-discuss
mailing list