[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Experience w/ objprelink and qt v3.03, gcc v3.0.4, binutils v2.11.92
From:       Sean Pecor <sean () digitalspinner ! com>
Date:       2002-04-23 19:10:01
[Download RAW message or body]

Hello,

I've got my first batch compilation of KDE3 completed. This is with a Pentium 
4 1.8ghz, 512mb 800mhz RDRAM. I wanted to make sure I've done this correctly 
so I can make accurate comparison notes. My goal is to create a testbed of 
multiple compartmentalized compiles of kde and qt for benchmarking purposes. 
I'm also working on a bash / dcop script to hammer on particular applications 
for my own homebrew benchmark. My successful compilation notes so far are 
found at the bottom of this email.

Can someone compare their results with mine regarding the use of objprelink? 
Here are some of my countreloc results:

/opt/kde3/lib/libkdecore.so

   2757 R_386_32
    312 R_386_GLOB_DAT
   2458 R_386_JUMP_SLOT
   1612 R_386_RELATIVE

/opt/kde3/lib/libkdeui.so

  20293 R_386_32
    703 R_386_GLOB_DAT
   3368 R_386_JUMP_SLOT
   3323 R_386_RELATIVE

/opt/kde3/lib/libkonq.so

   1893 R_386_32
    127 R_386_GLOB_DAT
   1155 R_386_JUMP_SLOT
    393 R_386_RELATIVE

/usr/lib/qt3.03/lib/libqt-mt.so.3
  27281 R_386_32
   1520 R_386_GLOB_DAT
   7694 R_386_JUMP_SLOT
    164 R_386_PC32
  11465 R_386_RELATIVE

Does this look about right? I'm not a low level C++ and linking expert so I 
thought I'd ask.

Compilation notes:

My cpu specs are Pentium 4 1.8ghz, 512mb 800mhz RDRAM. My platform is Mandrake 
8.1 w/ many RPM updates. 

After this mass-compile I've noticed that the performance increase is 
substantial as compared to the standard Mandrake 8.2 KDE3 RPMs. Things feel 
faster, and my work is more fluid and enjoyable with the smaller "opening 
application" delays. There are some issues I need to resolve in my case, in 
that the Create Image Gallery functionality is gone in Konqueror, and there 
is a strange delay sometimes with pasting things from the clipboard (the 
application I paste into will sometimes freeze for about 6 seconds, then come 
back. As soon as I paste again it works fine though).

1. Compiling QT. 

I follow the README.qt-copy instructions. I added some additional steps 
because QT3 creates Makefiles that force CFLAGS and CXXFLAGS to "-O2". I 
replace "-O2" with my own flags using a brute force sed script:

	a) Follow README.qt-copy.
	b) From qt3 dir: 
		export CFLAGS="-pipe -fno-exceptions -Wall -W -fomit-frame-pointer -O3 
-malign-double -march=i686 -mcpu=i686 -malign-functions=4 --pipe -fforce-mem 
-fforce-addr" && CXXFLAGS=$CFLAGS
		find -name "Makefile" -exec ./fudge {} \;
	c) Contents of my fudge script in qt3 dir:
		#!/bin/bash
		sed -e "s|-O2|$CFLAGS|g" $1 > temp
		cp temp $1

The sed script above is pretty brute force. You've been warned.

2. Compiling KDE3.

I have all of the KDE modules under a "kdesrc" directory. Here is my "compile" 
bash script. 

#!/bin/bash

# Set up proper gcc flags.
export CFLAGS="-fomit-frame-pointer -O3 -malign-double -march=i686 \ 
	-mcpu=i686 -malign-functions=4 --pipe -fforce-mem -fforce-addr" \ 
	&& CXXFLAGS=$CFLAGS

# Make sure objprelink (installed in /usr/local/bin) is accessible.
export PATH=$PATH:/usr/local/bin

PACKAGES="arts kdelibs kdebase kdemultimedia kdenetwork kdegraphics kdepim 
kdeaddons kdeadmin kdeedu kdegames kdetoys kdeutils kdevelop koffice kdoc 
kdeartwork"

for package in $PACKAGES
do
        echo "Beginning compilation of $package"
        cd $package || exit
	make clean
        make -f Makefile.cvs
        ./configure --enable-objprelink --prefix=/opt/kde3 --enable-shadow \
	--disable-debug --enable-fast-malloc=full || exit
        make || exit
        make install || exit
        cd ..
done

#End of script

-- 
Digital Spinner, Inc.
Cutting edge web design and applications development.
http://www.digitalspinner.com
Phone: 802.948.2020
Fax: 802.948.2749

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic