--------------Boundary-00=_M269KWFJ9JEZ67XLG75N Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit *** NUMBERS These numbers were obtained using command bash% LD_DEBUG=statistics DISPLAY=localhost:1:s konqueror --------- with regular builds 26923: runtime linker statistics: 26923: total startup time in dynamic loader: 358288994 clock cycles 26923: time needed for relocation: 355202059 clock cycles (99.1) 26923: number of relocations: 53651 26923: time needed to load objects: 2864849 clock cycles (.7) konqueror: cannot connect to X server localhost:1:s --------- after rebuilding qt, kdelibs, kdecore (2.2beta1) 26891: runtime linker statistics: 26891: total startup time in dynamic loader: 171268316 clock cycles 26891: time needed for relocation: 168954584 clock cycles (98.6) 26891: number of relocations: 21143 26891: time needed to load objects: 2094340 clock cycles (1.2) konqueror: cannot connect to X server localhost:1:s *** BINUTIL PROBLEMS Some people ran into binutil problems - I am using binutils-2.10.91 - It is important to compile using a libbfd.so and a libiberty.a with matching versions. Some distribution have chose to put these libraries in separate packages. When they mismatch, you can have undefined symbols, or segfaults. Maybe one should do: % gcc -O2 -o objprelink objprelink.c /usr/lib/libbfd.a /usr/lib/libiberty.a since these .a files seem to come together. I just tried with the libbfd.a and libiberty.a that come with the current rawhide rpm ( binutils-2.11.90.0.8-5.i386.rpm ). That works for me. Attached a new version of objprelink.c *** COMPILER ISSUES I am using the famous gcc-2.96-85 This is not the "-69" version that came with RH7. This is the "-85" version that works quite well. Note that my code scans virtual table sections named ".gnu.linkonce.d.__vt_*" I just checked that this is also true with gcc 2.95.3. Old versions of gcc do not put virtual tables in such sections. **** HOWTO-QT I used QT-2.3.1 First I patch the config file "linux-g++-shared" using the attached patch "qt-configs.patch" Then I do "configure -shared -system-zlib -system-jpeg" and "make src-moc sub-src" Here are the compared relocation counts. These are obtained with the "counreloc" script attached. -------- before 16915 R_386_32 2690 R_386_GLOB_DAT 5040 R_386_JUMP_SLOT 4926 R_386_RELATIVE -------- after 4563 R_386_32 2690 R_386_GLOB_DAT 5039 R_386_JUMP_SLOT 21669 R_386_RELATIVE Here is what I obtain with flag -v on a particular file in QT % objprelink -v widgets/qscrollview.o | c++filt processing file widgets/qscrollview.o scanning section "QPtrDict virtual table" scanning section "QList virtual table" scanning section "QClipperWidget virtual table" scanning section "QClipperWidget::QPaintDevice virtual table" scanning section "QPaintEvent virtual table" scanning section "QWheelEvent virtual table" scanning section "QMouseEvent virtual table" found 126 symbols in need for a stub defining stub sections copying section data from widgets/qscrollview.o patching relocs for QPtrDict virtual table patching relocs for QList virtual table patching relocs for QClipperWidget virtual table patching relocs for QClipperWidget::QPaintDevice virtual table patching relocs for QPaintEvent virtual table patching relocs for QWheelEvent virtual table patching relocs for QMouseEvent virtual table finishing widgets/qscrollview.o **** HOWTO-KDE I recompiled kdelibs, kdebase, kdenetwork using the following procedure: 1) compile everything as usual 2) fix all object files find . -name '*.o' -exec objprelink {} \; 3) touch all LO files in order to cause the rebuilding of all libraries (.LA,.A,.SO) find . -name '*.lo' -exec touch {} \; 4) rebuild libraries make The attached KDELIBS file shows the differences in number of relocation records for all the kdelibs libraries, one by one. --------------Boundary-00=_M269KWFJ9JEZ67XLG75N Content-Type: application/x-shellscript; name="countreloc" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="countreloc" #!/bin/sh objdump --dynamic-reloc "$@" \ | cut -c10-24 | tail +6 | grep -v '^ *$' | sort \ | uniq -c --------------Boundary-00=_M269KWFJ9JEZ67XLG75N Content-Type: text/x-diff; charset="iso-8859-1"; name="qt-configs.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="qt-configs.patch" --- configs/linux-g++-shared.orig Fri Jul 27 19:44:50 2001 +++ configs/linux-g++-shared Fri Jul 27 19:48:59 2001 @@ -32,7 +32,7 @@ SYSCONF_LIBS_YACC = # Linking applications -SYSCONF_LINK = g++ +SYSCONF_LINK = objprelink $(OBJECTS) $(OBJMOC) && g++ SYSCONF_LFLAGS = SYSCONF_LIBS = @@ -58,7 +58,8 @@ # SYSCONF_LINK_SHLIB = g++ SYSCONF_LINK_TARGET_SHARED = lib$(TARGET).so.$(VER_MAJ).$(VER_MIN).$(VER_PATCH) -SYSCONF_LINK_LIB_SHARED = $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \ +SYSCONF_LINK_LIB_SHARED = objprelink $(OBJECTS) $(OBJMOC) && \ + $(SYSCONF_LINK_SHLIB) -shared -Wl,-soname,lib$(TARGET).so.$(VER_MAJ) \ $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \ $(OBJECTS) $(OBJMOC) $(LIBS) && \ mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \ --------------Boundary-00=_M269KWFJ9JEZ67XLG75N Content-Type: text/x-diff; charset="iso-8859-1"; name="KDELIBS" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="KDELIBS" --- /usr/lib/basicstyle.so 5 R_386_32 5 R_386_32 10 R_386_GLOB_DAT 10 R_386_GLOB_DAT 16 R_386_JUMP_SLOT 16 R_386_JUMP_SLOT 3 R_386_RELATIVE 8 R_386_RELATIVE --- /usr/lib/dcopserver.so 136 R_386_32 82 R_386_32 63 R_386_GLOB_DAT 63 R_386_GLOB_DAT 206 R_386_JUMP_SLOT 206 R_386_JUMP_SLOT 4 R_386_RELATIVE 137 R_386_RELATIVE --- /usr/lib/hcstyle.so 135 R_386_32 115 R_386_32 37 R_386_GLOB_DAT 37 R_386_GLOB_DAT 172 R_386_JUMP_SLOT 172 R_386_JUMP_SLOT 6 R_386_RELATIVE 139 R_386_RELATIVE --- /usr/lib/kbuildsycoca.so 167 R_386_32 137 R_386_32 68 R_386_GLOB_DAT 68 R_386_GLOB_DAT 209 R_386_JUMP_SLOT 209 R_386_JUMP_SLOT 12 R_386_RELATIVE 178 R_386_RELATIVE --- /usr/lib/kconf_update.so 5 R_386_32 5 R_386_32 11 R_386_GLOB_DAT 11 R_386_GLOB_DAT 92 R_386_JUMP_SLOT 92 R_386_JUMP_SLOT 5 R_386_RELATIVE 10 R_386_RELATIVE --- /usr/lib/kcookiejar.so 326 R_386_32 212 R_386_32 59 R_386_GLOB_DAT 59 R_386_GLOB_DAT 290 R_386_JUMP_SLOT 290 R_386_JUMP_SLOT 63 R_386_RELATIVE 386 R_386_RELATIVE --- /usr/lib/kde2/kbzip2filter.so 46 R_386_32 36 R_386_32 13 R_386_GLOB_DAT 13 R_386_GLOB_DAT 27 R_386_JUMP_SLOT 27 R_386_JUMP_SLOT 3 R_386_RELATIVE 49 R_386_RELATIVE --- /usr/lib/kde2/kgzipfilter.so 46 R_386_32 36 R_386_32 13 R_386_GLOB_DAT 13 R_386_GLOB_DAT 35 R_386_JUMP_SLOT 35 R_386_JUMP_SLOT 3 R_386_RELATIVE 49 R_386_RELATIVE --- /usr/lib/kde2/kimg_eps.so 5 R_386_32 5 R_386_32 10 R_386_GLOB_DAT 10 R_386_GLOB_DAT 60 R_386_JUMP_SLOT 60 R_386_JUMP_SLOT 3 R_386_RELATIVE 8 R_386_RELATIVE --- /usr/lib/kde2/kimg_g3.so 5 R_386_32 5 R_386_32 9 R_386_GLOB_DAT 9 R_386_GLOB_DAT 22 R_386_JUMP_SLOT 22 R_386_JUMP_SLOT 3 R_386_RELATIVE 8 R_386_RELATIVE --- /usr/lib/kde2/kimg_ico.so 14 R_386_32 14 R_386_32 10 R_386_GLOB_DAT 10 R_386_GLOB_DAT 55 R_386_JUMP_SLOT 55 R_386_JUMP_SLOT 3 R_386_RELATIVE 16 R_386_RELATIVE --- /usr/lib/kde2/kimg_krl.so 4 R_386_GLOB_DAT 4 R_386_GLOB_DAT 9 R_386_JUMP_SLOT 9 R_386_JUMP_SLOT 3 R_386_RELATIVE 3 R_386_RELATIVE --- /usr/lib/kde2/kimg_tiff.so 5 R_386_32 5 R_386_32 9 R_386_GLOB_DAT 9 R_386_GLOB_DAT 21 R_386_JUMP_SLOT 21 R_386_JUMP_SLOT 3 R_386_RELATIVE 8 R_386_RELATIVE --- /usr/lib/kde2/kimg_xview.so 4 R_386_GLOB_DAT 4 R_386_GLOB_DAT 16 R_386_JUMP_SLOT 16 R_386_JUMP_SLOT 3 R_386_RELATIVE 3 R_386_RELATIVE --- /usr/lib/kde2/kio_file.so 75 R_386_32 68 R_386_32 42 R_386_GLOB_DAT 42 R_386_GLOB_DAT 153 R_386_JUMP_SLOT 153 R_386_JUMP_SLOT 6 R_386_RELATIVE 79 R_386_RELATIVE --- /usr/lib/kde2/kio_ftp.so 32 R_386_32 29 R_386_32 18 R_386_GLOB_DAT 18 R_386_GLOB_DAT 192 R_386_JUMP_SLOT 192 R_386_JUMP_SLOT 15 R_386_RELATIVE 47 R_386_RELATIVE --- /usr/lib/kde2/kio_help.so 124 R_386_32 82 R_386_32 35 R_386_GLOB_DAT 35 R_386_GLOB_DAT 184 R_386_JUMP_SLOT 184 R_386_JUMP_SLOT 3 R_386_RELATIVE 127 R_386_RELATIVE --- /usr/lib/kde2/kio_http.so 50 R_386_32 45 R_386_32 24 R_386_GLOB_DAT 24 R_386_GLOB_DAT 271 R_386_JUMP_SLOT 271 R_386_JUMP_SLOT 3 R_386_RELATIVE 53 R_386_RELATIVE --- /usr/lib/kde2/kjs_html.so 2012 R_386_32 622 R_386_32 441 R_386_GLOB_DAT 441 R_386_GLOB_DAT 1488 R_386_JUMP_SLOT 1488 R_386_JUMP_SLOT 21896 R_386_RELATIVE 23884 R_386_RELATIVE --- /usr/lib/kde2/libkded_kdeprintd.so 72 R_386_32 57 R_386_32 35 R_386_GLOB_DAT 35 R_386_GLOB_DAT 99 R_386_JUMP_SLOT 99 R_386_JUMP_SLOT 10 R_386_RELATIVE 81 R_386_RELATIVE --- /usr/lib/kde2/libkdeprint_cups.so 1334 R_386_32 273 R_386_32 90 R_386_GLOB_DAT 90 R_386_GLOB_DAT 340 R_386_JUMP_SLOT 340 R_386_JUMP_SLOT 6 R_386_RELATIVE 1329 R_386_RELATIVE --- /usr/lib/kde2/libkdeprint_ext.so 89 R_386_32 56 R_386_32 17 R_386_GLOB_DAT 17 R_386_GLOB_DAT 37 R_386_JUMP_SLOT 37 R_386_JUMP_SLOT 3 R_386_RELATIVE 92 R_386_RELATIVE --- /usr/lib/kde2/libkdeprint_lpd.so 151 R_386_32 97 R_386_32 41 R_386_GLOB_DAT 41 R_386_GLOB_DAT 180 R_386_JUMP_SLOT 180 R_386_JUMP_SLOT 23 R_386_RELATIVE 174 R_386_RELATIVE --- /usr/lib/kde2/libkdeprint_lpdunix.so 75 R_386_32 55 R_386_32 20 R_386_GLOB_DAT 20 R_386_GLOB_DAT 98 R_386_JUMP_SLOT 98 R_386_JUMP_SLOT 3 R_386_RELATIVE 78 R_386_RELATIVE --- /usr/lib/kde2/libkdeprint_rlpr.so 645 R_386_32 229 R_386_32 54 R_386_GLOB_DAT 54 R_386_GLOB_DAT 172 R_386_JUMP_SLOT 172 R_386_JUMP_SLOT 6 R_386_RELATIVE 646 R_386_RELATIVE --- /usr/lib/kde2/libkpac.so 85 R_386_32 65 R_386_32 42 R_386_GLOB_DAT 42 R_386_GLOB_DAT 156 R_386_JUMP_SLOT 156 R_386_JUMP_SLOT 24 R_386_RELATIVE 109 R_386_RELATIVE --- /usr/lib/kded.so 221 R_386_32 149 R_386_32 85 R_386_GLOB_DAT 85 R_386_GLOB_DAT 242 R_386_JUMP_SLOT 242 R_386_JUMP_SLOT 11 R_386_RELATIVE 225 R_386_RELATIVE --- /usr/lib/kio_http_cache_cleaner.so 23 R_386_32 17 R_386_32 20 R_386_GLOB_DAT 20 R_386_GLOB_DAT 82 R_386_JUMP_SLOT 82 R_386_JUMP_SLOT 8 R_386_RELATIVE 31 R_386_RELATIVE --- /usr/lib/kio_uiserver.so 628 R_386_32 355 R_386_32 81 R_386_GLOB_DAT 81 R_386_GLOB_DAT 298 R_386_JUMP_SLOT 298 R_386_JUMP_SLOT 88 R_386_RELATIVE 708 R_386_RELATIVE --- /usr/lib/klauncher.so 95 R_386_32 65 R_386_32 44 R_386_GLOB_DAT 44 R_386_GLOB_DAT 234 R_386_JUMP_SLOT 234 R_386_JUMP_SLOT 7 R_386_RELATIVE 101 R_386_RELATIVE --- /usr/lib/klegacystyle.so 144 R_386_32 128 R_386_32 40 R_386_GLOB_DAT 40 R_386_GLOB_DAT 291 R_386_JUMP_SLOT 291 R_386_JUMP_SLOT 6 R_386_RELATIVE 149 R_386_RELATIVE --- /usr/lib/kstepstyle.so 98 R_386_32 96 R_386_32 23 R_386_GLOB_DAT 23 R_386_GLOB_DAT 88 R_386_JUMP_SLOT 88 R_386_JUMP_SLOT 3 R_386_RELATIVE 100 R_386_RELATIVE --- /usr/lib/libDCOP.so 119 R_386_32 95 R_386_32 74 R_386_GLOB_DAT 74 R_386_GLOB_DAT 310 R_386_JUMP_SLOT 310 R_386_JUMP_SLOT 45 R_386_RELATIVE 154 R_386_RELATIVE --- /usr/lib/libkab.so 378 R_386_32 194 R_386_32 68 R_386_GLOB_DAT 68 R_386_GLOB_DAT 312 R_386_JUMP_SLOT 312 R_386_JUMP_SLOT 38 R_386_RELATIVE 413 R_386_RELATIVE --- /usr/lib/libkdecore.so 1973 R_386_32 876 R_386_32 530 R_386_GLOB_DAT 530 R_386_GLOB_DAT 1916 R_386_JUMP_SLOT 1916 R_386_JUMP_SLOT 853 R_386_RELATIVE 2804 R_386_RELATIVE --- /usr/lib/libkdefakes.so 4 R_386_GLOB_DAT 4 R_386_GLOB_DAT 7 R_386_JUMP_SLOT 7 R_386_JUMP_SLOT 3 R_386_RELATIVE 3 R_386_RELATIVE --- /usr/lib/libkdeprint.so 2623 R_386_32 757 R_386_32 292 R_386_GLOB_DAT 292 R_386_GLOB_DAT 664 R_386_JUMP_SLOT 664 R_386_JUMP_SLOT 104 R_386_RELATIVE 2703 R_386_RELATIVE --- /usr/lib/libkdeprint_management.so 5341 R_386_32 971 R_386_32 392 R_386_GLOB_DAT 392 R_386_GLOB_DAT 689 R_386_JUMP_SLOT 689 R_386_JUMP_SLOT 31 R_386_RELATIVE 5317 R_386_RELATIVE --- /usr/lib/libkdesu.so 33 R_386_32 26 R_386_32 26 R_386_GLOB_DAT 26 R_386_GLOB_DAT 155 R_386_JUMP_SLOT 155 R_386_JUMP_SLOT 3 R_386_RELATIVE 36 R_386_RELATIVE --- /usr/lib/libkdeui.so 15962 R_386_32 2647 R_386_32 1576 R_386_GLOB_DAT 1576 R_386_GLOB_DAT 2786 R_386_JUMP_SLOT 2786 R_386_JUMP_SLOT 656 R_386_RELATIVE 16486 R_386_RELATIVE --- /usr/lib/libkfile.so 3341 R_386_32 909 R_386_32 495 R_386_GLOB_DAT 495 R_386_GLOB_DAT 987 R_386_JUMP_SLOT 987 R_386_JUMP_SLOT 38 R_386_RELATIVE 3352 R_386_RELATIVE --- /usr/lib/libkhtml.so 12094 R_386_32 2569 R_386_32 1160 R_386_GLOB_DAT 1160 R_386_GLOB_DAT 2227 R_386_JUMP_SLOT 2227 R_386_JUMP_SLOT 5948 R_386_RELATIVE 17988 R_386_RELATIVE --- /usr/lib/libkhtmlimage.so 91 R_386_32 70 R_386_32 38 R_386_GLOB_DAT 38 R_386_GLOB_DAT 93 R_386_JUMP_SLOT 93 R_386_JUMP_SLOT 8 R_386_RELATIVE 98 R_386_RELATIVE --- /usr/lib/libkio.so 1152 R_386_32 526 R_386_32 321 R_386_GLOB_DAT 321 R_386_GLOB_DAT 931 R_386_JUMP_SLOT 931 R_386_JUMP_SLOT 110 R_386_RELATIVE 1252 R_386_RELATIVE --- /usr/lib/libkjava.so 310 R_386_32 161 R_386_32 61 R_386_GLOB_DAT 61 R_386_GLOB_DAT 228 R_386_JUMP_SLOT 228 R_386_JUMP_SLOT 12 R_386_RELATIVE 320 R_386_RELATIVE --- /usr/lib/libkjs.so 1094 R_386_32 473 R_386_32 325 R_386_GLOB_DAT 325 R_386_GLOB_DAT 288 R_386_JUMP_SLOT 288 R_386_JUMP_SLOT 157 R_386_RELATIVE 1248 R_386_RELATIVE --- /usr/lib/libkparts.so 710 R_386_32 358 R_386_32 181 R_386_GLOB_DAT 181 R_386_GLOB_DAT 292 R_386_JUMP_SLOT 292 R_386_JUMP_SLOT 21 R_386_RELATIVE 720 R_386_RELATIVE --- /usr/lib/libkscreensaver.so 236 R_386_32 131 R_386_32 34 R_386_GLOB_DAT 34 R_386_GLOB_DAT 83 R_386_JUMP_SLOT 83 R_386_JUMP_SLOT 16 R_386_RELATIVE 246 R_386_RELATIVE --- /usr/lib/libkspell.so 256 R_386_32 163 R_386_32 86 R_386_GLOB_DAT 86 R_386_GLOB_DAT 220 R_386_JUMP_SLOT 220 R_386_JUMP_SLOT 8 R_386_RELATIVE 262 R_386_RELATIVE --- /usr/lib/libkssl.so 410 R_386_32 215 R_386_32 47 R_386_GLOB_DAT 47 R_386_GLOB_DAT 317 R_386_JUMP_SLOT 317 R_386_JUMP_SLOT 7 R_386_RELATIVE 414 R_386_RELATIVE --- /usr/lib/libksycoca.so 948 R_386_32 544 R_386_32 270 R_386_GLOB_DAT 270 R_386_GLOB_DAT 848 R_386_JUMP_SLOT 848 R_386_JUMP_SLOT 30 R_386_RELATIVE 974 R_386_RELATIVE --- /usr/lib/libktexteditor.so 208 R_386_32 168 R_386_32 29 R_386_GLOB_DAT 29 R_386_GLOB_DAT 45 R_386_JUMP_SLOT 45 R_386_JUMP_SLOT 7 R_386_RELATIVE 212 R_386_RELATIVE --- /usr/lib/webstyle.so 89 R_386_32 87 R_386_32 21 R_386_GLOB_DAT 21 R_386_GLOB_DAT 82 R_386_JUMP_SLOT 82 R_386_JUMP_SLOT 3 R_386_RELATIVE 92 R_386_RELATIVE --------------Boundary-00=_M269KWFJ9JEZ67XLG75N Content-Type: application/x-gzip; name="objprelink.c.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="objprelink.c.gz" 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 --------------Boundary-00=_M269KWFJ9JEZ67XLG75N-- >> Visit http://master.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<