Hello,
I'm trying to build Qt v4.4.0 on OpenSolaris 5.11 on x86 using gcc v4.3.3.
I configure with the following command line:
./configure --prefix=/opt/qt -debug-and-release -qt-gif -no-cups -no-nis -optimized-qmake --platform=solaris-g++
Configure completes with no errors. During the build, I get a lot of relocation errors similar to the following:
ld: warning: relocation warning: R_386_GOTOFF: file .obj/release-shared/qfontjpcodec.o: section .rel.eh_frame: symbol .LFB2617: relocation against discarded COMDAT section .gnu.linkonce.t._ZN5QListI10QByteArrayED1Ev: symbol not found, relocation ignored
Then the build dies at this point:
ln -s libQtCore.so.4.4.0 libQtCore.so
ln -s libQtCore.so.4.4.0 libQtCore.so.4
ln -s libQtCore.so.4.4.0 libQtCore.so.4.4
rm -f ../../lib/libQtCore.so.4.4.0
rm -f ../../lib/libQtCore.so
rm -f ../../lib/libQtCore.so.4
rm -f ../../lib/libQtCore.so.4.4
mv -f libQtCore.so.4.4.0 libQtCore.so libQtCore.so.4 libQtCore.so.4.4 ../../lib/
(test -z "../../lib/" || cd "../../lib/" ; targ=`basename libQtCore.so.4.4.0`; objcopy --only-keep-debug "$targ" "$targ.debug" && objcopy --strip-debug "$targ" && objcopy --add-gnu-debuglink="$targ.debug" "$targ" && chmod -x "$targ.debug" ) ;
BFD: libQtCore.so.4.4.0.debug: Not enough room for program headers, try linking with -N
objcopy: libQtCore.so.4.4.0.debug: Bad value
BFD: libQtCore.so.4.4.0.debug: Not enough room for program headers, try linking with -N
objcopy: libQtCore.so.4.4.0.debug: Bad value
gmake[1]: *** [../../lib/libQtCore.so.4.4.0] Error 1
gmake[1]: Leaving directory `/download/qt-x11-commercial-src-4.4.0/src/corelib'
gmake: *** [sub-corelib-make_default-ordered] Error 2
I've tried adding -N to QMAKE_LFLAGS in ./mkspecs/solaris-g++/qmake.conf. When I do that, the build dies with a segmentation fault and core dump. I've also tried -reduce-relocations and various combinations of the options on the configure command line.
Has anybody encountered the "Not enough room for program headers, try linking with -N" error? If so, what is this telling me and what can I do to get around this error?
Thanks,
Jon