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

Doing away with stlport for OOo 2.0



OK.  So I think openoffice.org 2.0 is the correct time to abandon stlport.
The advantages are numerous:
* no patching around STLport build problems
* no Cartesian-product ABI issue with STLport versions vs. GCC versions
* smaller disk and memory footprint
* faster build

OOo already works with GCC's STL (there are a few namespace-shuffling
patches needed, but they're already in the upstream tree).  The only reason
STLport is still used under Linux is to maintain some form of binary
compatibility among UNO components from version to version and across distros.
(STLport is still needed for platforms without GCC 3.3/3.4/4.0, but that's
not important because there's no binary compatibility across platforms anyway.)

This is a questionable endeavor at best, but a new major version is the perfect
time to break compatibility anyway.  Ideally this would be made the default
for Linux upstream and done by all distros (to preserve the illusion of binary
compatibility...).  I'm not sure who to contact about this, but feel free to
forward this anywhere appropriate (somewhere at ooo-build?).

This patch to debian/rules should stop STLport from being used.  Due to the
screwiness of the OOo build system, I'm not actually sure it prevents it
from being *built*.  (Actually, I'm not 100% sure it stops it from being used,
since I don't understand dmake well enough; but that is its purpose.  Perhaps
someone with a slightly better understanding than I could verify this.)

I am currently testing whether it builds successfully, using an
unstable/experimental pbuilder.

  * debian/rules:
    - Stop using stlport at all.  Build --without-stlport4 to use
      GCC's STL instead.
  * debian/control:
    - Rebuild.

diff -ur openoffice.org2-1.9.125.old/debian/rules openoffice.org2-1.9.125/debian/rules
--- openoffice.org2-1.9.125.old/debian/rules	2005-09-13 14:34:21.000000000 -0400
+++ openoffice.org2-1.9.125/debian/rules	2005-09-13 14:13:49.000000000 -0400
@@ -87,7 +87,7 @@
 	DEBHELPER_OPTIONS+= -Nttf-opensymbol
 endif
 
-USE_SYSTEM_STLPORT=y
+USE_SYSTEM_STLPORT=n
 ifeq "$(USE_SYSTEM_STLPORT)" "y"
 	BUILD_DEPS += , libstlport4.6-dev (>= 4.6.2-3)
 	DEV_STL_DEPENDS=, libstlport4.6-dev (>= 4.6.2-3)
@@ -205,6 +205,12 @@
 		 CONFIGURE_FLAGS+= --with-stlport4=$(CURDIR)/stlport4
 endif
 
+# NCN: Build without stlport, using GCC's STL.
+NO_STLPORT=y
+ifeq "$(NO_STLPORT)" "y"
+		 CONFIGURE_FLAGS += --without-stlport4
+endif
+
 USE_SYSTEM_BOOST=y
 ifeq "$(USE_SYSTEM_BOOST)" "y"
 	BUILD_DEPS += , libboost-dev

-- 
Nathanael Nerode  <neroden@twcny.rr.com>

This space intentionally left blank.



Reply to: