Re: Compiling LibreOffice 4.1.2.3 on Solaris
No, I haven't played with this any further. I'm intending to, but I was going to move the compile over to Solaris 11.1, that being obviously a more stable platform. I have no idea if the lack of brackets or UDK_3_0_0 on its own is significant, but doing a quick pvs on other files (/opt/openoffice.org3/program/*, /usr/bin/* and /usr/lib/*.so) it seems that this behaviour is OK for libraries but not binaries: rpcsec.so: libgss.so.1 (SUNW_1.2, SUNWprivate_1.1); libnsl.so.1 (SUNW_0.7, SUNWprivate_1.1); libc.so.1 (SUNW_1.23); rpcsec.so.1; SUNW_1.2; SUNW_1.1; SUNWprivate_1.1; straddr.so: libnsl.so.1 (SUNWprivate_1.1, SYSVABI_1.3); libc.so.1 (SUNW_1.19); straddr.so.2; SUNWprivate_2.1; I'll let you know how I get on though and thanks for your help. Any and all pointers always welcome... Eric On 13/11/2013 11:32, Jan Holesovsky wrote: Hi Eric, Eric Bautsch píše v Pá 01. 11. 2013 v 19:57 +: Yes, the command is pvs: http://docs.oracle.com/cd/E19253-01/816-5165/pvs-1/ Did you get anywhere, or still stuck, please? :-) And the output suggests that the versions are OK: bautsche@cressida $ pvs solver/unxsogi.pro/bin/idlc libm.so.2 (SUNW_1.1); libgcc_s.so.1 (GCC_3.0); libc.so.1 (SUNWprivate_1.1, SUNW_1.1, SUNW_0.9, SUNW_0.7, SYSVABI_1.3); libuno_sal.so.3 (LIBO_UDK_4.1, UDK_3.6, LIBO_UDK_4.0, PRIVATE_1.1, UDK_3 _0_0); bautsche@cressida $ pvs solver/unxsogi.pro/lib/libuno_sal.so.3 libgcc_s.so.1 (GCC_3.0); libsocket.so.1 (SUNW_1.1, SUNW_0.7); libnsl.so.1 (SUNW_0.7); libm.so.2 (SUNW_1.1); libpthread.so.1 (SUNW_1.1, SUNW_1.2, SUNW_0.9); libuno_sal.so.3; UDK_3_0_0; [...] Knowing nothing about Solaris - I wonder why the other libs have eg. (SUNW_1.1) or (GCC_3.0), but libuno_sal.so.3 has nothing like that, instead the UDK_3_0_0 etc. are each on a separate line as if it was a library itself, or what? Could that be the problem? Regards, Kendy -- / . Eric A. Bautsch /-- __ _____ / // / / (_/(___(__/ email: eric.baut...@pobox.com smime.p7s Description: S/MIME Cryptographic Signature ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: Compiling LibreOffice 4.1.2.3 on Solaris
/2013 07:51, Stephan Bergmann wrote: On 10/31/2013 01:25 PM, Eric Bautsch wrote: I'm trying to compile LibreOffice 4.1.2.3 on Solaris 12 (build 26, currently). Note: don't get excited, I'm doing this in my spare time and Oracle are in no way endorsing, supporting, or anything else'ing my efforts. I've been using this thread for assistance and it's been a great help: http://comments.gmane.org/gmane.comp.documentfoundation.libreoffice.devel/51422 Note that traditionally OOo had been building/working very well on Solaris, but these days there's only very little and seemingly occasional initiative to keep that up. Therefore, Solaris-specific code in LO likely keeps rotting over time. At runtime, the idlc executable needs the libuno_sal.so.3 dynamic library to resolve the rtl_string_new symbol (and others). Therefore, idlc contains an RPATH (see readelf -d solver/unxsogi.pro/bin/idlc) so that it finds it *in an installation* ($ORIGIN/../../ure-link/lib, where in an installation idlc is in sdk/bin/ and libuno_sal.so.3 is in ure-link/lib/). However, idlc is also called during the build, where idlc is in solver/unxsogi.pro/bin/ and libuno_sal.so.3 is in solver/unxsogi.pro/lib/. To make that work, idlc is called with an LD_LIBRARY_PATH that contains solver/unxsogi.pro/lib during the build. This is taken care of towards the end of solenv/gbuild/platform/com_GCC_defs.mk (gb_Helper_set_ld_path) and should work for Solaris. To see what's going wrong, run make VERBOSE=t to see the command line of how exactly idlc is called to [build IDL] udkapi/com/sun/star/idl. Stephan I'm currently struggling with getting a working idlc compiled. Here's what happens: [build IDL] udkapi/com/sun/star/idl ld.so.1: idlc: fatal: relocation error: file /export/home/bautsche/libre-office/libreoffice-4.1.2.3/solver/unxsogi.pro/bin/idlc: symbol rtl_string_new: referenced symbol not found /bin/sh: line 1: 8411: Killed make[1]: *** [/export/home/bautsche/libre-office/libreoffice-4.1.2.3/workdir/unxsogi.pro/UnoApiPartTarget/udkapi/com/sun/star/idl.done] Killed gmake: *** [build] Error 2 bautsche@cressida $ ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice -- / . Eric A. Bautsch /-- __ _____ / // / / (_/(___(__/ email: eric.baut...@pobox.com smime.p7s Description: S/MIME Cryptographic Signature ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: Compiling LibreOffice 4.1.2.3 on Solaris
Yes, the command is pvs: http://docs.oracle.com/cd/E19253-01/816-5165/pvs-1/ And the output suggests that the versions are OK: bautsche@cressida $ pvs solver/unxsogi.pro/bin/idlc libm.so.2 (SUNW_1.1); libgcc_s.so.1 (GCC_3.0); libc.so.1 (SUNWprivate_1.1, SUNW_1.1, SUNW_0.9, SUNW_0.7, SYSVABI_1.3); libuno_sal.so.3 (LIBO_UDK_4.1, UDK_3.6, LIBO_UDK_4.0, PRIVATE_1.1, UDK_3 _0_0); bautsche@cressida $ pvs solver/unxsogi.pro/lib/libuno_sal.so.3 libgcc_s.so.1 (GCC_3.0); libsocket.so.1 (SUNW_1.1, SUNW_0.7); libnsl.so.1 (SUNW_0.7); libm.so.2 (SUNW_1.1); libpthread.so.1 (SUNW_1.1, SUNW_1.2, SUNW_0.9); libuno_sal.so.3; UDK_3_0_0; UDK_3.1; UDK_3.2; UDK_3.3; UDK_3.4; UDK_3.5; UDK_3.6; UDK_3.7; UDK_3.8; UDK_3.9; UDK_3.10; UDK_3.11; LIBO_UDK_3.5; LIBO_UDK_3.6; LIBO_UDK_4.0; LIBO_UDK_4.1; PRIVATE_1.0; PRIVATE_1.1; PRIVATE_1.2; PRIVATE_textenc.1; PRIVATE_file.1; GLIBCXX_3.4; bautsche@cressida $ On 01/11/2013 15:22, Stephan Bergmann wrote: On 11/01/2013 03:48 PM, Eric Bautsch wrote: Output from LD_DEBUG=all ldd -r solver/unxsogi.pro/bin/idlc log 21 attached. Unfortunately doesn't give a clue why the loader refuses to pick the symobls from libuno_sal.so.3. The last idea I have is that there's something wrong with the symbol versions. 02205: file=libuno_sal.so.3; needed by solver/unxsogi.pro/bin/idlc 02205: 02205: find object=libuno_sal.so.3; searching 02205: search path=$ORIGIN/../../ure-link/lib:/export/home/bautsche/libre-office/libreoffice-4.1.2.3/solver/unxsogi.pro/lib (RUNPATH/RPATH from file solver/unxsogi.pro/bin/idlc) 02205: trying path=/export/home/bautsche/libre-office/libreoffice-4.1.2.3/solver/unxsogi.pro/bin/../../ure-link/lib/libuno_sal.so.3 02205: trying path=/export/home/bautsche/libre-office/libreoffice-4.1.2.3/solver/unxsogi.pro/lib/libuno_sal.so.3 libuno_sal.so.3 = /export/home/bautsche/libre-office/libreoffice-4.1.2.3/solver/unxsogi.pro/lib/libuno_sal.so.3 02205: file=/export/home/bautsche/libre-office/libreoffice-4.1.2.3/solver/unxsogi.pro/lib/libuno_sal.so.3 [ ELF ]; generating link map 02205: addr: 0xfe4e4000 size: 0x4e38c 02205: lmid: BASE lmco: 0x10 02205: 02205: version needed processing: file=solver/unxsogi.pro/bin/idlc 02205: file version 02205: libuno_sal.so.3 LIBO_UDK_4.1 02205: libuno_sal.so.3 UDK_3.6 02205: libuno_sal.so.3 LIBO_UDK_4.0 02205: libuno_sal.so.3 PRIVATE_1.1 02205: libuno_sal.so.3 UDK_3_0_0 indicates that idlc does expect to see versioned symbols from libuno_sal.so.3, but I forgot what the Solaris command is to see what versions the symbols exported/required by an object should have (psv? pvs? something like that), and whether there's an LD_DEBUG argument in addition to all on Solaris to make it output information about symbol resolution version mismatch. Stephan ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice -- / . Eric A. Bautsch /-- __ _____ / // / / (_/(___(__/ email: eric.baut...@pobox.com smime.p7s Description: S/MIME Cryptographic Signature ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Compiling LibreOffice 4.1.2.3 on Solaris
Hi All. I'm trying to compile LibreOffice 4.1.2.3 on Solaris 12 (build 26, currently). Note: don't get excited, I'm doing this in my spare time and Oracle are in no way endorsing, supporting, or anything else'ing my efforts. I've been using this thread for assistance and it's been a great help: http://comments.gmane.org/gmane.comp.documentfoundation.libreoffice.devel/51422 I'm currently struggling with getting a working idlc compiled. Here's what happens: [build IDL] udkapi/com/sun/star/idl ld.so.1: idlc: fatal: relocation error: file /export/home/bautsche/libre-office/libreoffice-4.1.2.3/solver/unxsogi.pro/bin/idlc: symbol rtl_string_new: referenced symbol not found /bin/sh: line 1: 8411: Killed make[1]: *** [/export/home/bautsche/libre-office/libreoffice-4.1.2.3/workdir/unxsogi.pro/UnoApiPartTarget/udkapi/com/sun/star/idl.done] Killed gmake: *** [build] Error 2 bautsche@cressida $ I think rtl_string_new is defined in include/rtl/string.h, but I can't see where the function is actually coming from (running a find -exec grep across the code). Here's the compile command for idlc: S=/export/home/bautsche/libre-office/libreoffice-4.1.2.3 O=$S/solver/unxsogi.pro W=$S/workdir/unxsogi.pro mkdir -p $W/LinkTarget/Executable/ g++ '-Wl,-rpath,$ORIGIN/../../ure-link/lib' -Wl,-rpath,$O/lib -Wl,-rpath-link,$O/lib -Wl,-rpath-link,/lib:/usr/lib -Wl,-z,combreloc -L$O/lib -L/usr/lib -L/usr/local/bin -L/usr/dt/lib -L/usr/openwin/lib -Wl,--hash-style=gnu -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo -Wl,-Bsymbolic-functions -Wl,-O1 $W/CxxObject/idlc/source/idlcmain.o $W/CxxObject/idlc/source/idlc.o $W/CxxObject/idlc/source/idlccompile.o $W/CxxObject/idlc/source/idlcproduce.o $W/CxxObject/idlc/source/errorhandler.o $W/CxxObject/idlc/source/options.o $W/CxxObject/idlc/source/fehelper.o $W/CxxObject/idlc/source/astdeclaration.o $W/CxxObject/idlc/source/astscope.o $W/CxxObject/idlc/source/aststack.o $W/CxxObject/idlc/source/astdump.o $W/CxxObject/idlc/source/astinterface.o $W/CxxObject/idlc/source/aststruct.o $W/CxxObject/idlc/source/aststructinstance.o $W/CxxObject/idlc/source/astoperation.o $W/CxxObject/idlc/source/astconstant.o $W/CxxObject/idlc/source/astenum.o $W/CxxObject/idlc/source/astarray.o $W/CxxObject/idlc/source/astunion.o $W/CxxObject/idlc/source/astexpression.o $W/CxxObject/idlc/source/astservice.o $W/GenCxxObject/YaccTarget/idlc/source/parser.o $W/GenCxxObject/LexTarget/idlc/source/scanner.o -Wl,--start-group -Wl,--end-group -Wl,--no-as-needed -lm -lnsl -lsocket -lreglo -luno_sal -luno_salhelpergcc3 -o $W/LinkTarget/Executable/idlc I have attached the solenv/gbuild/platform/solaris.mk I am using. Any help would be greatly appreciated. Thanks a lot. Ciao, Eric P.S. If this isn't known yet, boost/boost.6139.clang.patch needs a dos2unix running on it. # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- # # This file is part of the LibreOffice project. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This file incorporates work covered by the following license notice: # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed # with this work for additional information regarding copyright # ownership. The ASF licenses this file to you under the Apache # License, Version 2.0 (the License); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.apache.org/licenses/LICENSE-2.0 . # gb_DEVINSTALLROOT := $(DEVINSTALLDIR)/opt gb_PROGRAMDIRNAME := program include $(GBUILDDIR)/platform/com_GCC_defs.mk gb_MKTEMP := mktemp -t gbuild.XX ifneq ($(origin AR),default) gb_AR := $(AR) endif # use CC/CXX if they are nondefaults ifneq ($(origin CC),default) gb_CC := $(CC) gb_GCCP := $(CC) endif ifneq ($(origin CXX),default) gb_CXX := $(CXX) endif ifeq ($(CPUNAME),SPARC) gb_CPUDEFS := -D__sparcv8plus endif gb_OSDEFS := \ -D$(OS) \ -DSYSV \ -DSUN \ -DSUN4 \ -D_REENTRANT \ -D_POSIX_PTHREAD_SEMANTICS \ -D_PTHREADS \ -DUNIX \ -DUNX \ $(PTHREAD_CFLAGS) \ gb_CFLAGS := \ $(gb_CFLAGS_COMMON) \ -fPIC \ -Wdeclaration-after-statement \ -Wshadow \ gb_CXXFLAGS := \ $(gb_CXXFLAGS_COMMON) \ -fPIC \ -Wshadow \ -Woverloaded-virtual \ -Wno-non-virtual-dtor \ # enable debug STL ifeq ($(gb_ENABLE_DBGUTIL),$(true)) gb_COMPILERDEFS += \ -D_GLIBCXX_DEBUG \ endif gb_CCVER := $(shell $(gb_CC) -dumpversion | $(gb_AWK) -F. -- '{ print $$1*1+$$2*100+$$3 }') gb_GccLess460 := $(shell expr $(gb_CCVER) \