openoffice-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Pyhalov <...@rsu.ru>
Subject Building OpenOffice on illumos with gcc
Date Fri, 01 Aug 2014 15:27:27 GMT
Hello.
I've just integrated OpenOffice component into OpenIndiana /hipster 
illumos distribution. I'd like to share some patches and to ask if they 
could be converted to bug reports, feature requests and which of them 
can be integrated.

OpenIndiana distribution tries to be compatible with Solaris 11. 
However, there are several distinctions, the main one is system 
compiler. We use gcc (4.8) with illumos (former Sun Solaris) linker 
instead of Sun Studio.

The work I've made was based on earlier work of  Apostolos Syropoulos, 
which he described here: 
https://asyropoulos.wordpress.com/2014/02/05/compiling-openoffice4/   .

The full component is available here: 
https://github.com/OpenIndiana/oi-userland/tree/oi/hipster/components/openoffice/openoffice

.
And patches are in "patches" subdirectory: 
https://github.com/OpenIndiana/oi-userland/tree/oi/hipster/components/openoffice/openoffice/patches

.

I had to make about 20 changes.

01.use-illumos-ld.patch
OpenOffice configure script doesn't like illumos ld and GCC on Solaris, 
so I relaxed this restriction.

02.use-gcc.patch
Patches to main solenv/* make files are mostly taken from Apostolos blog 
(perhaps, with some corrections) and IIRC are based on Linux makefiles. 
They are necessary to introduce Solaris/GCC platform.

03.g++-includes.patch
Our boost live in /usr/g++, so we have to teach OpenOffice to search it 
there. We can't use CPPFLAGS, because this breaks icu compilation. It 
would be perfect if we can provide boost path with configure switch.

04.gmake-j.patch
dmake is supposed to call gmake in several cases. But sometimes it calls 
dmake or make and it doesn't like "-j" flags. Don't know why it happens. 
So I just had to remove "-j" flags.

05.visibility.patch
Without this patch some symbols are hidden during sc compilation.

06.ignore_mapfiles.patch
Some mapfiles introduce symbols which are not present in OpenIndiana.

07.cstring.patch
Missing <cstring> includes.

08.adsyms.awk.patch
Complements 06.ignore_mapfiles.patch. _ZTI* symbols are not present in 
result libraries.

09.libxmlsec-ldflags.patch
LDFLAGS are not passed during libxmlsec build

10.xinerama.patch
Two issues - 1) saldisp defines MAXFRAMEBUFFERS  only for XSUN.
2) neither USE_XINERAMA_XORG nor USE_XINERAMA_XSUN are defined.

11.wmadaptor-gcc48.patch
It seems just gcc 4.8 doesn't like &const_cast<char*>(pText) construction.

12.undefine-macroses.patch
Some symbols used by OpenOffice are defined in our headers. Undefine them.

13.remove-studio-specific.patch
Studio flags are unconditionally passed to the compiler. Fix this.

14.webdav-apr.patch
On OpenIndiana we have /usr/apr/include, not /usr/include/apr. Also 
runpaths for APR and APR-UTIL are missing. Perhaps, adding some switch 
to set apr/apr-util runpath and include <header.h> instead of 
<apr/header.h> would help here.

15.icu.patch (in fact, patch to patch :))
There are two issues.

1) in uperf.cpp _XOPEN_SOURCE_EXTENDED is defined. This hides some 
symbols on Solaris/illumos. So, we don't receive _XPG6 and get an error
"Compiler or options invalid for pre-UNIX 03 X/Open applications \
         and pre-2001 POSIX applications"
There's no need to define this guard on illumos.

2) We should add runpath to binaries, else compiling icu is linked to 
system icu in /usr/lib (compiled with Studio) and we receive binaries 
which are linked to both Studio and GCC C++ runtime simultaneously.

16.lstdc++.patch
Binaries are unconditionally linked to lCstd on Solaris. Fix this.

17.nss.patch
OpenOffice has hardcoded paths for nss libraries and headers. Set paths 
to our paths. One more time when having configure switch is desirable.

18.sal_osl_unx.patch
1) One more define supposing that the only Solaris compiler is Studio
2) We (as MACOSX) also have posix_madvise (just cut&paste Apostolos' 
change, don't know, why usual madvise fails to work, perhaps, missing 
headers).

Post-install processing:

bootstraprc has incorrect UserInstallation setting and tries to write 
user configs to installation directory (fix was taken from FreeBSD 
port).  Alsoe some binaries have incorrect runpaths. Fix this.

-- 
Best regards,
Alexander Pyhalov,
system administrator of Computer Center of Southern Federal University

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Mime
View raw message