[ooo-build-commit] 3 commits - patches/dev300

René Engelhard rene at kemper.freedesktop.org
Wed Oct 7 08:33:32 PDT 2009


 patches/dev300/apply                                           |   61 
 patches/dev300/armeabi-softfp-buildfix.diff                    |    2 
 patches/dev300/buildfix-x86-64-visibility-workaround-m60.diff  |   53 
 patches/dev300/buildfix-x86-64-visibility-workaround.diff      |   14 
 patches/dev300/debian-opt-m60.diff                             |   22 
 patches/dev300/debian-opt.diff                                 |   48 
 patches/dev300/jemalloc-m60.diff                               |   87 
 patches/dev300/jemalloc.diff                                   |   41 
 patches/dev300/link-as-needed-m60.diff                         |  363 ++
 patches/dev300/link-as-needed.diff                             |  155 -
 patches/dev300/piece-target-m60.diff                           |  103 
 patches/dev300/piece-target.diff                               |   42 
 patches/dev300/solenv-really-use-unsinged-char-on-ppc-m60.diff |   67 
 patches/dev300/solenv-really-use-unsinged-char-on-ppc.diff     |   77 
 patches/dev300/speed-hash-style-m60.diff                       |   97 
 patches/dev300/speed-hash-style.diff                           |   41 
 patches/dev300/testing-more-optimizations-ark-m60.diff         | 1289 ++++++++++
 patches/dev300/testing-more-optimizations-ark.diff             |   42 
 patches/dev300/unxlngi6-notune-m60.diff                        |   11 
 patches/dev300/unxlngi6-notune.diff                            |   18 
 20 files changed, 2241 insertions(+), 392 deletions(-)

New commits:
commit 6fac231763ce9c7bcc4fdf6214ab219692d8efad
Author: Rene Engelhard <rene at debian.org>
Date:   Wed Oct 7 17:30:07 2009 +0200

    backport typo fix for armeabi-softfp-buildfix.diff from i#105302

diff --git a/patches/dev300/armeabi-softfp-buildfix.diff b/patches/dev300/armeabi-softfp-buildfix.diff
index 5ba5cdb..cdcb2ae 100644
--- a/patches/dev300/armeabi-softfp-buildfix.diff
+++ b/patches/dev300/armeabi-softfp-buildfix.diff
@@ -15,7 +15,7 @@
 + * -mfloat-abi=softfp should work.  -mfloat-abi=hard won't; that would
 + * need both a new macro to identify the hard-VFP ABI.
 + */
