On Sat, 14 Jul 2012 03:08:09 +0200 Matthias Klose <doko@debian.org> wrote: > please could you find out, which object files (if there are more than one) do > export this symbol for a -O1 build, and attach the preprocessed source and > command line options for these file(s)? shell script and gzip'd pre-processed cpp file attached. I've tested in a clean pbuilder chroot and the results for gcc-4.7 demonstrate the bug: # sh 667341.sh Starting with -O1 Checking for deserialize symbol: 0000000000003714 w F .text 00000000000000a1 void MailSortKeyImpl<QMailThreadSortKey>::deserialize<QDataStream>(QDataStream&) 0000000000003c40 w F .text 0000000000000048 void QMailThreadSortKey::deserialize<QDataStream>(QDataStream&) Changing to -O2 Checking for deserialize symbol: # (shell script doesn't currently decompress the .cpp.gz) shell script basically does: # Line for pre-processed cpp file g++ -c -pipe -O1 -Wall -W -fPIC -o qmailthreadsortkey.o qmailthreadsortkey.cpp g++ -Wl,-O1 -shared -Wl,-soname,libqmfclient.so.1 -o libqmfclient.so.1.0.0 qmailthreadsortkey.o -L/usr/lib/${LIBDIR} -lpthread objdump -C -t libqmfclient.so.1.0.0|grep deserialize g++ -c -pipe -O2 -Wall -W -fPIC -o qmailthreadsortkey.o qmailthreadsortkey.cpp g++ -Wl,-O2 -shared -Wl,-soname,libqmfclient.so.1 -o libqmfclient.so.1.0.0 qmailthreadsortkey.o -L/usr/lib/${LIBDIR} -lpthread objdump -C -t libqmfclient.so.1.0.0|grep deserialize where LIBDIR is /usr/lib/ followed by `dpkg-architecture -qDEB_HOST_MULTIARCH` - might not be necessary. HTH -- Neil Williams ============= http://www.linux.codehelp.co.uk/
#!/bin/sh # Debug support for #667341 set -e run () { LIBDIR=`dpkg-architecture -qDEB_HOST_MULTIARCH` if [ -f qmailthreadsortkey.o ]; then rm qmailthreadsortkey.o fi if [ -f libqmfclient.so.1.0.0 ]; then rm libqmfclient.so.1.0.0 fi # Line for pre-processed cpp file g++ -c -pipe ${OPTS} -Wall -W -fPIC -o qmailthreadsortkey.o qmailthreadsortkey.cpp # original line which needs libqt4-dev installed #g++ -c -pipe ${OPTS} -Wall -W -D_REENTRANT -fPIC -DQT_WEBKIT -DQT_BUILD_QCOP_LIB -DQMF_INTERNAL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Isupport -I. -o qmailthreadsortkey.o qmailthreadsortkey.cpp # Line for pre-processed cpp file g++ -Wl,${OPTS} -shared -Wl,-soname,libqmfclient.so.1 -o libqmfclient.so.1.0.0 qmailthreadsortkey.o -L/usr/lib/${LIBDIR} -lpthread # original line (shortened) which needs libqt4-dev installed #g++ -Wl,${OPTS} -shared -Wl,-soname,libqmfclient.so.1 -o libqmfclient.so.1.0.0 qmailthreadsortkey.o -L/usr/lib/${LIBDIR} -lQtSql -lQtNetwork -lQtCore -lpthread echo "Checking for deserialize symbol:" objdump -C -t libqmfclient.so.1.0.0|grep deserialize } echo "Starting with -O1" OPTS="-O1" run echo "Changing to -O2" OPTS="-O2" run
Attachment:
qmailthreadsortkey.cpp.gz
Description: Binary data
Attachment:
pgpE0yKMSIk1O.pgp
Description: PGP signature