[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#667341: optimisation tests



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


Reply to: