Hit list:
	libsvx	14740
	libsfx	4534
	libsvt	3974
	libtk	5956
	libvcl	3358
	libxo	3669


Should we be using -Os instead of -O2 ?
Should we use (-fomit-frame-pointer - smaller code, faster too?)


This is the result of sticking this code:

	struct timeval t1, t2;
	gettimeofday (&t1, NULL);

	...

	gettimeofday (&t2, NULL);
	total_time.tv_sec += t2.tv_sec - t1.tv_sec;
	total_time.tv_usec += t2.tv_usec - t1.tv_usec;
	if (total_time.tv_usec < 0) {
	  total_time.tv_sec  -= 1;
	  total_time.tv_usec += 1000000;
	}
	if (total_time.tv_usec > 1000000) {
	  total_time.tv_sec  += 1;
	  total_time.tv_usec -= 1000000;
	}

	fprintf (stderr, "total time ('%s'): %6ld:%6ld\n",
		 pszModuleName, total_time.tv_sec, total_time.tv_usec);


	At top and tail of sal/osl/unx/module.c (osl_psz_loadModule):

total time ('libsmgr.so'):      0:  2580
total time ('libcpld.so'):      0: 27504
total time ('libsimreg.so'):      0: 29239
total time ('libdefreg.so'):      0: 31072
total time ('libtdmgr.so'):      0: 34700
total time ('libimpreg.so'):      0: 36935
total time ('libsimreg.so'):      0: 37006
total time ('libdefreg.so'):      0: 37024
total time ('libreg.so.3'):      0: 38242
total time ('librdbtdp.so'):      0: 40962
total time ('libreg.so.3'):      0: 41021
total time ('libcfgmgr2.so'):      0: 55995
total time ('libtcv.so'):      0: 58155
total time ('libsax.so'):      0: 60646
total time ('libucb1.so'):      0: 99702
total time ('libucb1.so'):      0: 99822
total time ('libucpfile1.so'):      0:158589
total time ('libucb1.so'):      0:158807
total time ('libsax.so'):      0:158917
total time ('libwrp641li.so'):      4:  2344       - !!!!!!!!!!!!!!!!!!
total time ('libi18npool641li.so'):      4: 43158
total time ('libi18n641li.so'):      4: 95130
total time ('libpackage2.so'):      4:101271
total time ('libfwk641li.so'):      4:307190
total time ('libgcc3_uno.so'):      4:310878
total time ('libgcc3_uno.so'):      4:310968
total time ('libgcc3_uno.so'):      4:311077
total time ('libgcc3_uno.so'):      4:311107
total time ('libfwl641li.so'):      4:351690
total time ('libfwl641li.so'):      4:351831
total time ('libucpchelp1.so'):      4:418499
total time ('libsvl641li.so'):      4:419249
total time ('libsfx641li.so'):      4:420861
total time ('libuui641li.so'):      4:451313
total time ('libfwk641li.so'):      4:451449
total time ('libsfx641li.so'):      4:451608
total time ('libfwl641li.so'):      4:451743
total time ('libtk641li.so'):      4:453043
total time ('libsvt641li.so'):      4:454235
total time ('libtk641li.so'):      4:454326
total time ('libfwk641li.so'):      4:454459
total time ('libdtransX11641li.so'):      4:505139
total time ('libdtransX11641li.so'):      4:505284
total time ('libfwl641li.so'):      4:505426
total time ('libsw641li.so'):      4:702188
total time ('liblng641li.so'):      4:805794
total time ('liblng641li.so'):      4:806007
total time ('libscn641li.so'):      4:825564
total time ('liblocaledata_ascii.so'):      4:831634
total time ('libi18npool641li.so'):      4:831759
total time ('libi18n641li.so'):      4:831890
total time ('libi18n641li.so'):      4:832035
total time ('liblng641li.so'):      4:832167
total time ('libdbtools2.so'):      5: 71355
total time ('libgcc3_uno.so'):      5: 71455
total time ('libgcc3_uno.so'):      5: 71485
total time ('libdtransX11641li.so'):      5: 71619
total time ('libmcnttype.so'):      5: 86088
total time ('libi18n641li.so'):      5: 86216
total time ('libgcc3_uno.so'):      5: 86328
total time ('libgcc3_uno.so'):      5: 86410
total time ('libgcc3_uno.so'):      5: 86529
total time ('libgcc3_uno.so'):      5: 86574
total time ('liblocaledata_ascii.so'):      5: 86710
total time ('libfwk641li.so'):      5: 86832
total time ('libsfx641li.so'):      5: 86945

And here is the diff between the ldd of libwrp and soffice.bin

					         size	striped	.gz
15a16
>       libfwe641li.so => ./libfwe641li.so	 2.3Mb
21a23
>       libgo641li.so => ./libgo641li.so	 2.2Mb
23a26
>       libj641li_g.so => ./libj641li_g.so	  28kb
26a30
>       libofa641li.so => ./libofa641li.so	 3.3Mb
32a37,39
>       libsb641li.so => ./libsb641li.so	 1.2Mb
>       libsfx641li.so => ./libsfx641li.so	 7.3Mb
>       libso641li.so => ./libso641li.so	 1.3Mb
37a45,47
>       libsvt641li.so => ./libsvt641li.so	 8.5Mb	3.4Mb	1.3Mb
>       libsvx641li.so => ./libsvx641li.so	25.3Mb	10.0Mb	4Mb
>       libtk641li.so => ./libtk641li.so	 5.2Mb
42a53
>       libxcr641li.so => ./libxcr641li.so	  480kb
43a55
>       libxo641li.so => ./libxo641li.so	 5.9Mb

	libc: 1.3Mb 1.2Mb 0.51Mb

	It seems libwrp just happens to pull in most of the rest of