-+#if !defined(__ARM_EABI__) && (!defined(__SOFTFP__)
++#if !defined(__ARM_EABI__) && !defined(__SOFTFP__)
  #error Not Implemented
  
  /*
commit 0bdce10c0ce30ff58af4f740c99aac5d278ca76c
Author: Rene Engelhard <rene at debian.org>
Date:   Wed Oct 7 17:24:25 2009 +0200

    instsetoo-native-fix-system-python.diff is masterfixed for ooo320-m1

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 390c0c5..fbed9e8 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1136,7 +1136,7 @@ db4.8.diff, rengelha
 # fix build with system-lucene
 buildfix-system-lucene.diff, i#105433, rengelha
 
-[ BuildBits >= dev300-m60 ]
+[ BuildBits >= dev300-m60 < ooo320-m1 ]
 instsetoo-native-fix-system-python.diff, i#105663, rengelha
 
 [ BuildBits < dev300-m60 ]
commit eea94da0f0b8147e66ed76f61816b4ef55ab07d3
Author: Rene Engelhard <rene at debian.org>
Date:   Wed Oct 7 16:24:36 2009 +0200

    adapt unxlng*.mk-touching patches after cmcfixes62

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 217cb9c..390c0c5 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -353,10 +353,16 @@ vcl-menu-fixes.diff, i#67123, n#523852, michael/jholesov
 # Tell the desktop we support the VFS
 uses-vfs.diff, i#43504, michael
 
+[ FixesNotForUpstream >= dev300-m61 >= ooo320-m1 ]
 # not for upstreaming: don't disable the entire visibility, just
 # the -fvisibility-inlines-hidden
 buildfix-x86-64-visibility-workaround.diff
+[ FixesNotForUpstream < dev300-m61 < ooo320-m1 ]
+# not for upstreaming: don't disable the entire visibility, just
+# the -fvisibility-inlines-hidden
+buildfix-x86-64-visibility-workaround-m60.diff
 
+[ FixesNotForUpstream ]
 # re-direct to plugins via http://extensions.go-oo.org/
 redirect-extensions.diff
 
@@ -945,8 +951,12 @@ corporate-dictionary.diff, michael
 # Some Novell colors ...
 novell-palette.diff, michael
 
+[ NovellOnly >= dev300-m61 >= ooo320-m1 ]
 # finally disable -fsigned-char on pcc
 solenv-really-use-unsinged-char-on-ppc.diff, i#81127, n#169875, pmladek
+[ NovellOnly < dev300-m61 < ooo320-m1 ]
+# finally disable -fsigned-char on pcc
+solenv-really-use-unsinged-char-on-ppc-m60.diff, i#81127, n#169875, pmladek
 
 
 [ NotDebian ]
@@ -988,8 +998,6 @@ no-mozilla-plug-in-option.diff
 # read variables from /etc/openoffice/sofficerc, since /usr/lib/openoffice/sofficerc
 # just refers to it
 oosplash-etc-openoffice-sofficerc.diff
-# build using -O2 on x86 and sparc according to Debian policy.
-debian-opt.diff
 ubuntu-soffice-config.diff, mklose
 ubuntu-openoffice-java-common.diff, ccheney
 ubuntu-javaldx.diff, ccheney
@@ -1005,6 +1013,13 @@ odk-build-force-openjdks-javadoc.diff
 # add JDK paths for MySQL, PostgreSQL, JTDS
 jdbc-driver-classpaths-debian.diff
 
+[ DebianBaseOnly >= dev300-m61 >= ooo320-m1 ]
+# build using -O2 on x86 and sparc according to Debian policy.
+debian-opt.diff
+[ DebianBaseOnly < dev300-m61 < ooo320-m1 ]
+# build using -O2 on x86 and sparc according to Debian policy.
+debian-opt-m60.diff
+
 [ LocalizeFixes and DebianBaseOnly ]
 # mention openoffice.org-report-builder instead of getting people
 # to download it from elsewhere
@@ -1294,6 +1309,7 @@ seamonkey-is-iceape.diff
 # FIXME: is anybody using this feature?
 #FIXME src680: separate-helpcontent.diff, jholesov
 
+[ BuildBits >= dev300-m61 >= ooo320-m1 ]
 # use --hash-style=gnu linking when supported
 # disabled for Debian as Debian policy (for now) is to use=both
 speed-hash-style.diff, pmladek
@@ -1301,6 +1317,14 @@ speed-hash-style.diff, pmladek
 # use -Wl,--as-needed, save 1% of relocations
 link-as-needed.diff, i#89511, pmladek
 
+[ BuildBits < dev300-m61 < ooo320-m1 ]
+# use --hash-style=gnu linking when supported
+# disabled for Debian as Debian policy (for now) is to use=both
+speed-hash-style-m60.diff, pmladek
+
+# use -Wl,--as-needed, save 1% of relocations
+link-as-needed-m60.diff, i#89511, pmladek
+
 [ MandrivaOnly ]
 SectionOwner => gghibo
 # mozilla-firefox.diff
@@ -1315,11 +1339,13 @@ system-db-4.3-use-lpthread.diff, i#58474, rengelha
 [ PLDOnly ]
 SectionOwner => arekm
 
-# fix build of sal project
-solenv-unxlngi4-link.diff, i#66982
 # fix for macro browser crash
 sfx2-badscript.diff, i#67976
 
+[ PLDOnly < dev300-m61 < ooo320-m1 ]
+# fix build of sal project. FIXME: unxlngi4.mk is gone. still needed?
+solenv-unxlngi4-link.diff, i#66982
+
 
 [ BuildBits ]
 # work around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22392
@@ -1516,12 +1542,14 @@ msitrans-problemchecksum.diff, kami
 # Multi-language installer stuff
 win32-multi-lang-installer.diff, i#66062, i#88638, i#88639, tml
 
-[ VBABits ]
-[ GentooExperimental ]
+[ GentooExperimental >= dev300-m61 >= ooo320-m1 ]
 SectionOwner => hmth
-
 # jemalloc, FreeBSD 7 allocator
 jemalloc.diff
+[ GentooExperimental < dev300-m61 < ooo320-m1 ]
+SectionOwner => hmth
+# jemalloc, FreeBSD 7 allocator
+jemalloc-m60.diff
 
 [ GentooOnly ]
 SectionOwner => aprosky
@@ -2216,13 +2244,17 @@ ubuntu-lpi.diff, i#64895, mklose
 ubuntu-sparc-hack.diff, mklose
 human-icons-add.diff, mklose
 static-libs-use-_pic.diff, rengelha
-unxlngi6-notune.diff, doko
 ubuntu-no-stack-protector.diff, doko
 # link dynamically with liblpsolve55.so
 system-lpsolve-rpath.diff, rengelha
 #gccXXXXX.solenv.javaregistration.diff
 ubuntu-mstopdf.diff, ccheney
 
+[ Ubuntu >= dev300-m62 >= ooo320-m1 ]
+unxlngi6-notune.diff, doko
+[ Ubuntu < dev300-m62 < ooo320-m1 ]
+unxlngi6-notune-m60.diff, doko
+
 [ UbuntuL10nOnly ]
 human-icons-i18n.diff, mklose
 
@@ -2886,7 +2918,11 @@ SectionOwner => michael
 piece-build.diff
 piece-deliver.diff
 piece-checkdll.diff
+[ PieceBits >= dev300-m61 >= ooo320-m1 ]
 piece-target.diff
+[ PieceBits < dev300-m61 < ooo320-m1 ]
+piece-target-m60.diff
+[ PieceBits ]
 piece-icons.diff
 piece-startup.diff
 piece-basic.diff
@@ -2939,11 +2975,14 @@ piece-reportbuilder.diff
 [ BFFixes ]
 fit-list-to-size-binfilter.diff, i#94086, thorsten
 
-[ ArkOnly ]
+[ ArkOnly >= dev300-m61 >= ooo320-m1 ]
 SectionOwner => brosenk
-
 # See what breaks if we build with more optimizations
 testing-more-optimizations-ark.diff
+[ ArkOnly < dev300-m61 < ooo320-m1 ]
+SectionOwner => brosenk
+# See what breaks if we build with more optimizations
+testing-more-optimizations-ark-m60.diff
 
 [ Fixes ]
 svtools-update-ole.diff, n#411855, thorsten
diff --git a/patches/dev300/buildfix-x86-64-visibility-workaround-m60.diff b/patches/dev300/buildfix-x86-64-visibility-workaround-m60.diff
new file mode 100644
index 0000000..2747d25
--- /dev/null
+++ b/patches/dev300/buildfix-x86-64-visibility-workaround-m60.diff
@@ -0,0 +1,53 @@
+--- configure.in.old	2009-04-06 16:41:41.000000000 +0000
++++ configure.in	2009-04-06 16:41:41.000000000 +0000
+@@ -2442,6 +2442,7 @@ fi
+ dnl ===================================================================
+ dnl system stl sanity tests
+ dnl ===================================================================
++HAVE_GCC_VISIBILITY_BROKEN=
+ if test "$USE_SYSTEM_STL" = "YES"; then
+    AC_MSG_CHECKING([if hash_map will be in __gnu_cxx namespace])
+    AC_LANG_PUSH([C++])
+@@ -2481,9 +2482,9 @@ using namespace std;
+       gccvisok=no)
+       AC_MSG_RESULT([$gccvisok])
+       if test "$gccvisok" = "no"; then
+-         AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility])
+-         echo "Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility" >> warn
+-         unset HAVE_GCC_VISIBILITY_FEATURE
++         AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe, disabling that.])
++         echo "Your gcc is not -fvisibility-inlines-hidden safe, disabling that." >> warn
++         HAVE_GCC_VISIBILITY_BROKEN="TRUE"
+       fi
+ 
+       LDFLAGS=$sharedlink_ldflags_save
+@@ -2523,6 +2524,7 @@ _ACEOF
+ fi
+ 
+ AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
++AC_SUBST(HAVE_GCC_VISIBILITY_BROKEN)
+ 
+ dnl ===================================================================
+ dnl allocator
+--- set_soenv.in.old	2009-04-06 16:41:41.000000000 +0000
++++ set_soenv.in	2009-04-06 16:41:41.000000000 +0000
+@@ -1874,6 +1874,8 @@ ToFile( "JAVAHOME",          $JAVAHOME,
+ ToFile( "CC",                $CC,                "e" );
+ ToFile( "HAVE_GCC_VISIBILITY_FEATURE",
+ 		"@HAVE_GCC_VISIBILITY_FEATURE@", "e" );
++ToFile( "HAVE_GCC_VISIBILITY_BROKEN",
++		"@HAVE_GCC_VISIBILITY_BROKEN@", "e" );
+ ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
+ ToFile( "CXX",               $CXX,               "e" );
+ ToFile( "MINGWCXX",          "@MINGWCXX@",       "e" );
+--- solenv/inc/unxlngx6.mk.old	2009-04-02 10:53:10.000000000 +0000
++++ solenv/inc/unxlngx6.mk	2009-04-06 16:41:41.000000000 +0000
+@@ -97,7 +97,7 @@ CFLAGSCXX= -pipe $(ARCH_FLAGS)
+ CFLAGSCXX+= -Wno-ctor-dtor-privacy
+ CFLAGSCXX+= -fno-use-cxa-atexit
+ PICSWITCH:=-fpic
+-.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
++.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" && "$(HAVE_GCC_VISIBILITY_BROKEN)" != "TRUE"
+ CFLAGSCXX += -fvisibility-inlines-hidden
+ .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
+ 
diff --git a/patches/dev300/buildfix-x86-64-visibility-workaround.diff b/patches/dev300/buildfix-x86-64-visibility-workaround.diff
index 2747d25..bf88b92 100644
--- a/patches/dev300/buildfix-x86-64-visibility-workaround.diff
+++ b/patches/dev300/buildfix-x86-64-visibility-workaround.diff
@@ -40,12 +40,14 @@
  ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
  ToFile( "CXX",               $CXX,               "e" );
  ToFile( "MINGWCXX",          "@MINGWCXX@",       "e" );
---- solenv/inc/unxlngx6.mk.old	2009-04-02 10:53:10.000000000 +0000
-+++ solenv/inc/unxlngx6.mk	2009-04-06 16:41:41.000000000 +0000
-@@ -97,7 +97,7 @@ CFLAGSCXX= -pipe $(ARCH_FLAGS)
- CFLAGSCXX+= -Wno-ctor-dtor-privacy
- CFLAGSCXX+= -fno-use-cxa-atexit
- PICSWITCH:=-fpic
+Index: unxlng.mk
+===================================================================
+--- solenv/inc/unxlng.mk	(Revision 276754)
++++ solenv/inc/unxlng.mk	(Arbeitskopie)
+@@ -92,7 +92,7 @@
+ 
+ # -fpermissive should be removed as soon as possible
+ CFLAGSCXX= -pipe $(ARCH_FLAGS)
 -.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
 +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" && "$(HAVE_GCC_VISIBILITY_BROKEN)" != "TRUE"
  CFLAGSCXX += -fvisibility-inlines-hidden
diff --git a/patches/dev300/debian-opt-m60.diff b/patches/dev300/debian-opt-m60.diff
new file mode 100644
index 0000000..a723e1e
--- /dev/null
+++ b/patches/dev300/debian-opt-m60.diff
@@ -0,0 +1,22 @@
+--- solenv/inc/unxlngi6.mk~	2006-09-21 14:19:05.398388000 +0200
++++ solenv/inc/unxlngi6.mk	2006-09-21 14:48:34.028388000 +0200
+@@ -118,7 +118,7 @@
+ CFLAGSDBGUTIL=
+ # Compiler flags for enabling optimizations
+ .IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
++CFLAGSOPT=-O2 -fno-strict-aliasing		# optimizing for products
+ .ELSE 	# "$(PRODUCT)"!=""
+ CFLAGSOPT=   							# no optimizing for non products
+ .ENDIF	# "$(PRODUCT)"!=""
+--- solenv/inc/unxlngs.mk~	2006-09-21 14:19:04.108388000 +0200
++++ solenv/inc/unxlngs.mk	2006-09-21 14:49:04.728388000 +0200
+@@ -110,7 +110,7 @@
+ CFLAGSDBGUTIL=
+ # Compiler flags for enabling optimizations
+ .IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
++CFLAGSOPT=-O2 -fno-strict-aliasing		# optimizing for products
+ .ELSE 	# "$(PRODUCT)"!=""
+ CFLAGSOPT=   							# no optimizing for non products
+ .ENDIF	# "$(PRODUCT)"!=""
diff --git a/patches/dev300/debian-opt.diff b/patches/dev300/debian-opt.diff
index a723e1e..1219e2a 100644
--- a/patches/dev300/debian-opt.diff
+++ b/patches/dev300/debian-opt.diff
@@ -1,22 +1,26 @@
---- solenv/inc/unxlngi6.mk~	2006-09-21 14:19:05.398388000 +0200
-+++ solenv/inc/unxlngi6.mk	2006-09-21 14:48:34.028388000 +0200
-@@ -118,7 +118,7 @@
- CFLAGSDBGUTIL=
- # Compiler flags for enabling optimizations
- .IF "$(PRODUCT)"!=""
--CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
-+CFLAGSOPT=-O2 -fno-strict-aliasing		# optimizing for products
- .ELSE 	# "$(PRODUCT)"!=""
- CFLAGSOPT=   							# no optimizing for non products
- .ENDIF	# "$(PRODUCT)"!=""
---- solenv/inc/unxlngs.mk~	2006-09-21 14:19:04.108388000 +0200
-+++ solenv/inc/unxlngs.mk	2006-09-21 14:49:04.728388000 +0200
-@@ -110,7 +110,7 @@
- CFLAGSDBGUTIL=
- # Compiler flags for enabling optimizations
- .IF "$(PRODUCT)"!=""
--CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
-+CFLAGSOPT=-O2 -fno-strict-aliasing		# optimizing for products
- .ELSE 	# "$(PRODUCT)"!=""
- CFLAGSOPT=   							# no optimizing for non products
- .ENDIF	# "$(PRODUCT)"!=""
+Index: unxlngs.mk
+===================================================================
+--- solenv/inc/unxlngs.mk	(Revision 276754)
++++ solenv/inc/unxlngs.mk	(Arbeitskopie)
+@@ -33,7 +33,7 @@
+ 
+ ASM=$(CC)
+ AFLAGS=-Wa,-K,PIC -c $(CDEFS)
+-CDEFAULTOPT=-Os
++CDEFAULTOPT=-O2
+ PICSWITCH:=-fPIC
+ .INCLUDE : unxlng.mk
+ CDEFS+=-DSPARC
+Index: unxlngi.mk
+===================================================================
+--- solenv/inc/unxlngi.mk	(Revision 276754)
++++ solenv/inc/unxlngi.mk	(Arbeitskopie)
+@@ -30,7 +30,7 @@
+ #*************************************************************************
+ 
+ # mk file for Unix Linux Intel (X86) using GCC, please make generic modifications to unxlng.mk
+-CDEFAULTOPT=-Os
++CDEFAULTOPT=-O2
+ ARCH_FLAGS*=-mtune=pentiumpro
+ .INCLUDE : unxlng.mk
+ CDEFS+=-DX86
diff --git a/patches/dev300/jemalloc-m60.diff b/patches/dev300/jemalloc-m60.diff
new file mode 100644
index 0000000..d00a5c4
--- /dev/null
+++ b/patches/dev300/jemalloc-m60.diff
@@ -0,0 +1,87 @@
+--- configure.in.orig	2008-03-18 19:27:49.000000000 +0100
++++ configure.in	2008-03-18 19:29:49.000000000 +0100
+@@ -745,7 +745,7 @@
+ ],,)
+ AC_ARG_WITH(alloc,
+ [  --with-alloc            Define which allocator to build with
+-			                 (choices are oo, system, tcmalloc)
++			  (choices are oo, system, tcmalloc, jemalloc)
+ ],,)
+ 
+ BUILD_TYPE="OOo EXT"
+@@ -2499,6 +2499,14 @@
+         [AC_MSG_ERROR(tcmalloc not found or functional. Install the Google Profiling Tools)], [])
+     ALLOC="TCMALLOC";
+ fi
++if test "$with_alloc" = "jemalloc"; then
++    save_CFLAGS=$CFLAGS
++    CFLAGS="$CFLAGS -pthread"
++    AC_CHECK_LIB(jemalloc, malloc, [],
++        [AC_MSG_ERROR(jemalloc not found or functional. Install the FreeBSD 7 allocator)], [])
++    ALLOC="JEMALLOC";
++    CFLAGS=$save_CFLAGS
++fi
+ if test "$with_alloc" = "internal" -o -z "$with_alloc"; then
+    AC_MSG_RESULT([internal])
+ fi
+--- solenv/inc/unxlngi4.mk.orig	2008-03-18 19:38:13.000000000 +0100
++++ solenv/inc/unxlngi4.mk	2008-03-18 19:39:14.000000000 +0100
+@@ -180,6 +180,13 @@
+ STDSHLCUIMT+=-ltcmalloc
+ .ENDIF
+ 
++.IF "$(ALLOC)" == "JEMALLOC"
++STDLIBGUIMT+=-ljemalloc
++STDLIBCUIMT+=-ljemalloc
++STDSHLGUIMT+=-ljemalloc
++STDSHLCUIMT+=-ljemalloc
++.ENDIF
++
+ # libraries for linking applications
+ STDLIBGUIMT+=-lX11 -ldl -lpthread -lm
+ STDLIBCUIMT+=-ldl -lpthread -lm
+--- solenv/inc/unxlngi6.mk.orig	2008-03-18 19:38:20.000000000 +0100
++++ solenv/inc/unxlngi6.mk	2008-03-18 19:39:49.000000000 +0100
+@@ -201,6 +201,14 @@
+ STDSHLGUIMT+=-ltcmalloc
+ STDSHLCUIMT+=-ltcmalloc
+ .ENDIF
++
++.IF "$(ALLOC)" == "JEMALLOC"
++STDLIBGUIMT+=-ljemalloc
++STDLIBCUIMT+=-ljemalloc
++STDSHLGUIMT+=-ljemalloc
++STDSHLCUIMT+=-ljemalloc
++.ENDIF
++
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+ LINKFLAGS += -Wl,--hash-style=gnu
+ .ELSE
+--- solenv/inc/unxlngx6.mk.orig	2008-03-19 18:35:36.000000000 +0100
++++ solenv/inc/unxlngx6.mk	2008-03-19 18:36:47.000000000 +0100
+@@ -83,6 +83,14 @@
+ CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta
+ 
+ .ENDIF
++
++.IF "$(ALLOC)" == "JEMALLOC"
++STDLIBGUIMT+=-ljemalloc
++STDLIBCUIMT+=-ljemalloc
++STDSHLGUIMT+=-ljemalloc
++STDSHLCUIMT+=-ljemalloc
++.ENDIF
++
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+ LINKFLAGS += -Wl,--hash-style=gnu
+ .ELSE
+--- sal/rtl/source/makefile.mk.orig	2008-03-18 19:41:00.000000000 +0100
++++ sal/rtl/source/makefile.mk	2008-03-18 19:42:42.000000000 +0100
+@@ -54,7 +54,7 @@
+ 
+ .INCLUDE :  settings.mk
+ 
+-.IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC"
++.IF "$(ALLOC)" == "SYS_ALLOC" || "$(ALLOC)" == "TCMALLOC" || "$(ALLOC)" == "JEMALLOC"
+ CDEFS+= -DFORCE_SYSALLOC
+ .ENDIF
+ 
diff --git a/patches/dev300/jemalloc.diff b/patches/dev300/jemalloc.diff
index d00a5c4..df65e33 100644
--- a/patches/dev300/jemalloc.diff
+++ b/patches/dev300/jemalloc.diff
@@ -24,24 +24,10 @@
  if test "$with_alloc" = "internal" -o -z "$with_alloc"; then
     AC_MSG_RESULT([internal])
  fi
---- solenv/inc/unxlngi4.mk.orig	2008-03-18 19:38:13.000000000 +0100
-+++ solenv/inc/unxlngi4.mk	2008-03-18 19:39:14.000000000 +0100
-@@ -180,6 +180,13 @@
- STDSHLCUIMT+=-ltcmalloc
- .ENDIF
- 
-+.IF "$(ALLOC)" == "JEMALLOC"
-+STDLIBGUIMT+=-ljemalloc
-+STDLIBCUIMT+=-ljemalloc
-+STDSHLGUIMT+=-ljemalloc
-+STDSHLCUIMT+=-ljemalloc
-+.ENDIF
-+
- # libraries for linking applications
- STDLIBGUIMT+=-lX11 -ldl -lpthread -lm
- STDLIBCUIMT+=-ldl -lpthread -lm
---- solenv/inc/unxlngi6.mk.orig	2008-03-18 19:38:20.000000000 +0100
-+++ solenv/inc/unxlngi6.mk	2008-03-18 19:39:49.000000000 +0100
+Index: unxlng.mk
+===================================================================
+--- solenv/inc/unxlng.mk	(Revision 276754)
++++ solenv/inc/unxlng.mk	(Arbeitskopie)
 @@ -201,6 +201,14 @@
  STDSHLGUIMT+=-ltcmalloc
  STDSHLCUIMT+=-ltcmalloc
@@ -55,24 +41,7 @@
 +.ENDIF
 +
  .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
- LINKFLAGS += -Wl,--hash-style=gnu
- .ELSE
---- solenv/inc/unxlngx6.mk.orig	2008-03-19 18:35:36.000000000 +0100
-+++ solenv/inc/unxlngx6.mk	2008-03-19 18:36:47.000000000 +0100
-@@ -83,6 +83,14 @@
- CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta
- 
- .ENDIF
-+
-+.IF "$(ALLOC)" == "JEMALLOC"
-+STDLIBGUIMT+=-ljemalloc
-+STDLIBCUIMT+=-ljemalloc
-+STDSHLGUIMT+=-ljemalloc
-+STDSHLCUIMT+=-ljemalloc
-+.ENDIF
-+
- .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
- LINKFLAGS += -Wl,--hash-style=gnu
+ LINKFLAGS += -Wl,--hash-style=both
  .ELSE
 --- sal/rtl/source/makefile.mk.orig	2008-03-18 19:41:00.000000000 +0100
 +++ sal/rtl/source/makefile.mk	2008-03-18 19:42:42.000000000 +0100
diff --git a/patches/dev300/link-as-needed-m60.diff b/patches/dev300/link-as-needed-m60.diff
new file mode 100644
index 0000000..160c4d0
--- /dev/null
+++ b/patches/dev300/link-as-needed-m60.diff
@@ -0,0 +1,363 @@
+--- configure.in.old	2009-06-24 21:13:57.000000000 +0200
++++ configure.in	2009-06-25 15:05:45.000000000 +0200
+@@ -1622,6 +1622,26 @@ fi
+ AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
+ 
+ dnl ===================================================================
++dnl  Check for -Wl,--as-needed linker support
++dnl ===================================================================
++HAVE_WORKING_LD_AS_NEEDED=
++if test \( "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes" \) -a "$GCC" = "yes"; then
++   AC_MSG_CHECKING([for working -Wl,--as-needed linker support])
++   _ld_version=`$CC -Wl,--version 2>&1 | head -n 1 | $SED -e "s|(.*)||" -e "s|^[[^0-9]]*||"`
++   _ld_major=`echo $_ld_version | cut -d"." -f 1`
++   _ld_minor=`echo $_ld_version | cut -d"." -f 2`
++   if test "$_ld_major" -gt 2 || \
++      test "$_ld_major" -eq 2 -a "$_ld_minor" -gt 17 ; then
++      # there are problems with ld <= 2.17, see also http://www.gentoo.org/proj/en/qa/asneeded.xml
++      HAVE_WORKING_LD_AS_NEEDED=TRUE
++      AC_MSG_RESULT([yes])
++   else
++      AC_MSG_RESULT([no])
++   fi
++fi
++AC_SUBST(HAVE_WORKING_LD_AS_NEEDED)
++
++dnl ===================================================================
+ dnl  Test the IRIX SGI Mips pro compiler
+ dnl ===================================================================
+ if test "$_os" = "IRIX" -o "$_os" = "IRIX64"; then
+--- set_soenv.in.old	2009-06-24 18:41:31.000000000 +0200
++++ set_soenv.in	2009-06-24 21:21:56.000000000 +0200
+@@ -1894,6 +1894,8 @@ ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_H
+ ToFile( "WITH_LINKER_HASH_STYLE","@WITH_LINKER_HASH_STYLE@","e" );
+ ToFile( "HAVE_LD_BSYMBOLIC_FUNCTIONS",
+ 		"@HAVE_LD_BSYMBOLIC_FUNCTIONS@","e" );
++ToFile( "HAVE_WORKING_LD_AS_NEEDED",
++		"@HAVE_WORKING_LD_AS_NEEDED@","e" );
+ ToFile( "CXX",               $CXX,               "e" );
+ ToFile( "MINGWCXX",          "@MINGWCXX@",       "e" );
+ ToFile( "MINGWSTRIP",        "@MINGWSTRIP@",     "e" );
+diff -purN solenv.old/inc/unxbsdi2.mk solenv/inc/unxbsdi2.mk
+--- solenv.old/inc/unxbsdi2.mk	2008-07-11 16:43:37.000000000 +0200
++++ solenv/inc/unxbsdi2.mk	2009-06-24 21:38:44.000000000 +0200
+@@ -128,6 +128,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-z combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic 
+diff -purN solenv.old/inc/unxbsdi.mk solenv/inc/unxbsdi.mk
+--- solenv.old/inc/unxbsdi.mk	2008-04-10 19:45:44.000000000 +0200
++++ solenv/inc/unxbsdi.mk	2009-06-24 21:29:07.000000000 +0200
+@@ -108,6 +108,9 @@ DYNAMIC		= -Wl,-Bdynamic
+ LINK*=gcc
+ # default linker flags
+ LINKFLAGS=
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic 
+diff -purN solenv.old/inc/unxfbsd.mk solenv/inc/unxfbsd.mk
+--- solenv.old/inc/unxfbsd.mk	2008-07-11 16:43:50.000000000 +0200
++++ solenv/inc/unxfbsd.mk	2009-06-24 21:26:25.000000000 +0200
+@@ -150,6 +150,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxirgm.mk solenv/inc/unxirgm.mk
+--- solenv.old/inc/unxirgm.mk	2008-04-10 19:47:57.000000000 +0200
++++ solenv/inc/unxirgm.mk	2009-06-24 21:33:53.000000000 +0200
+@@ -96,6 +96,9 @@ DYNAMIC=		-Wl,-Bdynamic
+ #
+ LINK= g++
+ LINKFLAGS=	-L/usr/lib32 -Wl,-no_unresolved
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ LINKVERSIONMAPFLAG= -Wl,-exports_file
+ 
+ LINKFLAGSAPPGUI= $(THREADLIB)
+diff -purN solenv.old/inc/unxirxm3.mk solenv/inc/unxirxm3.mk
+--- solenv.old/inc/unxirxm3.mk	2008-04-10 19:48:32.000000000 +0200
++++ solenv/inc/unxirxm3.mk	2009-06-24 21:33:59.000000000 +0200
+@@ -96,6 +96,9 @@ DYNAMIC=                -Wl,-Bdynamic
+ #
+ LINK= CC
+ LINKFLAGS=      -L/usr/lib32 -Wl,-no_unresolved
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ LINKVERSIONMAPFLAG= -Wl,-exports_file
+ 
+ LINKFLAGSAPPGUI= $(THREADLIB)
+diff -purN solenv.old/inc/unxlnga.mk solenv/inc/unxlnga.mk
+--- solenv.old/inc/unxlnga.mk	2008-07-11 16:44:03.000000000 +0200
++++ solenv/inc/unxlnga.mk	2009-06-24 21:39:06.000000000 +0200
+@@ -164,6 +164,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngi4.mk solenv/inc/unxlngi4.mk
+--- solenv.old/inc/unxlngi4.mk	2008-07-11 16:44:16.000000000 +0200
++++ solenv/inc/unxlngi4.mk	2009-06-24 21:25:52.000000000 +0200
+@@ -141,6 +141,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngi6.mk solenv/inc/unxlngi6.mk
+--- solenv.old/inc/unxlngi6.mk	2009-06-24 18:41:22.000000000 +0200
++++ solenv/inc/unxlngi6.mk	2009-06-24 21:25:06.000000000 +0200
+@@ -161,6 +161,9 @@ LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,comb
+ .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
+ LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+ .ENDIF
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngm68k.mk solenv/inc/unxlngm68k.mk
+--- solenv.old/inc/unxlngm68k.mk	2008-06-30 17:03:13.000000000 +0200
++++ solenv/inc/unxlngm68k.mk	2009-06-24 21:38:53.000000000 +0200
+@@ -144,6 +144,9 @@ LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORI
+ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngmips.mk solenv/inc/unxlngmips.mk
+--- solenv.old/inc/unxlngmips.mk	2008-06-09 14:38:46.000000000 +0200
++++ solenv/inc/unxlngmips.mk	2009-06-24 21:34:56.000000000 +0200
+@@ -175,6 +175,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngp.mk solenv/inc/unxlngp.mk
+--- solenv.old/inc/unxlngp.mk	2008-04-10 19:50:07.000000000 +0200
++++ solenv/inc/unxlngp.mk	2009-06-24 21:36:43.000000000 +0200
+@@ -97,6 +97,10 @@ LINKFLAGSPROF=
+ LINKFLAGSDEBUG=-g
+ LINKFLAGSOPT=
+ 
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
++
+ .IF "$(NO_BSYMBOLIC)"==""
+ .IF "$(PRJNAME)" != "envtest"
+ LINKFLAGSSHLGUI+=-Bsymbolic
+diff -purN solenv.old/inc/unxlngppc4.mk solenv/inc/unxlngppc4.mk
+--- solenv.old/inc/unxlngppc4.mk	2009-06-24 18:41:22.000000000 +0200
++++ solenv/inc/unxlngppc4.mk	2009-06-24 21:38:59.000000000 +0200
+@@ -138,6 +138,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS= $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngppc.mk solenv/inc/unxlngppc.mk
+--- solenv.old/inc/unxlngppc.mk	2009-06-24 18:41:22.000000000 +0200
++++ solenv/inc/unxlngppc.mk	2009-06-24 21:35:25.000000000 +0200
+@@ -135,6 +135,9 @@ LINK*=$(CXX)
+ LINKC*=$(CC)
+ # default linker flags
+ LINKFLAGS=-Wl,-rpath,\''$$ORIGIN'\'
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ 
+ # linker flags for linking applications
+diff -purN solenv.old/inc/unxlngr.mk solenv/inc/unxlngr.mk
+--- solenv.old/inc/unxlngr.mk	2008-11-10 17:06:12.000000000 +0100
++++ solenv/inc/unxlngr.mk	2009-06-24 21:35:02.000000000 +0200
+@@ -145,6 +145,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngs3904.mk solenv/inc/unxlngs3904.mk
+--- solenv.old/inc/unxlngs3904.mk	2008-06-09 14:39:39.000000000 +0200
++++ solenv/inc/unxlngs3904.mk	2009-06-24 21:28:06.000000000 +0200
+@@ -143,6 +143,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngs.mk solenv/inc/unxlngs.mk
+--- solenv.old/inc/unxlngs.mk	2009-06-24 18:41:22.000000000 +0200
++++ solenv/inc/unxlngs.mk	2009-06-24 21:28:45.000000000 +0200
+@@ -144,6 +144,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-z combreloc $(LINKFLAGSDEFS)
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxlngx6.mk solenv/inc/unxlngx6.mk
+--- solenv.old/inc/unxlngx6.mk	2009-06-24 18:41:22.000000000 +0200
++++ solenv/inc/unxlngx6.mk	2009-06-24 21:26:08.000000000 +0200
+@@ -165,6 +165,9 @@ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDE
+ .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
+ LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
+ .ENDIF
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # linker flags for linking applications
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+diff -purN solenv.old/inc/unxmacx.mk solenv/inc/unxmacx.mk
+--- solenv.old/inc/unxmacx.mk	2009-06-24 18:41:22.000000000 +0200
++++ solenv/inc/unxmacx.mk	2009-06-24 21:38:13.000000000 +0200
+@@ -206,6 +206,10 @@ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=$(LINKFLAGSDEFS)
+ 
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
++
+ # [ed] 5/14/02 If we're building for aqua, add in the objc runtime library into our link line
+ .IF "$(GUIBASE)" == "aqua"
+ 	LINKFLAGS+=-lobjc
+diff -purN solenv.old/inc/unxsogi.mk solenv/inc/unxsogi.mk
+--- solenv.old/inc/unxsogi.mk	2008-04-10 19:53:35.000000000 +0200
++++ solenv/inc/unxsogi.mk	2009-06-24 21:34:31.000000000 +0200
+@@ -82,6 +82,10 @@ LINK*=$(CXX)
+ LINKC*=$(CC)
+ 
+ LINKFLAGS=
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
++
+ LINKFLAGSAPPGUI=-Wl,-export-dynamic
+ LINKFLAGSSHLGUI=-shared
+ LINKFLAGSAPPCUI=-Wl,-export-dynamic
+diff -purN solenv.old/inc/unxsoli4.mk solenv/inc/unxsoli4.mk
+--- solenv.old/inc/unxsoli4.mk	2008-12-30 15:48:34.000000000 +0100
++++ solenv/inc/unxsoli4.mk	2009-06-24 21:27:02.000000000 +0200
+@@ -144,6 +144,9 @@ LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ LINKCFLAGS=-w -mt -z combreloc -norunpath
+ 
+ # -z text force fatal error if non PIC code is linked into shared library. Such code
+diff -purN solenv.old/inc/unxsols4.mk solenv/inc/unxsols4.mk
+--- solenv.old/inc/unxsols4.mk	2008-12-30 15:48:34.000000000 +0100
++++ solenv/inc/unxsols4.mk	2009-06-24 21:34:43.000000000 +0200
+@@ -150,6 +150,9 @@ LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGSRUNPATH_NONE=
+ LINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ LINKCFLAGS=-w -mt -z combreloc -norunpath
+ 
+ # -z text force fatal error if non PIC code is linked into shared library. Such code
+diff -purN solenv.old/inc/unxsolu4.mk solenv/inc/unxsolu4.mk
+--- solenv.old/inc/unxsolu4.mk	2008-08-27 15:38:26.000000000 +0200
++++ solenv/inc/unxsolu4.mk	2009-06-24 21:25:30.000000000 +0200
+@@ -143,6 +143,9 @@ LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$O
+ LINKFLAGSRUNPATH_OXT=
+ LINKFLAGS=-m64 -w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=stlport4
+ LINKCFLAGS=-m64 -w -mt -z combreloc -norunpath
++.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
++LINKFLAGS += -Wl,--as-needed
++.ENDIF
+ 
+ # -z text force fatal error if non PIC code is linked into shared library. Such code
+ #    would be expensive on startup
+--- unodevtools/source/skeletonmaker/makefile.mk	11 Apr 2008 12:33:12 -0000	1.5
++++ unodevtools/source/skeletonmaker/makefile.mk	22 May 2008 15:46:32 -0000
+@@ -51,8 +51,9 @@
+ 
+ APP1DEPN= $(OUT)$/lib$/$(UNODEVTOOLSLIBDEPN) $(SOLARLIBDIR)$/$(CODEMAKERLIBDEPN) \
+ 	$(SOLARLIBDIR)$/$(COMMONCPPLIBDEPN) $(SOLARLIBDIR)$/$(COMMONJAVALIBDEPN)
+-APP1STDLIBS = $(REGLIB) $(SALLIB) $(SALHELPERLIB) $(CPPULIB) $(CPPUHELPERLIB) \
+-	$(UNODEVTOOLSLIBST) $(CODEMAKERLIBST) $(COMMONCPPLIBST) $(COMMONJAVALIBST)
++APP1STDLIBS =\
++	$(UNODEVTOOLSLIBST) $(CODEMAKERLIBST) $(COMMONCPPLIBST) $(COMMONJAVALIBST)\
++	$(REGLIB) $(CPPULIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(SALLIB)
+ 
+ OBJFILES = $(APP1OBJS)
+ 
+diff --git svx/util/makefile.mk svx/util/makefile.mk
+index 4598098..d5de0b6 100644
+--- svx/util/makefile.mk
++++ svx/util/makefile.mk
+@@ -172,7 +172,6 @@ SHL2STDLIBS= \
+             $(I18NISOLANGLIB) \
+ 			$(COMPHELPERLIB) \
+ 			$(UCBHELPERLIB)	\
+-			$(CPPUHELPERLIB)	\
+ 			$(CPPULIB) \
+             $(VOSLIB) \
+             $(SALLIB) \
+@@ -181,6 +181,7 @@
+ .IF "$(GUI)"=="WNT"
+ SHL2STDLIBS+= \
+              $(SHLWAPILIB) \
++             $(CPPUHELPERLIB) \
+              $(ADVAPI32LIB)
+ .ENDIF # WNT
+ 
diff --git a/patches/dev300/link-as-needed.diff b/patches/dev300/link-as-needed.diff
index 160c4d0..626dbb3 100644
--- a/patches/dev300/link-as-needed.diff
+++ b/patches/dev300/link-as-needed.diff
@@ -103,36 +103,11 @@ diff -purN solenv.old/inc/unxirxm3.mk solenv/inc/unxirxm3.mk
  LINKVERSIONMAPFLAG= -Wl,-exports_file
  
  LINKFLAGSAPPGUI= $(THREADLIB)
-diff -purN solenv.old/inc/unxlnga.mk solenv/inc/unxlnga.mk
---- solenv.old/inc/unxlnga.mk	2008-07-11 16:44:03.000000000 +0200
-+++ solenv/inc/unxlnga.mk	2009-06-24 21:39:06.000000000 +0200
-@@ -164,6 +164,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGSRUNPATH_NONE=
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngi4.mk solenv/inc/unxlngi4.mk
---- solenv.old/inc/unxlngi4.mk	2008-07-11 16:44:16.000000000 +0200
-+++ solenv/inc/unxlngi4.mk	2009-06-24 21:25:52.000000000 +0200
-@@ -141,6 +141,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGSRUNPATH_NONE=
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngi6.mk solenv/inc/unxlngi6.mk
---- solenv.old/inc/unxlngi6.mk	2009-06-24 18:41:22.000000000 +0200
-+++ solenv/inc/unxlngi6.mk	2009-06-24 21:25:06.000000000 +0200
-@@ -161,6 +161,9 @@ LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,comb
+Index: unxlng.mk
+===================================================================
+--- solenv/inc/unxlng.mk	(Revision 276754)
++++ solenv/inc/unxlng.mk	(Arbeitskopie)
+@@ -161,6 +161,9 @@
  .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
  LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
  .ENDIF
@@ -141,125 +116,7 @@ diff -purN solenv.old/inc/unxlngi6.mk solenv/inc/unxlngi6.mk
 +.ENDIF
  
  # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngm68k.mk solenv/inc/unxlngm68k.mk
---- solenv.old/inc/unxlngm68k.mk	2008-06-30 17:03:13.000000000 +0200
-+++ solenv/inc/unxlngm68k.mk	2009-06-24 21:38:53.000000000 +0200
-@@ -144,6 +144,9 @@ LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORI
- LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngmips.mk solenv/inc/unxlngmips.mk
---- solenv.old/inc/unxlngmips.mk	2008-06-09 14:38:46.000000000 +0200
-+++ solenv/inc/unxlngmips.mk	2009-06-24 21:34:56.000000000 +0200
-@@ -175,6 +175,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGSRUNPATH_NONE=
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngp.mk solenv/inc/unxlngp.mk
---- solenv.old/inc/unxlngp.mk	2008-04-10 19:50:07.000000000 +0200
-+++ solenv/inc/unxlngp.mk	2009-06-24 21:36:43.000000000 +0200
-@@ -97,6 +97,10 @@ LINKFLAGSPROF=
- LINKFLAGSDEBUG=-g
- LINKFLAGSOPT=
- 
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
-+
- .IF "$(NO_BSYMBOLIC)"==""
- .IF "$(PRJNAME)" != "envtest"
- LINKFLAGSSHLGUI+=-Bsymbolic
-diff -purN solenv.old/inc/unxlngppc4.mk solenv/inc/unxlngppc4.mk
---- solenv.old/inc/unxlngppc4.mk	2009-06-24 18:41:22.000000000 +0200
-+++ solenv/inc/unxlngppc4.mk	2009-06-24 21:38:59.000000000 +0200
-@@ -138,6 +138,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGSRUNPATH_NONE=
- LINKFLAGS= $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngppc.mk solenv/inc/unxlngppc.mk
---- solenv.old/inc/unxlngppc.mk	2009-06-24 18:41:22.000000000 +0200
-+++ solenv/inc/unxlngppc.mk	2009-06-24 21:35:25.000000000 +0200
-@@ -135,6 +135,9 @@ LINK*=$(CXX)
- LINKC*=$(CC)
- # default linker flags
- LINKFLAGS=-Wl,-rpath,\''$$ORIGIN'\'
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- 
- # linker flags for linking applications
-diff -purN solenv.old/inc/unxlngr.mk solenv/inc/unxlngr.mk
---- solenv.old/inc/unxlngr.mk	2008-11-10 17:06:12.000000000 +0100
-+++ solenv/inc/unxlngr.mk	2009-06-24 21:35:02.000000000 +0200
-@@ -145,6 +145,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGSRUNPATH_NONE=
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngs3904.mk solenv/inc/unxlngs3904.mk
---- solenv.old/inc/unxlngs3904.mk	2008-06-09 14:39:39.000000000 +0200
-+++ solenv/inc/unxlngs3904.mk	2009-06-24 21:28:06.000000000 +0200
-@@ -143,6 +143,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGSRUNPATH_NONE=
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngs.mk solenv/inc/unxlngs.mk
---- solenv.old/inc/unxlngs.mk	2009-06-24 18:41:22.000000000 +0200
-+++ solenv/inc/unxlngs.mk	2009-06-24 21:28:45.000000000 +0200
-@@ -144,6 +144,9 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$O
- LINKFLAGSRUNPATH_OXT=
- LINKFLAGSRUNPATH_NONE=
- LINKFLAGS=-z combreloc $(LINKFLAGSDEFS)
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-diff -purN solenv.old/inc/unxlngx6.mk solenv/inc/unxlngx6.mk
---- solenv.old/inc/unxlngx6.mk	2009-06-24 18:41:22.000000000 +0200
-+++ solenv/inc/unxlngx6.mk	2009-06-24 21:26:08.000000000 +0200
-@@ -165,6 +165,9 @@ LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDE
- .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
- LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
- .ENDIF
-+.IF "$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
-+LINKFLAGS += -Wl,--as-needed
-+.ENDIF
- 
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
+ LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec \
 diff -purN solenv.old/inc/unxmacx.mk solenv/inc/unxmacx.mk
 --- solenv.old/inc/unxmacx.mk	2009-06-24 18:41:22.000000000 +0200
 +++ solenv/inc/unxmacx.mk	2009-06-24 21:38:13.000000000 +0200
diff --git a/patches/dev300/piece-target-m60.diff b/patches/dev300/piece-target-m60.diff
new file mode 100644
index 0000000..56c5615
--- /dev/null
+++ b/patches/dev300/piece-target-m60.diff
@@ -0,0 +1,103 @@
+Index: target.mk
+===================================================================
+RCS file: /cvs/tools/solenv/inc/target.mk,v
+retrieving revision 1.209
+diff -u -p -r1.209 target.mk
+--- solenv/inc/target.mk	6 Jun 2008 12:00:28 -0000	1.209
++++ solenv/inc/target.mk	4 Jul 2008 15:25:03 -0000
+@@ -48,16 +48,16 @@
+ ENVINCPRE+=-I$(PRE)$/inc
+ .ENDIF			# "$(PRE)"!=""
+ .IF "$(BOOTSTRAP_SERVICE)"!="TRUE" && "$(NO_OFFUH)"==""
+-UNOINCLUDES=$(SOLARINCDIR)$/offuh
++UNOINCLUDES*=-I$(SOLARINCDIR)$/offuh
+ .ENDIF			# "$(BOOTSTRAP_SERVICE)"!="TRUE" && "$(NO_OFFUH)"==""
+ SOLARINC+=$(JDKINCS)
+ # make sure INCLUDE isn't set
+ INCLUDE:=
+ .EXPORT : INCLUDE
+ .IF "$(PRJINC)"!=""
+-INCLUDE!:=-I. $(ENVINCPRE) $(INCPRE:^"-I":s/-I-I/-I/) -I$(INCLOCAL) $(INCLOCPRJ:^"-I":s/-I-I/-I/) -I$(INCPCH) -I$(INC) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(null,$(UNOINCLUDES) $(NULL) -I$(UNOINCLUDES)) -I$(INCEXT) -I$(PRJ)$/res -I$(INCPOST)
++INCLUDE!:=-I. $(ENVINCPRE) $(INCPRE:^"-I":s/-I-I/-I/) -I$(INCLOCAL) $(INCLOCPRJ:^"-I":s/-I-I/-I/) -I$(INCPCH) -I$(INC) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(null,$(UNOINCLUDES) $(NULL) $(UNOINCLUDES)) -I$(INCEXT) -I$(PRJ)$/res -I$(INCPOST)
+ .ELSE		# "$(PRJINC)"!=""
+-INCLUDE!:=-I. $(ENVINCPRE) $(INCPRE:^"-I":s/-I-I/-I/) -I$(INCLOCAL) -I$(INCPCH) -I$(INC) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(null,$(UNOINCLUDES) $(NULL) -I$(UNOINCLUDES)) -I$(INCEXT) -I$(PRJ)$/res -I$(INCPOST)
++INCLUDE!:=-I. $(ENVINCPRE) $(INCPRE:^"-I":s/-I-I/-I/) -I$(INCLOCAL) -I$(INCPCH) -I$(INC) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(null,$(UNOINCLUDES) $(NULL) $(UNOINCLUDES)) -I$(INCEXT) -I$(PRJ)$/res -I$(INCPOST)
+ .ENDIF		# "$(PRJINC)"!=""
+ INCLUDE_C=$(subst,$/stl$(SPACECHAR),dont_use_stl$(SPACECHAR) $(INCLUDE))
+ .EXPORT : LIB
+@@ -218,6 +218,9 @@
+ LOCALJARS:=$(foreach,i,$(shell @@-cd $(JARDIR) && ls -1 $(JARFILES) ) $(JARDIR)$/$i)
+ NEWCLASS:=$(LOCALJARS)
+ NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SOLARBINDIR)$/$i $(NULL)))
++NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SOLARPIECE)$/$(INPATH)$/bin/$i $(NULL)))
++NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SPLITINSTALLDIR)$/classes/$i $(NULL)))
++NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SPLITUREDIR)$/share$/java/$i $(NULL)))
+ .ENDIF                 # "$(JARFILES)"!=""
+ .IF "$(EXTRAJARFILES)"!=""
+ NEWCLASS+=$(foreach,i,$(EXTRAJARFILES) $(COMMON_BUILD_TOOLS)$/$i)
+
+
+--- solenv/inc/unxlngi6.mk
++++ solenv/inc/unxlngi6.mk
+@@ -182,7 +182,7 @@
+ STDLIBCPP=-lstdc++
+ 
+ # default objectfilenames to link
+-STDOBJVCL=$(L)$/salmain.o
++STDOBJVCL*=$(L)$/salmain.o
+ STDOBJGUI=
+ STDSLOGUI=
+ STDOBJCUI=
+
+--- solenv/inc/unxlngppc4.mk.old	2008-08-29 18:53:19.000000000 +0200
++++ solenv/inc/unxlngppc4.mk	2008-08-30 10:28:17.000000000 +0200
+@@ -168,7 +168,7 @@ SONAME_SWITCH=-Wl,-h
+ STDLIBCPP=-lstdc++
+ 
+ # default objectfilenames to link
+-STDOBJVCL=$(L)$/salmain.o
++STDOBJVCL*=$(L)$/salmain.o
+ STDOBJGUI=
+ STDSLOGUI=
+ STDOBJCUI=
+--- solenv/inc/unxlngs3904.mk.old	2008-08-29 18:53:19.000000000 +0200
++++ solenv/inc/unxlngs3904.mk	2008-08-30 10:28:41.000000000 +0200
+@@ -168,7 +168,7 @@ SONAME_SWITCH=-Wl,-h
+ STDLIBCPP=-lstdc++
+ 
+ # default objectfilenames to link
+-STDOBJVCL=$(L)$/salmain.o
++STDOBJVCL*=$(L)$/salmain.o
+ STDOBJGUI=
+ STDSLOGUI=
+ STDOBJCUI=
+--- solenv/inc/unxlngx6.mk.old	2008-08-29 18:53:19.000000000 +0200
++++ solenv/inc/unxlngx6.mk	2008-08-30 10:22:07.000000000 +0200
+@@ -193,7 +193,7 @@ SONAME_SWITCH=-Wl,-h
+ STDLIBCPP=-lstdc++
+ 
+ # default objectfilenames to link
+-STDOBJVCL=$(L)$/salmain.o
++STDOBJVCL*=$(L)$/salmain.o
+ STDOBJGUI=
+ STDSLOGUI=
+ STDOBJCUI=
+--- solenv/inc/settings.mk
++++ solenv/inc/settings.mk
+@@ -764,6 +764,7 @@
+ .ELSE
+ SOLARIDLDIR=$(SOLARVERSION)$/$(INPATH)$/idl$(EXT_UPDMINOR)
+ .ENDIF
++SOLARIDLINC*=-I$(SOLARIDLDIR)
+ 
+ .IF "$(UPDMINOR)" != ""
+ EXT_UPDMINOR=.$(UPDMINOR)
+@@ -861,7 +861,7 @@
+ .IF "$(PRE)"!=""
+ UNOIDLINC!:=-I$(PRE)$/idl $(UNOIDLINC)
+ .ENDIF
+-UNOIDLINC+=-I. -I.. -I$(PRJ) -I$(PRJ)$/inc -I$(PRJ)$/$(INPATH)$/idl -I$(OUT)$/inc -I$(SOLARIDLDIR) -I$(SOLARINCDIR)
++UNOIDLINC+=-I. -I.. -I$(PRJ) -I$(PRJ)$/inc -I$(PRJ)$/$(INPATH)$/idl -I$(OUT)$/inc $(SOLARIDLINC) -I$(SOLARINCDIR)
+ 
+ CDEFS= -D$(OS) -D$(GUI) -D$(GVER) -D$(COM) -D$(CVER) -D$(CPUNAME)
+ 
diff --git a/patches/dev300/piece-target.diff b/patches/dev300/piece-target.diff
index 56c5615..eeb97fd 100644
--- a/patches/dev300/piece-target.diff
+++ b/patches/dev300/piece-target.diff
@@ -37,43 +37,11 @@ diff -u -p -r1.209 target.mk
  NEWCLASS+=$(foreach,i,$(EXTRAJARFILES) $(COMMON_BUILD_TOOLS)$/$i)
 
 
---- solenv/inc/unxlngi6.mk
-+++ solenv/inc/unxlngi6.mk
-@@ -182,7 +182,7 @@
- STDLIBCPP=-lstdc++
- 
- # default objectfilenames to link
--STDOBJVCL=$(L)$/salmain.o
-+STDOBJVCL*=$(L)$/salmain.o
- STDOBJGUI=
- STDSLOGUI=
- STDOBJCUI=
-
---- solenv/inc/unxlngppc4.mk.old	2008-08-29 18:53:19.000000000 +0200
-+++ solenv/inc/unxlngppc4.mk	2008-08-30 10:28:17.000000000 +0200
-@@ -168,7 +168,7 @@ SONAME_SWITCH=-Wl,-h
- STDLIBCPP=-lstdc++
- 
- # default objectfilenames to link
--STDOBJVCL=$(L)$/salmain.o
-+STDOBJVCL*=$(L)$/salmain.o
- STDOBJGUI=
- STDSLOGUI=
- STDOBJCUI=
---- solenv/inc/unxlngs3904.mk.old	2008-08-29 18:53:19.000000000 +0200
-+++ solenv/inc/unxlngs3904.mk	2008-08-30 10:28:41.000000000 +0200
-@@ -168,7 +168,7 @@ SONAME_SWITCH=-Wl,-h
- STDLIBCPP=-lstdc++
- 
- # default objectfilenames to link
--STDOBJVCL=$(L)$/salmain.o
-+STDOBJVCL*=$(L)$/salmain.o
- STDOBJGUI=
- STDSLOGUI=
- STDOBJCUI=
---- solenv/inc/unxlngx6.mk.old	2008-08-29 18:53:19.000000000 +0200
-+++ solenv/inc/unxlngx6.mk	2008-08-30 10:22:07.000000000 +0200
-@@ -193,7 +193,7 @@ SONAME_SWITCH=-Wl,-h
+Index: unxlng.mk
+===================================================================
+--- solenv/inc/unxlng.mk	(Revision 276754)
++++ solenv/inc/unxlng.mk	(Arbeitskopie)
+@@ -189,7 +189,7 @@
  STDLIBCPP=-lstdc++
  
  # default objectfilenames to link
diff --git a/patches/dev300/solenv-really-use-unsinged-char-on-ppc-m60.diff b/patches/dev300/solenv-really-use-unsinged-char-on-ppc-m60.diff
new file mode 100644
index 0000000..45c09ad
--- /dev/null
+++ b/patches/dev300/solenv-really-use-unsinged-char-on-ppc-m60.diff
@@ -0,0 +1,67 @@
+--- solenv/inc/unxlngppc.mk.old	2007-08-23 20:15:01.000000000 +0200
++++ solenv/inc/unxlngppc.mk	2007-08-27 12:12:19.000000000 +0200
+@@ -83,9 +83,8 @@ LINKFLAGS += -Wl,--hash-style=gnu
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+ 
+-# source code is still not signed versus unsigned char clean 
+-CFLAGS=-fsigned-char -nostdinc -c
+-CFLAGSCC=-fsigned-char $(ARCH_FLAGS)
++CFLAGS=-nostdinc -c
++CFLAGSCC=$(ARCH_FLAGS)
+ 
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions 
+--- solenv/inc/unxmacx.mk.old	2008-01-16 16:18:33.000000000 +0100
++++ solenv/inc/unxmacx.mk	2008-01-16 16:29:03.000000000 +0100
+@@ -90,7 +90,7 @@ CC*=gcc
+ objc*=gcc
+ objcpp*=g++
+ 
+-CFLAGS=-fsigned-char -fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS)
++CFLAGS=-fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS)
+ 
+ .IF "$(DISABLE_DEPRECATION_WARNING)" == "TRUE"
+ CFLAGS+=-Wno-deprecated-declarations
+@@ -99,7 +99,7 @@ CFLAGS+=-Wno-deprecated-declarations
+ #  Compilation flags
+ # ---------------------------------
+ # Normal C compilation flags
+-CFLAGSCC=-pipe -fsigned-char -malign-natural $(ARCH_FLAGS)
++CFLAGSCC=-pipe -malign-natural $(ARCH_FLAGS)
+ 
+ # Normal Objective C compilation flags
+ #OBJCFLAGS=-no-precomp
+@@ -113,7 +113,7 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enfor
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+ # Normal C++ compilation flags
+-CFLAGSCXX=-pipe -malign-natural -fsigned-char -Wno-long-double $(ARCH_FLAGS)
++CFLAGSCXX=-pipe -malign-natural -Wno-long-double $(ARCH_FLAGS)
+ CFLAGSCXX+= -Wno-ctor-dtor-privacy
+ 
+ PICSWITCH:=-fPIC
+--- solenv/inc/unxlngppc4.mk.old	2007-07-24 11:14:04.000000000 +0200
++++ solenv/inc/unxlngppc4.mk	2007-08-27 15:56:25.000000000 +0200
+@@ -70,10 +70,10 @@ CXX*=g++
+ # name of C Compiler
+ CC*=gcc
+ 
+-CFLAGS+=-fsigned-char -fmessage-length=0 -c
++CFLAGS+=-fmessage-length=0 -c
+ 
+ # flags for the C++ Compiler
+-CFLAGSCC= -fsigned-char -pipe $(ARCH_FLAGS)
++CFLAGSCC= -pipe $(ARCH_FLAGS)
+ 
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
+@@ -81,7 +81,7 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enfor
+ # Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+-CFLAGSCXX= -fsigned-char -pipe -frtti $(ARCH_FLAGS)
++CFLAGSCXX= -pipe -frtti $(ARCH_FLAGS)
+ PICSWITCH:=-fPIC
+ 
+ # Compiler flags for compiling static object in multi threaded environment with graphical user interface
diff --git a/patches/dev300/solenv-really-use-unsinged-char-on-ppc.diff b/patches/dev300/solenv-really-use-unsinged-char-on-ppc.diff
index 45c09ad..6256ba2 100644
--- a/patches/dev300/solenv-really-use-unsinged-char-on-ppc.diff
+++ b/patches/dev300/solenv-really-use-unsinged-char-on-ppc.diff
@@ -1,67 +1,12 @@
---- solenv/inc/unxlngppc.mk.old	2007-08-23 20:15:01.000000000 +0200
-+++ solenv/inc/unxlngppc.mk	2007-08-27 12:12:19.000000000 +0200
-@@ -83,9 +83,8 @@ LINKFLAGS += -Wl,--hash-style=gnu
- LINKFLAGS += -Wl,-zdynsort
- .ENDIF
- 
--# source code is still not signed versus unsigned char clean 
--CFLAGS=-fsigned-char -nostdinc -c
--CFLAGSCC=-fsigned-char $(ARCH_FLAGS)
-+CFLAGS=-nostdinc -c
-+CFLAGSCC=$(ARCH_FLAGS)
- 
- # Flags for enabling exception handling
- CFLAGSEXCEPTIONS=-fexceptions 
---- solenv/inc/unxmacx.mk.old	2008-01-16 16:18:33.000000000 +0100
-+++ solenv/inc/unxmacx.mk	2008-01-16 16:29:03.000000000 +0100
-@@ -90,7 +90,7 @@ CC*=gcc
- objc*=gcc
- objcpp*=g++
- 
--CFLAGS=-fsigned-char -fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS)
-+CFLAGS=-fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS)
- 
- .IF "$(DISABLE_DEPRECATION_WARNING)" == "TRUE"
- CFLAGS+=-Wno-deprecated-declarations
-@@ -99,7 +99,7 @@ CFLAGS+=-Wno-deprecated-declarations
- #  Compilation flags
- # ---------------------------------
- # Normal C compilation flags
--CFLAGSCC=-pipe -fsigned-char -malign-natural $(ARCH_FLAGS)
-+CFLAGSCC=-pipe -malign-natural $(ARCH_FLAGS)
- 
- # Normal Objective C compilation flags
- #OBJCFLAGS=-no-precomp
-@@ -113,7 +113,7 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enfor
- CFLAGS_NO_EXCEPTIONS=-fno-exceptions
- 
- # Normal C++ compilation flags
--CFLAGSCXX=-pipe -malign-natural -fsigned-char -Wno-long-double $(ARCH_FLAGS)
-+CFLAGSCXX=-pipe -malign-natural -Wno-long-double $(ARCH_FLAGS)
- CFLAGSCXX+= -Wno-ctor-dtor-privacy
- 
+Index: unxlngppc.mk
+===================================================================
+--- unxlngppc.mk	(Revision 276754)
++++ unxlngppc.mk	(Arbeitskopie)
+@@ -35,7 +35,4 @@
  PICSWITCH:=-fPIC
---- solenv/inc/unxlngppc4.mk.old	2007-07-24 11:14:04.000000000 +0200
-+++ solenv/inc/unxlngppc4.mk	2007-08-27 15:56:25.000000000 +0200
-@@ -70,10 +70,10 @@ CXX*=g++
- # name of C Compiler
- CC*=gcc
- 
--CFLAGS+=-fsigned-char -fmessage-length=0 -c
-+CFLAGS+=-fmessage-length=0 -c
- 
- # flags for the C++ Compiler
--CFLAGSCC= -fsigned-char -pipe $(ARCH_FLAGS)
-+CFLAGSCC= -pipe $(ARCH_FLAGS)
- 
- # Flags for enabling exception handling
- CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
-@@ -81,7 +81,7 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enfor
- # Flags for disabling exception handling
- CFLAGS_NO_EXCEPTIONS=-fno-exceptions
- 
--CFLAGSCXX= -fsigned-char -pipe -frtti $(ARCH_FLAGS)
-+CFLAGSCXX= -pipe -frtti $(ARCH_FLAGS)
- PICSWITCH:=-fPIC
- 
- # Compiler flags for compiling static object in multi threaded environment with graphical user interface
+ .INCLUDE : unxlng.mk
+ CDEFS+=-DPOWERPC -DPPC
+-CFLAGS+=-fsigned-char
+-CFLAGSCC+=-fsigned-char
+-CFLAGSCXX+=-fsigned-char
+ DLLPOSTFIX=lp
diff --git a/patches/dev300/speed-hash-style-m60.diff b/patches/dev300/speed-hash-style-m60.diff
new file mode 100644
index 0000000..75f58f1
--- /dev/null
+++ b/patches/dev300/speed-hash-style-m60.diff
@@ -0,0 +1,97 @@
+--- configure.in.old	2008-10-01 12:42:32.000000000 +0200
++++ configure.in	2008-10-01 12:55:52.000000000 +0200
+@@ -540,6 +540,9 @@
+                           libxul (default), xulrunner, firefox, seamonkey,
+                           mozilla
+ ], WITH_SYSTEM_MOZILLA=$withval, WITH_SYSTEM_MOZILLA=no)
++AC_ARG_WITH(linker-hash-style,
++[  --with-linker-hash-style  
++], WITH_LINKER_HASH_STYLE=$withval, WITH_LINKER_HASH_STYLE=gnu)
+ AC_ARG_WITH(stlport,
+ [  --with-stlport         The location that STLport is installed in. The STL
+                           header files are assumed to be in
+@@ -1563,9 +1566,9 @@
+ fi
+ 
+ if test "$GCC" = "yes"; then
+-   AC_MSG_CHECKING( for --hash-style=both linker support )
++   AC_MSG_CHECKING( for --hash-style=$WITH_LINKER_HASH_STYLE linker support )
+    hash_style_ldflags_save=$LDFLAGS
+-   LDFLAGS="$LDFLAGS -Wl,--hash-style=both"
++   LDFLAGS="$LDFLAGS -Wl,--hash-style=$WITH_LINKER_HASH_STYLE"
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([
+    #include <stdio.h>
+    ],[
+@@ -1579,6 +1582,7 @@
+    LDFLAGS=$hash_style_ldflags_save
+ fi
+ AC_SUBST(HAVE_LD_HASH_STYLE)
++AC_SUBST(WITH_LINKER_HASH_STYLE)
+ 
+ dnl ===================================================================
+ dnl  Test the IRIX SGI Mips pro compiler
+--- set_soenv.in
++++ set_soenv.in
+@@ -1966,6 +1966,7 @@
+ ToFile( "HAVE_GCC_VISIBILITY_BROKEN",
+ 		"@HAVE_GCC_VISIBILITY_BROKEN@", "e" );
+ ToFile( "HAVE_LD_HASH_STYLE","@HAVE_LD_HASH_STYLE@","e" );
++ToFile( "WITH_LINKER_HASH_STYLE","@WITH_LINKER_HASH_STYLE@","e" );
+ ToFile( "HAVE_LD_BSYMBOLIC_FUNCTIONS",
+ 		"@HAVE_LD_BSYMBOLIC_FUNCTIONS@","e" );
+ ToFile( "CXX",               $CXX,               "e" );
+--- solenv/inc/unxlngi6.mk	2008-10-01 12:42:32.000000000 +0200
++++ solenv/inc/unxlngi6.mk	2008-10-01 13:00:26.000000000 +0200
+@@ -199,7 +199,7 @@
+ STDSHLCUIMT+=-ltcmalloc
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+--- solenv/inc/unxlngppc.mk	2008-10-01 12:42:32.000000000 +0200
++++ solenv/inc/unxlngppc.mk	2008-10-01 13:01:09.000000000 +0200
+@@ -74,7 +74,7 @@
+ CFLAGSENABLESYMBOLS=-g 
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+--- solenv/inc/unxlngs.mk	2008-10-01 12:42:32.000000000 +0200
++++ solenv/inc/unxlngs.mk	2008-10-01 13:01:17.000000000 +0200
+@@ -76,7 +76,7 @@
+ CFLAGSENABLESYMBOLS=-g
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+--- solenv/inc/unxlngx6.mk
++++ solenv/inc/unxlngx6.mk
+@@ -80,7 +80,7 @@
+ .ENDIF
+ 
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-LINKFLAGS += -Wl,--hash-style=both
++LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
+ .ELSE
+ LINKFLAGS += -Wl,-zdynsort
+ .ENDIF
+--- stlport/makefile.mk
++++ stlport/makefile.mk
+@@ -164,7 +164,7 @@
+ 	BUILD_FLAGS+= -j$(MAXPROCESS)
+ .ENDIF
+ .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
+-CXX+= -Wl,--hash-style=both
++CXX+= -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
+ .ENDIF
+ 
+ .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
diff --git a/patches/dev300/speed-hash-style.diff b/patches/dev300/speed-hash-style.diff
index 75f58f1..7f4f891 100644
--- a/patches/dev300/speed-hash-style.diff
+++ b/patches/dev300/speed-hash-style.diff
@@ -40,9 +40,11 @@
  ToFile( "HAVE_LD_BSYMBOLIC_FUNCTIONS",
  		"@HAVE_LD_BSYMBOLIC_FUNCTIONS@","e" );
  ToFile( "CXX",               $CXX,               "e" );
---- solenv/inc/unxlngi6.mk	2008-10-01 12:42:32.000000000 +0200
-+++ solenv/inc/unxlngi6.mk	2008-10-01 13:00:26.000000000 +0200
-@@ -199,7 +199,7 @@
+Index: unxlng.mk
+===================================================================
+--- solenv/inc/unxlng.mk	(Revision 276754)
++++ solenv/inc/unxlng.mk	(Arbeitskopie)
+@@ -202,7 +202,7 @@
  STDSHLCUIMT+=-ltcmalloc
  .ENDIF
  .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
@@ -51,39 +53,6 @@
  .ELSE
  LINKFLAGS += -Wl,-zdynsort
  .ENDIF
---- solenv/inc/unxlngppc.mk	2008-10-01 12:42:32.000000000 +0200
-+++ solenv/inc/unxlngppc.mk	2008-10-01 13:01:09.000000000 +0200
-@@ -74,7 +74,7 @@
- CFLAGSENABLESYMBOLS=-g 
- .ENDIF
- .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
--LINKFLAGS += -Wl,--hash-style=both
-+LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
- .ELSE
- LINKFLAGS += -Wl,-zdynsort
- .ENDIF
---- solenv/inc/unxlngs.mk	2008-10-01 12:42:32.000000000 +0200
-+++ solenv/inc/unxlngs.mk	2008-10-01 13:01:17.000000000 +0200
-@@ -76,7 +76,7 @@
- CFLAGSENABLESYMBOLS=-g
- .ENDIF
- .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
--LINKFLAGS += -Wl,--hash-style=both
-+LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
- .ELSE
- LINKFLAGS += -Wl,-zdynsort
- .ENDIF
---- solenv/inc/unxlngx6.mk
-+++ solenv/inc/unxlngx6.mk
-@@ -80,7 +80,7 @@
- .ENDIF
- 
- .IF "$(HAVE_LD_HASH_STYLE)"  == "TRUE"
--LINKFLAGS += -Wl,--hash-style=both
-+LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE)
- .ELSE
- LINKFLAGS += -Wl,-zdynsort
- .ENDIF
 --- stlport/makefile.mk
 +++ stlport/makefile.mk
 @@ -164,7 +164,7 @@
diff --git a/patches/dev300/testing-more-optimizations-ark-m60.diff b/patches/dev300/testing-more-optimizations-ark-m60.diff
new file mode 100644
index 0000000..322a424
--- /dev/null
+++ b/patches/dev300/testing-more-optimizations-ark-m60.diff
@@ -0,0 +1,1289 @@
+--- ./icu/makefile.mk.arkopts~	2008-04-11 09:26:27.000000000 +0200
++++ ./icu/makefile.mk	2008-07-17 11:52:18.870043577 +0200
+@@ -82,8 +82,8 @@ CC:=gcc $(EXTRA_CFLAGS)
+ icu_LDFLAGS+=-Wl,-z,noexecstack
+ .ENDIF
+ 
+-icu_CFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
+-icu_CXXFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
++icu_CFLAGS+=$(CFLAGSOPT) $(ARCH_FLAGS) $(EXTRA_CDEFS)
++icu_CXXFLAGS+=$(CFLAGSOPT) $(ARCH_FLAGS) $(EXTRA_CDEFS)
+ 
+ # until someone introduces SOLARIS 64-bit builds
+ .IF "$(OS)"=="SOLARIS"
+--- ./registry/inc/registry/registry.h.arkopts~	2008-07-17 11:49:18.777288611 +0200
++++ ./registry/inc/registry/registry.h	2008-07-17 11:54:21.532038669 +0200
+@@ -50,7 +50,7 @@ extern "C" {
+                      reg_closeKey. If the function fails, phNewKey is NULL.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_createKey(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createKey(RegKeyHandle hKey, 
+ 										 rtl_uString* keyName, 
+ 										 RegKeyHandle* phNewKey);
+ 
+@@ -65,7 +65,7 @@ RegError REGISTRY_CALLTYPE reg_createKey
+                      reg_closeKey. If the function fails, phNewKey is NULL.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_openKey(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openKey(RegKeyHandle hKey, 
+ 					  				   rtl_uString* keyName, 
+ 					  				   RegKeyHandle* phOpenKey);
+ 					  
+@@ -83,7 +83,7 @@ RegError REGISTRY_CALLTYPE reg_openKey(R
+ 	@param	pnSubKeys specifies the length of the array (the number of open subkeys).
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_openSubKeys(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openSubKeys(RegKeyHandle hKey, 
+ 						  				   rtl_uString* keyName, 
+ 						  				   RegKeyHandle** pphSubKeys, 
+ 						  				   sal_uInt32* pnSubKeys);
+@@ -96,7 +96,7 @@ RegError REGISTRY_CALLTYPE reg_openSubKe
+ 	@param	nSubKeys specifies the length of the array (the number of subkeys to closed).
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_closeSubKeys(RegKeyHandle* phSubKeys, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeSubKeys(RegKeyHandle* phSubKeys, 
+ 						   					sal_uInt32 nSubKeys);
+ 
+ 
+@@ -108,7 +108,7 @@ RegError REGISTRY_CALLTYPE reg_closeSubK
+                     be deleted.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_deleteKey(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_deleteKey(RegKeyHandle hKey, 
+ 										 rtl_uString* keyName);
+ 
+ 
+@@ -118,7 +118,7 @@ RegError REGISTRY_CALLTYPE reg_deleteKey
+                  The memory of the variable specifying the key will be freed.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_closeKey(RegKeyHandle hKey);
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeKey(RegKeyHandle hKey);
+ 
+ 
+ /**	This function returns the name of a key.
+@@ -126,7 +126,7 @@ RegError REGISTRY_CALLTYPE reg_closeKey(
+ 	@param	hKey identifies a currently open key which name will be returned.
+ 	@param	pKeyName contains the keyname if succeeds else an empty string. 
+ */
+-RegError REGISTRY_CALLTYPE reg_getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName);
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName);
+ 
+ 
+ /**	This function sets a value of a key.
+@@ -141,7 +141,7 @@ const RegError REGISTRY_CALLTYPE reg_get
+ 	@param	valueSize specifies the size of pData in bytes
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_setValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setValue(RegKeyHandle hKey, 
+ 					   					rtl_uString* keyName, 
+ 					   					RegValueType valueType, 
+ 					   					RegValue pData, 
+@@ -157,7 +157,7 @@ RegError REGISTRY_CALLTYPE reg_setValue(
+ 	@param	len specifies the len of pValueList.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_setLongListValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setLongListValue(RegKeyHandle hKey, 
+ 					   		 	  				rtl_uString* keyName, 
+ 			   			 		  				sal_Int32* pValueList, 
+ 			   			 		  				sal_uInt32 len);
+@@ -172,7 +172,7 @@ RegError REGISTRY_CALLTYPE reg_setLongLi
+ 	@param	len specifies the len of pValueList.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_setStringListValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setStringListValue(RegKeyHandle hKey, 
+ 					   		 	  			  	  rtl_uString* keyName, 
+ 			   			 		  			  	  sal_Char** pValueList, 
+ 			   			 		  			  	  sal_uInt32 len);
+@@ -187,7 +187,7 @@ RegError REGISTRY_CALLTYPE reg_setString
+ 	@param	len	specifies the len of pValueList.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_setUnicodeListValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setUnicodeListValue(RegKeyHandle hKey, 
+ 					   		 	  			   	   rtl_uString* keyName, 
+ 			   			 		  			   	   sal_Unicode** pValueList, 
+ 			   			 		  			   	   sal_uInt32 len);
+@@ -204,7 +204,7 @@ RegError REGISTRY_CALLTYPE reg_setUnicod
+ 	@param	pValueSize returns the size of the value in bytes
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_getValueInfo(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getValueInfo(RegKeyHandle hKey, 
+ 						   					rtl_uString* keyName, 
+ 						   					RegValueType* pValueType, 
+ 						   					sal_uInt32* pValueSize);
+@@ -220,7 +220,7 @@ RegError REGISTRY_CALLTYPE reg_getValueI
+ 	@param	pData points to an allocated memory block receiving the data of the value. 
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_getValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getValue(RegKeyHandle hKey, 
+ 					   					rtl_uString* keyName, 
+ 					   					RegValue pData);
+ 
+@@ -234,7 +234,7 @@ RegError REGISTRY_CALLTYPE reg_getValue(
+ 	@param	pLen returns the length of the value list.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_getLongListValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getLongListValue(RegKeyHandle hKey, 
+ 					   		 	  				rtl_uString* keyName, 
+ 			   			 		  				sal_Int32** pValueList, 
+ 			   			 		  				sal_uInt32* pLen);
+@@ -249,7 +249,7 @@ RegError REGISTRY_CALLTYPE reg_getLongLi
+ 	@param	pLen returns the length of the value list.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_getStringListValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getStringListValue(RegKeyHandle hKey, 
+ 				   			  					  rtl_uString* keyName, 
+ 				   			  					  sal_Char*** pValueList,
+ 				   			  					  sal_uInt32* pLen);
+@@ -264,7 +264,7 @@ RegError REGISTRY_CALLTYPE reg_getString
+ 	@param	pLen returns the length of the value list.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_getUnicodeListValue(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getUnicodeListValue(RegKeyHandle hKey, 
+ 					   		 	  				   rtl_uString* keyName, 
+ 			   			 		  				   sal_Unicode*** pValueList, 
+ 			   			 		  				   sal_uInt32* pLen);
+@@ -277,7 +277,7 @@ RegError REGISTRY_CALLTYPE reg_getUnicod
+ 	@param	len specifies the length of the value list.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_freeValueList(RegValueType valueType, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_freeValueList(RegValueType valueType, 
+ 				   			  				 RegValue pValueList, 
+ 				   			  				 sal_uInt32 len);
+ 
+@@ -294,7 +294,7 @@ RegError REGISTRY_CALLTYPE reg_freeValue
+                        link will be opened.
+ 	@return	REG_NO_ERROR if succeeds else an error code.    
+ */
+-RegError REGISTRY_CALLTYPE reg_createLink(RegKeyHandle hKey,
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createLink(RegKeyHandle hKey,
+ 				  			   		      rtl_uString* linkName, 
+ 										  rtl_uString* linkTarget);
+ 
+@@ -305,7 +305,7 @@ RegError REGISTRY_CALLTYPE reg_createLin
+ 	@param	linkName points to a null terminated string specifying the name of the link.
+ 	@return	REG_NO_ERROR if succeeds else an error code.    
+ */
+-RegError REGISTRY_CALLTYPE reg_deleteLink(RegKeyHandle hKey,
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_deleteLink(RegKeyHandle hKey,
+ 								  		  rtl_uString* linkName);
+ 
+ /** This function returns the type of a key.
+@@ -318,7 +318,7 @@ RegError REGISTRY_CALLTYPE reg_deleteLin
+     @param  pKeyType returns the type of the key.   
+ 	@return	REG_NO_ERROR if succeeds else an error code.    
+ */
+-RegError REGISTRY_CALLTYPE reg_getKeyType(RegKeyHandle hKey,
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getKeyType(RegKeyHandle hKey,
+ 										  rtl_uString* keyName,
+ 					   					  RegKeyType* pKeyType);
+ 
+@@ -329,7 +329,7 @@ RegError REGISTRY_CALLTYPE reg_getKeyTyp
+ 	@param	pLinkTarget contains the linktarget if succeeds else an empty string.
+ 	@return	REG_NO_ERROR if succeeds else an error code.    
+ */
+-RegError REGISTRY_CALLTYPE reg_getLinkTarget(RegKeyHandle hKey,
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getLinkTarget(RegKeyHandle hKey,
+ 											 rtl_uString* linkName,
+ 						  					 rtl_uString** pLinkTarget);
+ 
+@@ -342,7 +342,7 @@ RegError REGISTRY_CALLTYPE reg_getLinkTa
+                     The name of hKey together with keyName will be resolved from links.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+  */
+-RegError REGISTRY_CALLTYPE reg_getResolvedKeyName(RegKeyHandle hKey,
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getResolvedKeyName(RegKeyHandle hKey,
+ 											  	  rtl_uString* keyName,
+ 											 	  sal_Bool firstLinkOnly,
+ 							  				  	  rtl_uString** pResolvedName);
+@@ -359,7 +359,7 @@ RegError REGISTRY_CALLTYPE reg_getResolv
+ 			            registry information.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_loadKey(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_loadKey(RegKeyHandle hKey, 
+ 					  				   rtl_uString* keyName, 
+ 					  				   rtl_uString* regFileName);
+ 
+@@ -376,7 +376,7 @@ RegError REGISTRY_CALLTYPE reg_loadKey(R
+ 			            registry information.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_saveKey(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_saveKey(RegKeyHandle hKey, 
+ 					  				   rtl_uString* keyName, 
+ 					  				   rtl_uString* regFileName);
+ 
+@@ -396,7 +396,7 @@ RegError REGISTRY_CALLTYPE reg_saveKey(R
+ 	@param	bReport if TRUE the function reports warnings on stdout if a key already exists. 
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_mergeKey(RegKeyHandle hKey, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_mergeKey(RegKeyHandle hKey, 
+ 					   					rtl_uString* keyName, 
+ 					   					rtl_uString* regFileName,
+ 					   					sal_Bool bWarnings,
+@@ -409,7 +409,7 @@ RegError REGISTRY_CALLTYPE reg_mergeKey(
+ 	@param 	phRegistry points to a handle of the new registry if the function succeeds otherwise NULL.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_createRegistry(rtl_uString* registryName, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createRegistry(rtl_uString* registryName, 
+ 							 				  RegHandle* phRegistry, bool bInternal = false);
+ 
+ 
+@@ -419,7 +419,7 @@ RegError REGISTRY_CALLTYPE reg_createReg
+ 	@param 	phRootKey points to a handle of the open root key if the function succeeds otherwise NULL.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_openRootKey(RegHandle hRegistry, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openRootKey(RegHandle hRegistry, 
+ 						  				   RegKeyHandle* phRootKey);
+ 
+ 
+@@ -429,7 +429,7 @@ RegError REGISTRY_CALLTYPE reg_openRootK
+ 	@param  pName returns the name of the registry if the function succeeds otherwise an empty string. 
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_getName(RegHandle hRegistry, rtl_uString** pName);
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getName(RegHandle hRegistry, rtl_uString** pName);
+ 
+ 
+ /**	This function returns the access mode of the registry.
+@@ -437,7 +437,7 @@ const RegError REGISTRY_CALLTYPE reg_get
+ 	@param	hReg identifies a currently open registry.
+ 	@return	TRUE if accessmode is read only else FALSE. 
+ */
+-sal_Bool REGISTRY_CALLTYPE reg_isReadOnly(RegHandle hReg);
++sal_Bool REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_isReadOnly(RegHandle hReg);
+ 
+ 
+ /**	This function opens a registry with the specified name.
+@@ -447,7 +447,7 @@ sal_Bool REGISTRY_CALLTYPE reg_isReadOnl
+ 	@param 	accessMode specifies the accessmode of the registry, REG_READONLY or REG_READWRITE.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_openRegistry(rtl_uString* registryName, 
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openRegistry(rtl_uString* registryName, 
+ 						   					RegHandle* phRegistry,
+ 						   					RegAccessMode accessMode);
+ 
+@@ -457,7 +457,7 @@ RegError REGISTRY_CALLTYPE reg_openRegis
+ 	@param	hRegistry identifies a currently open registry which should be closed.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_closeRegistry(RegHandle hRegistry);
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeRegistry(RegHandle hRegistry);
+ 
+ 
+ /**	This function destroys a registry.
+@@ -467,7 +467,7 @@ RegError REGISTRY_CALLTYPE reg_closeRegi
+                          name is NULL the registry itselfs will be destroyed.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_destroyRegistry(RegHandle hRegistry,
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_destroyRegistry(RegHandle hRegistry,
+ 											   rtl_uString* registryName);
+ 
+ 
+@@ -478,7 +478,7 @@ RegError REGISTRY_CALLTYPE reg_destroyRe
+ 	@param	hKey identifies a currently open key which content will be reported.
+ 	@return	REG_NO_ERROR if succeeds else an error code. 
+ */
+-RegError REGISTRY_CALLTYPE reg_dumpRegistry(RegKeyHandle hKey);
++RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_dumpRegistry(RegKeyHandle hKey);
+ 
+ #ifdef __cplusplus
+ }
+--- ./registry/inc/registry/writer.h.arkopts~	2008-04-11 12:46:39.000000000 +0200
++++ ./registry/inc/registry/writer.h	2008-07-17 11:52:18.919326086 +0200
+@@ -79,7 +79,7 @@ void * SAL_CALL typereg_writer_create(
+     rtl_uString const * fileName, RTTypeClass typeClass, sal_Bool published,
+     rtl_uString const * typeName, sal_uInt16 superTypeCount,
+     sal_uInt16 fieldCount, sal_uInt16 methodCount, sal_uInt16 referenceCount)
+-    SAL_THROW_EXTERN_C();
++    SAL_THROW_EXTERN_C() SAL_DLLPUBLIC_EXPORT;
+ 
+ /**
+    Destroys a type writer.
+@@ -89,7 +89,7 @@ void * SAL_CALL typereg_writer_create(
+ 
+    @since UDK 3.2.0
+  */
+-void SAL_CALL typereg_writer_destroy(void * handle) SAL_THROW_EXTERN_C();
++void SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_destroy(void * handle) SAL_THROW_EXTERN_C();
+ 
+ /**
+    Sets the type name of a super type of a type writer.
+@@ -106,7 +106,7 @@ void SAL_CALL typereg_writer_destroy(voi
+ 
+    @since UDK 3.2.0
+  */
+-sal_Bool SAL_CALL typereg_writer_setSuperTypeName(
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setSuperTypeName(
+     void * handle, sal_uInt16 index, rtl_uString const * typeName)
+         SAL_THROW_EXTERN_C();
+ 
+@@ -136,7 +136,7 @@ sal_Bool SAL_CALL typereg_writer_setSupe
+ 
+    @since UDK 3.2.0
+  */
+-sal_Bool SAL_CALL typereg_writer_setFieldData(
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setFieldData(
+     void * handle, sal_uInt16 index, rtl_uString const * documentation,
+     rtl_uString const * fileName, RTFieldAccess flags, rtl_uString const * name,
+     rtl_uString const * typeName, RTValueType valueType,
+@@ -167,7 +167,7 @@ sal_Bool SAL_CALL typereg_writer_setFiel
+ 
+    @since UDK 3.2.0
+  */
+-sal_Bool SAL_CALL typereg_writer_setMethodData(
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodData(
+     void * handle, sal_uInt16 index, rtl_uString const * documentation,
+     RTMethodMode flags, rtl_uString const * name,
+     rtl_uString const * returnTypeName, sal_uInt16 parameterCount,
+@@ -196,7 +196,7 @@ sal_Bool SAL_CALL typereg_writer_setMeth
+ 
+    @since UDK 3.2.0
+  */
+-sal_Bool SAL_CALL typereg_writer_setMethodParameterData(
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodParameterData(
+     void * handle, sal_uInt16 methodIndex, sal_uInt16 parameterIndex,
+     RTParamMode flags, rtl_uString const * name, rtl_uString const * typeName)
+     SAL_THROW_EXTERN_C();
+@@ -219,7 +219,7 @@ sal_Bool SAL_CALL typereg_writer_setMeth
+ 
+    @since UDK 3.2.0
+  */
+-sal_Bool SAL_CALL typereg_writer_setMethodExceptionTypeName(
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodExceptionTypeName(
+     void * handle, sal_uInt16 methodIndex, sal_uInt16 exceptionIndex,
+     rtl_uString const * typeName)
+     SAL_THROW_EXTERN_C();
+@@ -245,7 +245,7 @@ sal_Bool SAL_CALL typereg_writer_setMeth
+ 
+    @since UDK 3.2.0
+  */
+-sal_Bool SAL_CALL typereg_writer_setReferenceData(
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setReferenceData(
+     void * handle, sal_uInt16 index, rtl_uString const * documentation,
+     RTReferenceType sort, RTFieldAccess flags, rtl_uString const * typeName)
+     SAL_THROW_EXTERN_C();
+@@ -263,7 +263,7 @@ sal_Bool SAL_CALL typereg_writer_setRefe
+    and <code>size</code> is not modified
+  */
+ void const * SAL_CALL typereg_writer_getBlob(void * handle, sal_uInt32 * size)
+-    SAL_THROW_EXTERN_C();
++    SAL_THROW_EXTERN_C() SAL_DLLPUBLIC_EXPORT;
+ 
+ #ifdef __cplusplus
+ }
+--- ./salhelper/inc/salhelper/dynload.hxx.arkopts~	2008-04-11 13:21:25.000000000 +0200
++++ ./salhelper/inc/salhelper/dynload.hxx	2008-07-17 11:52:18.919326086 +0200
+@@ -40,7 +40,7 @@ namespace salhelper
+ 
+ /** The ORealDynamicLoader is an implementation helper class for the template loader ODynamicLoader.
+  */   
+-class ORealDynamicLoader
++class SAL_DLLPUBLIC_EXPORT ORealDynamicLoader
+ {
+ public:
+     /** initializes the loader, loads the library and call the initialization fucntion.
+--- ./sal/inc/osl/file.h.arkopts~	2008-04-15 16:25:23.000000000 +0200
++++ ./sal/inc/osl/file.h	2008-07-17 11:52:19.021268860 +0200
+@@ -174,7 +174,7 @@ typedef void *oslDirectoryItem;
+ 	@see osl_closeDirectory()
+ */
+ 
+-oslFileError SAL_CALL osl_openDirectory( rtl_uString *pustrDirectoryURL, oslDirectory *pDirectory);
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_openDirectory( rtl_uString *pustrDirectoryURL, oslDirectory *pDirectory);
+ 
+ 
+ /**	Retrieve the next item of a previously opened directory. 
+@@ -208,7 +208,7 @@ oslFileError SAL_CALL osl_openDirectory(
+ 	@see osl_getFileStatus()
+ */
+ 
+-oslFileError SAL_CALL osl_getNextDirectoryItem(
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getNextDirectoryItem(
+ 	oslDirectory Directory,
+ 	oslDirectoryItem *pItem,
+ 	sal_uInt32	 uHint
+@@ -230,7 +230,7 @@ oslFileError SAL_CALL osl_getNextDirecto
+ 	@see osl_openDirectory()
+ */
+ 
+-oslFileError SAL_CALL osl_closeDirectory(oslDirectory Directory);
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_closeDirectory(oslDirectory Directory);
+ 
+ 
+ /**	Retrieve a single directory item. 
+@@ -269,7 +269,7 @@ oslFileError SAL_CALL osl_closeDirectory
+ 	@see osl_getNextDirectoryItem()
+ */
+ 
+-oslFileError SAL_CALL osl_getDirectoryItem(
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getDirectoryItem(
+ 	rtl_uString *pustrFileURL, 
+ 	oslDirectoryItem *pItem
+ 	);
+@@ -292,7 +292,7 @@ oslFileError SAL_CALL osl_getDirectoryIt
+     @see osl_releaseDirectoryItem()
+ */
+ 
+-oslFileError SAL_CALL osl_acquireDirectoryItem( oslDirectoryItem Item );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_acquireDirectoryItem( oslDirectoryItem Item );
+ 
+ 
+ /**	Decrease the refcount of a directory item handle. 
+@@ -314,7 +314,7 @@ oslFileError SAL_CALL osl_acquireDirecto
+ 	@see osl_acquireDirectoryItem()
+ */
+ 
+-oslFileError SAL_CALL osl_releaseDirectoryItem( oslDirectoryItem Item ); 
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_releaseDirectoryItem( oslDirectoryItem Item ); 
+ 
+ /* File types */
+ 
+@@ -437,7 +437,7 @@ struct _oslFileStatus {
+ 	@see oslFileStatus
+ */
+ 
+-oslFileError SAL_CALL osl_getFileStatus( oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileStatus( oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask );
+ 
+ 
+ typedef void *oslVolumeDeviceHandle;
+@@ -459,7 +459,7 @@ typedef void *oslVolumeDeviceHandle;
+     @see osl_getVolumeInformation()
+ */
+ 
+-oslFileError SAL_CALL osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle );
+ 
+ 
+ /** Automount a volume device.
+@@ -478,7 +478,7 @@ oslFileError SAL_CALL osl_unmountVolumeD
+     @see osl_getVolumeInformation()
+ */
+ 
+-oslFileError SAL_CALL osl_automountVolumeDevice( oslVolumeDeviceHandle Handle );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_automountVolumeDevice( oslVolumeDeviceHandle Handle );
+ 
+ 
+ /** Release a volume device handle.
+@@ -499,7 +499,7 @@ oslFileError SAL_CALL osl_automountVolum
+     @see osl_getVolumeInformation()    
+ */
+ 
+-oslFileError SAL_CALL osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
+ 
+ /** Acquire a volume device handle.
+ 
+@@ -519,7 +519,7 @@ oslFileError SAL_CALL osl_releaseVolumeD
+     @see osl_getVolumeInformation()
+ */
+ 
+-oslFileError SAL_CALL osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
+ 
+ 
+ /** Get the full qualified URL where a device is mounted to.
+@@ -550,7 +550,7 @@ oslFileError SAL_CALL osl_acquireVolumeD
+ 	@see	osl_unmountVolumeDevice()
+ */
+ 
+-oslFileError SAL_CALL osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **ppustrDirectoryURL);
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **ppustrDirectoryURL);
+ 
+ /* Volume attributes */
+ 
+@@ -645,7 +645,7 @@ struct _oslVolumeInfo {
+ 	@see	oslVolumeInfo
+ */	
+ 
+-oslFileError SAL_CALL osl_getVolumeInformation(
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getVolumeInformation(
+     rtl_uString *pustrDirectoryURL, 
+     oslVolumeInfo *pInfo, 
+     sal_uInt32 uFieldMask );
+@@ -708,7 +708,7 @@ typedef	void *oslFileHandle;
+ 	@see osl_getFileSize()
+ */
+ 
+-oslFileError SAL_CALL osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
+ 
+ #define osl_Pos_Absolut 1
+ #define osl_Pos_Current 2
+@@ -734,7 +734,7 @@ oslFileError SAL_CALL osl_openFile( rtl_
+ 	@see	osl_getFilePos()
+ */
+ 
+-oslFileError SAL_CALL osl_setFilePos( oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uPos );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFilePos( oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uPos );
+ 
+ 
+ /**	Retrieve the current position of the internal pointer of an open file.
+@@ -756,7 +756,7 @@ oslFileError SAL_CALL osl_setFilePos( os
+ 	@see osl_writeFile()
+ */
+ 
+-oslFileError SAL_CALL osl_getFilePos( oslFileHandle Handle, sal_uInt64 *pPos );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFilePos( oslFileHandle Handle, sal_uInt64 *pPos );
+ 
+ 
+ /**	Set the file size of an open file. 
+@@ -781,7 +781,7 @@ oslFileError SAL_CALL osl_getFilePos( os
+ 	@see osl_getFileSize()
+ */
+ 
+-oslFileError SAL_CALL osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize );
+ 
+ 
+ /**	Get the file size of an open file. 
+@@ -805,7 +805,7 @@ oslFileError SAL_CALL osl_setFileSize( o
+ 	@see osl_getFileStatus()
+ */
+ 
+-oslFileError SAL_CALL osl_getFileSize( oslFileHandle Handle, sal_uInt64 *pSize );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileSize( oslFileHandle Handle, sal_uInt64 *pSize );
+ 
+ 
+ /**	Read a number of bytes from a file. 
+@@ -843,7 +843,7 @@ oslFileError SAL_CALL osl_getFileSize( o
+ 	@see osl_setFilePos()
+ */
+ 
+-oslFileError SAL_CALL osl_readFile( oslFileHandle Handle, void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64 *pBytesRead );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_readFile( oslFileHandle Handle, void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64 *pBytesRead );
+ 
+ 
+ /**	Test if the end of a file is reached.
+@@ -871,7 +871,7 @@ oslFileError SAL_CALL osl_readFile( oslF
+ 	@see osl_setFilePos()
+ */
+ 
+-oslFileError SAL_CALL osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF );
+ 
+ 
+ /** Write a number of bytes to a file. 
+@@ -911,7 +911,7 @@ oslFileError SAL_CALL osl_isEndOfFile( o
+ 	@see osl_setFilePos()
+ */
+ 
+-oslFileError SAL_CALL osl_writeFile( oslFileHandle Handle, const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64 *pBytesWritten );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_writeFile( oslFileHandle Handle, const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64 *pBytesWritten );
+ 
+ 
+ /** Read a line from a file. 
+@@ -941,7 +941,7 @@ oslFileError SAL_CALL osl_writeFile( osl
+ 	@see osl_setFilePos()
+ */
+ 
+-oslFileError SAL_CALL osl_readLine( oslFileHandle Handle, sal_Sequence** ppSequence );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_readLine( oslFileHandle Handle, sal_Sequence** ppSequence );
+ 
+ /** Synchronize the memory representation of a file with that on the physical medium.
+ 
+@@ -977,7 +977,7 @@ oslFileError SAL_CALL osl_readLine( oslF
+       @see osl_openFile()
+       @see osl_writeFile()      
+ */
+-oslFileError SAL_CALL osl_syncFile(oslFileHandle Handle);
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_syncFile(oslFileHandle Handle);
+ 
+ /**	Close an open file.
+ 
+@@ -996,7 +996,7 @@ oslFileError SAL_CALL osl_syncFile(oslFi
+ 	@see osl_openFile()
+ */
+ 
+-oslFileError SAL_CALL osl_closeFile( oslFileHandle Handle );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_closeFile( oslFileHandle Handle );
+ 
+ 	
+ /**	Create a directory.
+@@ -1026,7 +1026,7 @@ oslFileError SAL_CALL osl_closeFile( osl
+ 	@see osl_removeDirectory()
+ */
+ 
+-oslFileError SAL_CALL osl_createDirectory( rtl_uString* pustrDirectoryURL );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createDirectory( rtl_uString* pustrDirectoryURL );
+ 
+ 
+ /**	Remove an empty directory.
+@@ -1057,7 +1057,7 @@ oslFileError SAL_CALL osl_createDirector
+ 	@see osl_createDirectory()
+ */
+ 	
+-oslFileError SAL_CALL osl_removeDirectory( rtl_uString* pustrDirectoryURL );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_removeDirectory( rtl_uString* pustrDirectoryURL );
+ 
+ /** Function pointer representing a function that will be called by osl_createDirectoryPath
+     if a directory has been created.
+@@ -1135,7 +1135,7 @@ typedef void (SAL_CALL *oslDirectoryCrea
+ 	@see oslFileError
+ 	@see osl_createDirectory
+ */
+-oslFileError SAL_CALL osl_createDirectoryPath(
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createDirectoryPath(
+     rtl_uString* aDirectoryUrl, 
+     oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc, 
+     void* pData);
+@@ -1168,7 +1168,7 @@ oslFileError SAL_CALL osl_createDirector
+ 	@see osl_openFile()
+ */
+ 
+-oslFileError SAL_CALL osl_removeFile( rtl_uString* pustrFileURL );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_removeFile( rtl_uString* pustrFileURL );
+ 
+ 
+ /** Copy a file to a new destination. 
+@@ -1197,7 +1197,7 @@ oslFileError SAL_CALL osl_removeFile( rt
+ 	@see	osl_removeFile()
+ */
+ 
+-oslFileError SAL_CALL osl_copyFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_copyFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
+ 
+ 
+ /** Move a file or directory to a new destination or renames it. 
+@@ -1224,7 +1224,7 @@ oslFileError SAL_CALL osl_copyFile( rtl_
+ 	@see osl_copyFile()
+ */
+ 
+-oslFileError SAL_CALL osl_moveFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_moveFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
+ 
+ 
+ /**	Determine a valid unused canonical name for a requested name. 
+@@ -1248,7 +1248,7 @@ oslFileError SAL_CALL osl_moveFile( rtl_
+ 	@see osl_getFileStatus()
+ */
+ 
+-oslFileError SAL_CALL osl_getCanonicalName( rtl_uString *pustrRequestedURL, rtl_uString **ppustrValidURL);
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCanonicalName( rtl_uString *pustrRequestedURL, rtl_uString **ppustrValidURL);
+ 
+ 
+ /**	Convert a path relative to a given directory into an full qualified file URL.
+@@ -1286,7 +1286,7 @@ oslFileError SAL_CALL osl_getCanonicalNa
+ 	@see	osl_getFileStatus()
+ */
+ 
+-oslFileError SAL_CALL osl_getAbsoluteFileURL( 
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getAbsoluteFileURL( 
+     rtl_uString* pustrBaseDirectoryURL, 
+     rtl_uString *pustrRelativeFileURL, 
+     rtl_uString **ppustrAbsoluteFileURL );
+@@ -1307,7 +1307,7 @@ oslFileError SAL_CALL osl_getAbsoluteFil
+ 	@see osl_getSystemPathFromFileURL()
+ */
+ 
+-oslFileError SAL_CALL osl_getFileURLFromSystemPath( rtl_uString *pustrSystemPath, rtl_uString **ppustrFileURL);
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileURLFromSystemPath( rtl_uString *pustrSystemPath, rtl_uString **ppustrFileURL);
+ 
+ 
+ /**	Searche a full qualified system path or a file URL.
+@@ -1338,7 +1338,7 @@ oslFileError SAL_CALL osl_getFileURLFrom
+ 	@see osl_getSystemPathFromFileURL()
+ */
+ 
+-oslFileError SAL_CALL osl_searchFileURL( rtl_uString *pustrFileName, rtl_uString *pustrSearchPath, rtl_uString **ppustrFileURL ); 
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_searchFileURL( rtl_uString *pustrFileName, rtl_uString *pustrSearchPath, rtl_uString **ppustrFileURL ); 
+ 
+ 
+ /**	Convert a file URL into a system dependend path.
+@@ -1356,7 +1356,7 @@ oslFileError SAL_CALL osl_searchFileURL(
+ 	@see osl_getFileURLFromSystemPath()
+ */
+ 
+-oslFileError SAL_CALL osl_getSystemPathFromFileURL( rtl_uString *pustrFileURL, rtl_uString **ppustrSystemPath);
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getSystemPathFromFileURL( rtl_uString *pustrFileURL, rtl_uString **ppustrSystemPath);
+ 
+ 
+ /** Function pointer representing the function called back from osl_abbreviateSystemPath
+@@ -1395,7 +1395,7 @@ typedef sal_uInt32 (SAL_CALL *oslCalcTex
+ 	@see	oslCalcTextWidthFunc
+ */
+ 
+-oslFileError SAL_CALL osl_abbreviateSystemPath( 
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_abbreviateSystemPath( 
+     rtl_uString *ustrSystemPath, 
+     rtl_uString **pustrCompacted, 
+     sal_uInt32 uMaxWidth, 
+@@ -1417,7 +1417,7 @@ oslFileError SAL_CALL osl_abbreviateSyst
+ 	@see osl_getFileStatus()
+ */
+ 
+-oslFileError SAL_CALL osl_setFileAttributes( rtl_uString *pustrFileURL, sal_uInt64 uAttributes ); 
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileAttributes( rtl_uString *pustrFileURL, sal_uInt64 uAttributes ); 
+ 
+ 
+ /**	Set the file time.
+@@ -1442,7 +1442,7 @@ oslFileError SAL_CALL osl_setFileAttribu
+ 	@see osl_getFileStatus()
+ */
+ 
+-oslFileError SAL_CALL osl_setFileTime( 
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileTime( 
+     rtl_uString *pustrFileURL,	
+     const TimeValue *aCreationTime,
+ 	const TimeValue *aLastAccessTime,
+@@ -1459,7 +1459,7 @@ oslFileError SAL_CALL osl_setFileTime( 
+ 	osl_File_E_NOENT no such file or directory not found
+ */
+ 
+-oslFileError SAL_CALL osl_getTempDirURL( rtl_uString **pustrTempDirURL );
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getTempDirURL( rtl_uString **pustrTempDirURL );
+ 
+ 
+ /** Creates a temporary file in the directory provided by the caller or the
+@@ -1514,7 +1514,7 @@ oslFileError SAL_CALL osl_getTempDirURL(
+ 	@see    osl_getTempDirURL()	
+ */
+ 
+-oslFileError SAL_CALL osl_createTempFile(
++oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createTempFile(
+     rtl_uString*   pustrDirectoryURL, 
+     oslFileHandle* pHandle, 
+     rtl_uString**  ppustrTempFileURL);
+@@ -1524,5 +1524,3 @@ oslFileError SAL_CALL osl_createTempFile
+ #endif
+ 
+ #endif	/* _OSL_FILE_H_ */
+-
+-
+--- ./sal/inc/osl/process.h.arkopts~	2008-04-10 12:31:04.000000000 +0200
++++ ./sal/inc/osl/process.h	2008-07-17 11:52:19.072043379 +0200
+@@ -180,7 +180,7 @@ typedef void* oslProcess;
+ 	@see osl_freeProcessHandle
+ 	@see osl_loginUser
+ */
+-oslProcessError SAL_CALL osl_executeProcess(
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_executeProcess(
+     rtl_uString* ustrImageName,
+ 	rtl_uString* ustrArguments[],
+     sal_uInt32  nArguments,
+@@ -266,7 +266,7 @@ oslProcessError SAL_CALL osl_executeProc
+ 	@see osl_loginUser
+ 	@see osl_closeFile
+ */
+-oslProcessError SAL_CALL osl_executeProcess_WithRedirectedIO(
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_executeProcess_WithRedirectedIO(
+     rtl_uString* strImageName,
+ 	rtl_uString* ustrArguments[],
+     sal_uInt32 nArguments,
+@@ -287,7 +287,7 @@ oslProcessError SAL_CALL osl_executeProc
+     @see osl_getProcess
+     @see osl_joinProcess
+  */
+-oslProcessError SAL_CALL osl_terminateProcess(oslProcess Process);
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_terminateProcess(oslProcess Process);
+ 
+ 
+ /** @deprecated
+@@ -296,13 +296,13 @@ oslProcessError SAL_CALL osl_terminatePr
+ 
+     @return the process handle on success, NULL in all other cases
+  */
+-oslProcess SAL_CALL osl_getProcess(oslProcessIdentifier Ident);
++oslProcess SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcess(oslProcessIdentifier Ident);
+ 
+ 
+ /** Free the specified proces-handle.
+ 	@param Process [in]
+ */
+-void SAL_CALL osl_freeProcessHandle(oslProcess Process);
++void SAL_CALL SAL_DLLPUBLIC_EXPORT osl_freeProcessHandle(oslProcess Process);
+ 
+ 
+ /** Wait for completation of the specified childprocess.
+@@ -310,7 +310,7 @@ void SAL_CALL osl_freeProcessHandle(oslP
+ 	@return ols_Process_E_None
+ 	@see osl_executeProcess
+ */
+-oslProcessError SAL_CALL osl_joinProcess(oslProcess Process);
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_joinProcess(oslProcess Process);
+ 
+ /** Wait with a timeout for the completion of the specified child
+     process.
+@@ -329,7 +329,7 @@ oslProcessError SAL_CALL osl_joinProcess
+ 
+     @see osl_executeProcess
+ */
+-oslProcessError SAL_CALL osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout);
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout);
+ 
+ /** Retrieves information about a Process
+     @param Process [in] the process handle of the process
+@@ -346,7 +346,7 @@ oslProcessError SAL_CALL osl_joinProcess
+                         retrieved valid information fields.
+     @return osl_Process_E_None on success, osl_Process_E_Unknown on failure.
+  */
+-oslProcessError SAL_CALL osl_getProcessInfo(oslProcess Process, oslProcessData Fields, 
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessInfo(oslProcess Process, oslProcessData Fields, 
+                                    oslProcessInfo* pInfo);
+ 
+ /** Get the filename of the executable. 
+@@ -354,13 +354,13 @@ oslProcessError SAL_CALL osl_getProcessI
+ 	@return osl_Process_E_None or does not return. 	
+ 	@see osl_executeProcess 
+ */
+-oslProcessError SAL_CALL osl_getExecutableFile(rtl_uString **strFile);
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getExecutableFile(rtl_uString **strFile);
+ 
+ /** @return the number of commandline arguments passed to the main-function of
+     this process
+     @see osl_getCommandArg
+ */
+-sal_uInt32 SAL_CALL osl_getCommandArgCount(void);
++sal_uInt32 SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCommandArgCount(void);
+ 
+ /** Get the nArg-th command-line argument passed to the main-function of this process.
+     @param nArg [in] The number of the argument to return.
+@@ -368,7 +368,7 @@ sal_uInt32 SAL_CALL osl_getCommandArgCou
+ 	@return osl_Process_E_None or does not return. 	
+ 	@see osl_executeProcess
+ */
+-oslProcessError SAL_CALL osl_getCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
+ 
+ /** Set the command-line arguments as passed to the main-function of this process.
+ 
+@@ -383,13 +383,13 @@ oslProcessError SAL_CALL osl_getCommandA
+ 	@see osl_getCommandArgCount
+ 	@see osl_getCommandArg
+ */
+-void SAL_CALL osl_setCommandArgs (int argc, char **argv);
++void SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setCommandArgs (int argc, char **argv);
+ 
+ /** Get the value of one enviroment variable.
+ 	@param strVar [in] denotes the name of the variable to get.
+ 	@param strValue [out] string that receives the value of environment variable.
+ */
+-oslProcessError SAL_CALL osl_getEnvironment(rtl_uString *strVar, rtl_uString **strValue);
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getEnvironment(rtl_uString *strVar, rtl_uString **strValue);
+ 
+ /** Get the working directory of the current process as a file URL. 
+ 
+@@ -397,7 +397,7 @@ oslProcessError SAL_CALL osl_getEnvironm
+ 	@param	pustrWorkingDir [out] string that receives the working directory file URL.
+ */
+ 
+-oslProcessError SAL_CALL osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir );
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir );
+ 
+ /** Get the locale the process is currently running in. 
+ 
+@@ -408,7 +408,7 @@ oslProcessError SAL_CALL osl_getProcessW
+     @see osl_setProcessLocale
+ */
+ 
+-oslProcessError SAL_CALL osl_getProcessLocale( rtl_Locale ** ppLocale );
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessLocale( rtl_Locale ** ppLocale );
+ 
+ /** Change the locale of the process. 
+ 
+@@ -416,12 +416,12 @@ oslProcessError SAL_CALL osl_getProcessL
+     @see osl_getProcessLocale
+ */
+ 
+-oslProcessError SAL_CALL osl_setProcessLocale( rtl_Locale * pLocale );
++oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setProcessLocale( rtl_Locale * pLocale );
+  
+ 
+-sal_Bool SAL_CALL osl_sendResourcePipe(oslPipe Pipe, oslSocket Socket);
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT osl_sendResourcePipe(oslPipe Pipe, oslSocket Socket);
+  
+-oslSocket SAL_CALL osl_receiveResourcePipe(oslPipe Pipe);
++oslSocket SAL_CALL SAL_DLLPUBLIC_EXPORT osl_receiveResourcePipe(oslPipe Pipe);
+ 
+ #ifdef __cplusplus
+ }
+--- ./sal/inc/rtl/unload.h.arkopts~	2008-04-10 12:43:36.000000000 +0200
++++ ./sal/inc/rtl/unload.h	2008-07-17 11:52:19.072043379 +0200
+@@ -166,7 +166,7 @@ have to bother about registering.
+ @param module a module handle as is obtained by osl_loadModule 
+ @return sal_True - the module could be registered for unloading, sal_False otherwise 
+ */
+-sal_Bool SAL_CALL rtl_registerModuleForUnloading( oslModule module);
++sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_registerModuleForUnloading( oslModule module);
+ 
+ /**
+ The function revokes the registration of a module. By calling the function for 
+@@ -179,7 +179,7 @@ there is no need to call this function u
+ 
+ @param module a module handle as is obtained by osl_loadModule
+ */
+-void SAL_CALL rtl_unregisterModuleForUnloading( oslModule module);
++void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_unregisterModuleForUnloading( oslModule module);
+ /**
+ This function sets off the unloading mechanism. At first it notifies the 
+ unloading listeners in order to give them a chance to do cleanup and get 
+@@ -205,7 +205,7 @@ registered listeners and release the ref
+ @param libUnused span of time that a module must be unused to be unloaded. the 
+ argument is optional.
+ */
+-void SAL_CALL rtl_unloadUnusedModules( TimeValue* libUnused);
++void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_unloadUnusedModules( TimeValue* libUnused);
+ 
+ /** 
+ rtl_addUnloadingListener takes an argument of this type.
+@@ -227,7 +227,7 @@ as it has been registered.
+ @param this  - a value to distinguish different listener instances
+ @return identifier which is used in rtl_removeUnloadingListener
+ */
+-sal_Int32 SAL_CALL rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this);
++sal_Int32 SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this);
+ 
+ /**
+ Listeners (the callback functions) must be unregistered before the listener code 
+@@ -237,7 +237,7 @@ registered when <code>component_canUnloa
+ 
+ @param cookie is an identifier as returned by <code>rtl_addUnloadingListener</code> function.
+ */
+-void SAL_CALL rtl_removeUnloadingListener( sal_Int32 cookie );
++void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_removeUnloadingListener( sal_Int32 cookie );
+ 
+ 
+ /** 
+@@ -297,17 +297,17 @@ typedef struct _rtl_StandardModuleCount
+ /** Default implementation for <code>rtl_ModuleCount.acquire</code>. Use this function along with 
+ <code>rtl_StandardModuleCount</code>.
+ */
+-void rtl_moduleCount_acquire(rtl_ModuleCount * that );
++void SAL_DLLPUBLIC_EXPORT rtl_moduleCount_acquire(rtl_ModuleCount * that );
+ /** Default implementation for <code>rtl_ModuleCount.release</code>.
+ Use this function along with 
+ <code>rtl_StandardModuleCount</code>.
+ */
+-void rtl_moduleCount_release( rtl_ModuleCount * that );
++void SAL_DLLPUBLIC_EXPORT rtl_moduleCount_release( rtl_ModuleCount * that );
+ 
+ /** Default implementation for <code>component_canUnload</code>. Use this function along with 
+ <code>rtl_StandardModuleCount</code>.
+ */
+-sal_Bool rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue* libUnused);
++sal_Bool SAL_DLLPUBLIC_EXPORT rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue* libUnused);
+ 
+ 
+ #ifdef __cplusplus
+--- ./solenv/inc/unxlngi6.mk.arkopts~	2008-07-17 11:49:01.750184223 +0200
++++ ./solenv/inc/unxlngi6.mk	2008-07-17 11:52:19.075048755 +0200
+@@ -60,7 +60,7 @@ JAVA_RUNTIME=-ljava_g
+ 
+ # architecture dependent flags for the C and C++ compiler that can be changed by
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+-ARCH_FLAGS*=-mtune=pentiumpro
++ARCH_FLAGS*=-march=i686 -mtune=i686
+ 
+ # name of C++ Compiler
+ CXX*=g++
+@@ -75,24 +75,24 @@ CFLAGS+=-fmessage-length=0 -c
+ 
+ # flags to enable build with symbols; required for crashdump feature
+ .IF "$(ENABLE_SYMBOLS)"=="SMALL"
+-CFLAGSENABLESYMBOLS=-g1
++CFLAGSENABLESYMBOLS=
+ .ELSE
+-CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta
++CFLAGSENABLESYMBOLS= # was temporarily commented out, reenabled before Beta
+ 
+ .ENDIF
+ 
+ # flags for the C++ Compiler
+-CFLAGSCC= -pipe $(ARCH_FLAGS)
++CFLAGSCC= -O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -pipe $(ARCH_FLAGS)
+ # Flags for enabling exception handling
+ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
+ # Flags for disabling exception handling
+ CFLAGS_NO_EXCEPTIONS=-fno-exceptions
+ 
+ # -fpermissive should be removed as soon as possible
+-CFLAGSCXX= -pipe $(ARCH_FLAGS)
++CFLAGSCXX= -O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -pipe $(ARCH_FLAGS)
+ PICSWITCH:=-fpic
+ .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
+-CFLAGSCXX += -fvisibility-inlines-hidden
++CFLAGSCXX += -fvisibility-inlines-hidden # -fvisibility=hidden
+ .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
+ 
+ CFLAGS_CREATE_PCH=-x c++-header -I$(INCPCH) -DPRECOMPILED_HEADERS
+@@ -110,13 +110,13 @@ CFLAGSSLOCUIMT=$(PICSWITCH)
+ # Compiler flags for profiling
+ CFLAGSPROF=
+ # Compiler flags for debugging
+-CFLAGSDEBUG=-g
++CFLAGSDEBUG=
+ CFLAGSDBGUTIL=
+ # Compiler flags for enabling optimizations
+ .IF "$(PRODUCT)"!=""
+-CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
++CFLAGSOPT=-O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -fno-strict-aliasing		# optimizing for products
+ .ELSE 	# "$(PRODUCT)"!=""
+-CFLAGSOPT=   							# no optimizing for non products
++CFLAGSOPT=-O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -fno-strict-aliasing   							# no optimizing for non products
+ .ENDIF	# "$(PRODUCT)"!=""
+ # Compiler flags for disabling optimizations
+ CFLAGSNOOPT=-O0
+@@ -171,12 +171,12 @@ LINKFLAGSSHLCUI= -shared
+ 
+ LINKFLAGSTACK=
+ LINKFLAGSPROF=
+-LINKFLAGSDEBUG=-g
++LINKFLAGSDEBUG=
+ LINKFLAGSOPT=
+ 
+ # linker flags for optimization (symbol hashtable)
+ # for now, applied to symbol scoped libraries, only
+-LINKFLAGSOPTIMIZE*=-Wl,-O1
++LINKFLAGSOPTIMIZE*=-Wl,-O2
+ LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script
+ 
+ SONAME_SWITCH=-Wl,-h
+--- ./store/inc/store/store.h.arkopts~	2008-07-17 11:49:18.057038431 +0200
++++ ./store/inc/store/store.h	2008-07-17 11:52:19.076064554 +0200
+@@ -46,7 +46,7 @@ typedef void* storeHandle;
+     @param  Handle [in] the Handle.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_acquireHandle (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_acquireHandle (
+ 	storeHandle Handle
+ ) SAL_THROW_EXTERN_C();
+ 
+@@ -56,7 +56,7 @@ storeError SAL_CALL store_acquireHandle 
+     @return store_E_None          upon success,
+             store_E_InvalidHandle otherwise.
+  */
+-storeError SAL_CALL store_releaseHandle (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_releaseHandle (
+ 	storeHandle Handle
+ ) SAL_THROW_EXTERN_C();
+ 
+@@ -73,7 +73,7 @@ typedef void* storeFileHandle;
+     @param  phFile [out] the File Handle.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_createMemoryFile (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_createMemoryFile (
+ 	sal_uInt16       nPageSize,
+ 	storeFileHandle *phFile
+ ) SAL_THROW_EXTERN_C();
+@@ -91,7 +91,7 @@ storeError SAL_CALL store_createMemoryFi
+ 	@param  phFile [out] the File Handle.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_openFile (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openFile (
+ 	rtl_uString     *pFilename,
+ 	storeAccessMode  eAccessMode,
+ 	sal_uInt16       nPageSize,
+@@ -105,7 +105,7 @@ storeError SAL_CALL store_openFile (
+     @return store_E_None upon     success,
+             store_E_InvalidHandle otherwise.
+  */
+-storeError SAL_CALL store_closeFile (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeFile (
+ 	storeFileHandle hFile
+ ) SAL_THROW_EXTERN_C();
+ 
+@@ -114,7 +114,7 @@ storeError SAL_CALL store_closeFile (
+     @param  hFile [in] the File Handle.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_flushFile (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_flushFile (
+ 	storeFileHandle hFile
+ ) SAL_THROW_EXTERN_C();
+ 
+@@ -124,7 +124,7 @@ storeError SAL_CALL store_flushFile (
+     @param  pnRefCount [out] number of open directories and streams.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_getFileRefererCount (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getFileRefererCount (
+ 	storeFileHandle  hFile,
+ 	sal_uInt32      *pnRefCount
+ ) SAL_THROW_EXTERN_C();
+@@ -135,7 +135,7 @@ storeError SAL_CALL store_getFileReferer
+     @param  pnSize [out] the file size in bytes.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_getFileSize (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getFileSize (
+ 	storeFileHandle  hFile,
+ 	sal_uInt32      *pnSize
+ ) SAL_THROW_EXTERN_C();
+@@ -148,7 +148,7 @@ storeError SAL_CALL store_getFileSize (
+     @param  pDstFilename [in] created with store_AccessCreate.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_rebuildFile (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_rebuildFile (
+ 	rtl_uString *pSrcFilename,
+ 	rtl_uString *pDstFilename
+ ) SAL_THROW_EXTERN_C();
+@@ -170,7 +170,7 @@ typedef void* storeDirectoryHandle;
+     @param  phDirectory [out] the Directory Handle.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_openDirectory (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openDirectory (
+ 	storeFileHandle       hFile,
+ 	rtl_uString          *pPath,
+ 	rtl_uString          *pName,
+@@ -184,7 +184,7 @@ storeError SAL_CALL store_openDirectory 
+     @return store_E_None          upon success,
+             store_E_InvalidHandle otherwise.
+  */
+-storeError SAL_CALL store_closeDirectory (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeDirectory (
+ 	storeDirectoryHandle hDirectory
+ ) SAL_THROW_EXTERN_C();
+ 
+@@ -195,7 +195,7 @@ storeError SAL_CALL store_closeDirectory
+     @return store_E_None       upon success,
+             store_E_NoMoreFile upon end of iteration.
+  */
+-storeError SAL_CALL store_findFirst (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_findFirst (
+ 	storeDirectoryHandle  hDirectory,
+ 	storeFindData        *pFindData
+ ) SAL_THROW_EXTERN_C();
+@@ -207,7 +207,7 @@ storeError SAL_CALL store_findFirst (
+     @return store_E_None       upon success,
+             store_E_NoMoreFile upon end of iteration.
+  */
+-storeError SAL_CALL store_findNext (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_findNext (
+ 	storeDirectoryHandle  hDirectory,
+ 	storeFindData        *pFindData
+ ) SAL_THROW_EXTERN_C();
+@@ -229,7 +229,7 @@ typedef void* storeStreamHandle;
+     @param  phStrm [out] the Stream Handle.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_openStream (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openStream (
+ 	storeFileHandle    hFile,
+ 	rtl_uString       *pPath,
+ 	rtl_uString       *pName,
+@@ -243,7 +243,7 @@ storeError SAL_CALL store_openStream (
+     @return store_E_None          upon success,
+             store_E_InvalidHandle otherwise.
+  */
+-storeError SAL_CALL store_closeStream (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeStream (
+ 	storeStreamHandle hStrm
+ ) SAL_THROW_EXTERN_C();
+ 
+@@ -256,7 +256,7 @@ storeError SAL_CALL store_closeStream (
+     @param  pnDone [out] the number of bytes actually read.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_readStream (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_readStream (
+ 	storeStreamHandle  hStrm,
+ 	sal_uInt32         nOffset,
+ 	void              *pBuffer,
+@@ -273,7 +273,7 @@ storeError SAL_CALL store_readStream (
+     @param  pnDone [out] the number of bytes actually written.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_writeStream (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_writeStream (
+ 	storeStreamHandle  hStrm,
+ 	sal_uInt32         nOffset,
+ 	const void        *pBuffer,
+@@ -286,7 +286,7 @@ storeError SAL_CALL store_writeStream (
+     @param  hStrm [in] the Stream Handle.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_flushStream (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_flushStream (
+ 	storeStreamHandle hStrm
+ ) SAL_THROW_EXTERN_C();
+ 
+@@ -296,7 +296,7 @@ storeError SAL_CALL store_flushStream (
+     @param  pnSize [out] the stream size in bytes.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_getStreamSize (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getStreamSize (
+ 	storeStreamHandle  hStrm,
+ 	sal_uInt32        *pnSize
+ ) SAL_THROW_EXTERN_C();
+@@ -307,7 +307,7 @@ storeError SAL_CALL store_getStreamSize 
+     @param  nSize [in] the new stream size in bytes.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_setStreamSize (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_setStreamSize (
+ 	storeStreamHandle hStrm,
+ 	sal_uInt32        nSize
+ ) SAL_THROW_EXTERN_C();
+@@ -323,7 +323,7 @@ storeError SAL_CALL store_setStreamSize 
+     @param  pnAttrib [out] the resulting attributes, may be NULL.
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_attrib (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_attrib (
+ 	storeFileHandle hFile,
+ 	rtl_uString    *pPath,
+ 	rtl_uString    *pName,
+@@ -345,7 +345,7 @@ storeError SAL_CALL store_attrib (
+     @param  pDstName [in] the Destination name
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_link (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_link (
+ 	storeFileHandle hFile,
+ 	rtl_uString *pSrcPath, rtl_uString *pSrcName,
+ 	rtl_uString *pDstPath, rtl_uString *pDstName
+@@ -364,7 +364,7 @@ storeError SAL_CALL store_link (
+     @param  pDstName [in] the Destination name
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_symlink (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_symlink (
+ 	storeFileHandle hFile,
+ 	rtl_uString *pSrcPath, rtl_uString *pSrcName,
+ 	rtl_uString *pDstPath, rtl_uString *pDstName
+@@ -379,7 +379,7 @@ storeError SAL_CALL store_symlink (
+     @param  pDstName [in] the Destination name
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_rename (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_rename (
+ 	storeFileHandle hFile,
+ 	rtl_uString *pSrcPath, rtl_uString *pSrcName,
+ 	rtl_uString *pDstPath, rtl_uString *pDstName
+@@ -392,7 +392,7 @@ storeError SAL_CALL store_rename (
+     @param  pName [in] the entry name
+     @return store_E_None upon success
+  */
+-storeError SAL_CALL store_remove (
++storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_remove (
+ 	storeFileHandle hFile,
+ 	rtl_uString    *pPath,
+ 	rtl_uString    *pName
diff --git a/patches/dev300/testing-more-optimizations-ark.diff b/patches/dev300/testing-more-optimizations-ark.diff
index 322a424..53ff5c5 100644
--- a/patches/dev300/testing-more-optimizations-ark.diff
+++ b/patches/dev300/testing-more-optimizations-ark.diff
@@ -987,18 +987,11 @@
  
  
  #ifdef __cplusplus
---- ./solenv/inc/unxlngi6.mk.arkopts~	2008-07-17 11:49:01.750184223 +0200
-+++ ./solenv/inc/unxlngi6.mk	2008-07-17 11:52:19.075048755 +0200
-@@ -60,7 +60,7 @@ JAVA_RUNTIME=-ljava_g
- 
- # architecture dependent flags for the C and C++ compiler that can be changed by
- # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
--ARCH_FLAGS*=-mtune=pentiumpro
-+ARCH_FLAGS*=-march=i686 -mtune=i686
- 
- # name of C++ Compiler
- CXX*=g++
-@@ -75,24 +75,24 @@ CFLAGS+=-fmessage-length=0 -c
+Index: unxlng.mk
+===================================================================
+--- solenv/inc/unxlng.mk	(Revision 276754)
++++ solenv/inc/unxlng.mk	(Arbeitskopie)
+@@ -77,21 +77,21 @@
  
  # flags to enable build with symbols; required for crashdump feature
  .IF "$(ENABLE_SYMBOLS)"=="SMALL"
@@ -1021,14 +1014,10 @@
  # -fpermissive should be removed as soon as possible
 -CFLAGSCXX= -pipe $(ARCH_FLAGS)
 +CFLAGSCXX= -O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -pipe $(ARCH_FLAGS)
- PICSWITCH:=-fpic
  .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
--CFLAGSCXX += -fvisibility-inlines-hidden
-+CFLAGSCXX += -fvisibility-inlines-hidden # -fvisibility=hidden
+ CFLAGSCXX += -fvisibility-inlines-hidden
  .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
- 
- CFLAGS_CREATE_PCH=-x c++-header -I$(INCPCH) -DPRECOMPILED_HEADERS
-@@ -110,13 +110,13 @@ CFLAGSSLOCUIMT=$(PICSWITCH)
+@@ -111,13 +111,13 @@
  # Compiler flags for profiling
  CFLAGSPROF=
  # Compiler flags for debugging
@@ -1037,7 +1026,7 @@
  CFLAGSDBGUTIL=
  # Compiler flags for enabling optimizations
  .IF "$(PRODUCT)"!=""
--CFLAGSOPT=-Os -fno-strict-aliasing		# optimizing for products
+-CFLAGSOPT=$(CDEFAULTOPT) -fno-strict-aliasing		# optimizing for products
 +CFLAGSOPT=-O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -fno-strict-aliasing		# optimizing for products
  .ELSE 	# "$(PRODUCT)"!=""
 -CFLAGSOPT=   							# no optimizing for non products
@@ -1045,7 +1034,7 @@
  .ENDIF	# "$(PRODUCT)"!=""
  # Compiler flags for disabling optimizations
  CFLAGSNOOPT=-O0
-@@ -171,12 +171,12 @@ LINKFLAGSSHLCUI= -shared
+@@ -174,12 +174,12 @@
  
  LINKFLAGSTACK=
  LINKFLAGSPROF=
@@ -1060,6 +1049,19 @@
  LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script
  
  SONAME_SWITCH=-Wl,-h
+Index: unxlngi.mk
+===================================================================
+--- solenv/inc/unxlngi.mk	(Revision 276754)
++++ solenv/inc/unxlngi.mk	(Arbeitskopie)
+@@ -31,7 +31,7 @@
+ 
+ # mk file for Unix Linux Intel (X86) using GCC, please make generic modifications to unxlng.mk
+ CDEFAULTOPT=-Os
+-ARCH_FLAGS*=-mtune=pentiumpro
++ARCH_FLAGS*=-march=i686 -mtune=i686
+ .INCLUDE : unxlng.mk
+ CDEFS+=-DX86
+ DLLPOST=.so
 --- ./store/inc/store/store.h.arkopts~	2008-07-17 11:49:18.057038431 +0200
 +++ ./store/inc/store/store.h	2008-07-17 11:52:19.076064554 +0200
 @@ -46,7 +46,7 @@ typedef void* storeHandle;
diff --git a/patches/dev300/unxlngi6-notune-m60.diff b/patches/dev300/unxlngi6-notune-m60.diff
new file mode 100644
index 0000000..70f1260
--- /dev/null
+++ b/patches/dev300/unxlngi6-notune-m60.diff
@@ -0,0 +1,11 @@
+--- solenv/inc/unxlngi6.mk~	2006-09-04 16:51:53.010718000 +0200
++++ solenv/inc/unxlngi6.mk	2006-09-04 17:05:38.280718000 +0200
+@@ -64,7 +64,7 @@
+ 
+ # architecture dependent flags for the C and C++ compiler that can be changed by
+ # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+-ARCH_FLAGS*=-mtune=pentiumpro
++#ARCH_FLAGS*=-mtune=pentiumpro
+ 
+ # name of C++ Compiler
+ CXX*=g++
diff --git a/patches/dev300/unxlngi6-notune.diff b/patches/dev300/unxlngi6-notune.diff
index 70f1260..f2d932a 100644
--- a/patches/dev300/unxlngi6-notune.diff
+++ b/patches/dev300/unxlngi6-notune.diff
@@ -1,11 +1,13 @@
---- solenv/inc/unxlngi6.mk~	2006-09-04 16:51:53.010718000 +0200
-+++ solenv/inc/unxlngi6.mk	2006-09-04 17:05:38.280718000 +0200
-@@ -64,7 +64,7 @@
+Index: unxlngi.mk
+===================================================================
+--- solenv/inc/unxlngi.mk	(Revision 276754)
++++ solenv/inc/unxlngi.mk	(Arbeitskopie)
+@@ -31,7 +31,7 @@
  
- # architecture dependent flags for the C and C++ compiler that can be changed by
- # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
+ # mk file for Unix Linux Intel (X86) using GCC, please make generic modifications to unxlng.mk
+ CDEFAULTOPT=-Os
 -ARCH_FLAGS*=-mtune=pentiumpro
 +#ARCH_FLAGS*=-mtune=pentiumpro
- 
- # name of C++ Compiler
- CXX*=g++
+ .INCLUDE : unxlng.mk
+ CDEFS+=-DX86
+ DLLPOST=.so


More information about the ooo-build-commit mailing list