the platform. Particularly libsvx - a huge beast.

	* Looking at the binding process - it seems that we repeatedly
search loads of libraries trying to re-bind (eg.) 'read', surely a
painfully unnecessary thing to do ? perhaps 'read' could have been
clobbered by a new dlopen though ?

	* Can we ignore conflicts and change the search order ?

	* An amazing amount of internal (self) linking;

src	dest	self	name
-----------------------------
232	14	20	./libcfgmgr2.so
199	542	758	./libcomphelp2.so
35	3	0	./libcpld.so
52	440	19	./libcppu.so.3
95	593	167	./libcppuhelper3gcc3.so
24	163	225	./libdb-3.2.so
177	8	27	./libdb_cxx-3.2.so
229	1	1611	./libdbtools2.so
57	5	0	./libdefreg.so
145	6	422	./libdtransX11641li.so
232	61	545	./libfwe641li.so
166	18	170	./libfwi641li.so
487	60	1469	./libfwk641li.so
161	8	265	./libfwl641li.so
65	11	0	./libgcc3_uno.so
4	0	0	./libgcc_s.so.1
46	6	265	./libgo641li.so
67	8	414	./libi18n641li.so
109	4	318	./libi18npool641li.so
41	3	0	./libimpreg.so
16	0	3	./libj641li_g.so
162	6	685	./liblng641li.so
5	2	0	./liblocaledata_ascii.so
64	2	82	./libmcnttype.so
659	10	508	./libofa641li.so
68	2	2	./libpackage2.so
156	25	160	./libpsp641li.so
50	3	0	./librdbtdp.so
39	2	0	./libreg.so.3
266	1087	243	./libsal.so.3
10	11	7	./libsalhelper3gcc3.so
73	8	4	./libsax.so
300	39	218	./libsb641li.so
100	2	100	./libscn641li.so
1788	954	4534	./libsfx641li.so
50	9	4	./libsimreg.so
80	13	2	./libsmgr.so
348	561	1194	./libso641li.so
187	121	383	./libsot641li.so
31	122	1085	./libstdc++.so.3
26	81	1061	./libstlport_gcc.so
51	8	0	./libstore.so.3
191	2360	2941	./libsvl641li.so
1395	1185	3974	./libsvt641li.so
1841	1507	14750	./libsvx641li.so
3274	2	0	./libsw641li.so
57	3	0	./libtcv.so
58	3	0	./libtdmgr.so
321	325	5956	./libtk641li.so
93	917	636	./libtl641li.so
173	9	489	./libucb1.so
173	346	965	./libucbhelper1gcc3.so
208	2	128	./libucpchelp1.so
262	4	736	./libucpfile1.so
289	524	709	./libutl641li.so
161	2	83	./libuui641li.so
553	1588	3358	./libvcl641li.so
77	104	509	./libvos2gcc3.so
195	11	219	./libwrp641li.so
105	3	505	./libxcr641li.so
348	310	3669	./libxo641li.so
181	2462	4	./soffice.bin
16	27	6	/lib/ld-linux.so.2
96	895	271	/lib/libc.so.6
6	0	0	/lib/libcrypt.so.1
23	29	366	/lib/libcrypto.so.2
34	17	0	/lib/libdl.so.2
5	17	2	/lib/libm.so.6
16	0	15	/lib/libnsl.so.1
22	0	5	/lib/libnss_files.so.2
64	199	21	/lib/libpthread.so.0
5	0	0	/lib/librt.so.1
35	13	69	/lib/libssl.so.2
9	3	1	/lib/libtermcap.so.2
29	1	76	/usr/X11R6/lib/X11/locale/common/ximcp.so.2
11	1	0	/usr/X11R6/lib/X11/locale/common/xlcDef.so.2
29	13	48	/usr/X11R6/lib/libICE.so.6
20	3	18	/usr/X11R6/lib/libSM.so.6
53	193	248	/usr/X11R6/lib/libX11.so.6
15	8	5	/usr/X11R6/lib/libXext.so.6
16	12	4	/usr/X11R6/lib/libXrender.so.1
204	1	2	/usr/X11R6/lib/modules/dri/mga_dri.so
4	0	2	/usr/lib/gconv/ISO8859-15.so
34	2	2	/usr/lib/gnome-vfs-2.0/modules/libfile.so
75	65	1689	/usr/lib/libGL.so
48	30	202	/usr/lib/libORBit-2.so.0
36	2	90	/usr/lib/libbonobo-activation.so.4
88	14	71	/usr/lib/libcups.so.2
8	0	104	/usr/lib/libfam.so.0
24	0	85	/usr/lib/libgconf-2.so.4
43	194	83	/usr/lib/libglib-2.0.so.0
22	3	2	/usr/lib/libgmodule-2.0.so.0
52	10	12	/usr/lib/libgnomecups-1.0.so.0
83	27	53	/usr/lib/libgnomevfs-2.so.0
51	17	72	/usr/lib/libgobject-2.0.so.0
30	1	0	/usr/lib/libgthread-2.0.so.0
19	4	4	/usr/lib/liblinc.so.1
7	0	2	/usr/lib/libpopt.so.0
13	0	136	/usr/lib/libxml2.so.2
10	0	1	/usr/lib/libz.so.1
53	25	0	sh
-----------------------------
18515	18515	60368	: Total
