[Libreoffice] build failure loading pythonloader.uno.so

Thomas Klausner wiz at NetBSD.org
Sat Oct 23 16:26:46 PDT 2010


Hi Caolan!

On Fri, Oct 22, 2010 at 02:44:47PM +0100, Caolán McNamara wrote:
> Here's where porting gets hard unfortunately. 
> 
> This is just a generic error, and from an exception. What might help you
> out there is find exactly where the exceptions is being thrown and see
> what the exact error is at the throw point. Which might be rather
> painful with exceptions being caught, and something else thrown instead.
> 
> e.g. adding the attached patch
> and export GDBREGCOMPTRACE=1
> you get the picture, even if I've typos etc in this.
> 
> The other (horror possibility) is that your uno bridge isn't working at
> all. Running the basic part of the uno bridge test might be already
> possible for you if you try...
> 
> cd testtools/source/bridgetest
> dmake

I used "build" with the variable set for my original error and got:

..../build/libreoffice-3.2.99.2/solenv/bin/gdbtrycatchtrace:2: Error in sourced command file:
Function "__cxa_throw" not defined.

and further on

Program received signal SIGSEGV, Segmentation fault.
0x00007f7ffbc738fa in ___lwp_park50 () from /usr/lib/libc.so.12
(gdb) bt
#0  0x00007f7ffbc738fa in ___lwp_park50 () from /usr/lib/libc.so.12
#1  0x00007f7ffc4089d0 in pthread_cond_timedwait (cond=0x7f7ffdbe6760, mutex=0x7f7ffdbe64e0, abstime=0x7f7ffa3ffd70) at /archive/cvs/src/lib/libpthread/pthread_cond.c:148
#2  0x00007f7ffd84f3ce in rtl_cache_wsupdate_all () from ..../build/libreoffice-3.2.99.2/solver/330/unxbsdx3.pro/lib/libuno_sal.so.3
#3  0x00007f7ffc40aec9 in pthread__create_tramp (cookie=<value optimized out>) at /archive/cvs/src/lib/libpthread/pthread.c:471
#4  0x00007f7ffbc73910 in ___lwp_park50 () from /usr/lib/libc.so.12
#5  0x00010102464c457f in ?? ()
#6  0x0000000000000000 in ?? ()

Then I tried build in bridgetest as suggested above:
Starting program: ..../build/libreoffice-3.2.99.2/solver/330/unxbsdx3.pro/bin/regcomp -register -r ../../unxbsdx3.pro/misc/bridgetest/bootstrap.rdb -c javaloader.uno.so -c javavm.uno.so -c stocservices.uno.so
javaloader.uno.so
javavm.uno.so
stocservices.uno.so

Program received signal SIGSEGV, Segmentation fault.
0x00007f7ffbc738fa in ___lwp_park50 () from /usr/lib/libc.so.12
(gdb) bt
#0  0x00007f7ffbc738fa in ___lwp_park50 () from /usr/lib/libc.so.12
#1  0x00007f7ffc4089d0 in pthread_cond_timedwait (cond=0x7f7ffdbe6760, mutex=0x7f7ffdbe64e0, abstime=0x7f7ffa3ffd70) at /archive/cvs/src/lib/libpthread/pthread_cond.c:148
#2  0x00007f7ffd84f3ce in rtl_cache_wsupdate_all () from ..../build/libreoffice-3.2.99.2/solver/330/unxbsdx3.pro/lib/libuno_sal.so.3
#3  0x00007f7ffc40aec9 in pthread__create_tramp (cookie=<value optimized out>) at /archive/cvs/src/lib/libpthread/pthread.c:471
#4  0x00007f7ffbc73910 in ___lwp_park50 () from /usr/lib/libc.so.12
#5  0x00010102464c457f in ?? ()
#6  0x0000000000000000 in ?? ()

Perhaps some introductory questions:
What is uno?
What is this registering step doing?
What parts of the tree affect this or could cause this?
(What needs to be rebuilt on changes?)

Thanks,
 Thomas

P.S.: Patch used is attached.
-------------- next part --------------
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index 8d29cfb..ecb460e 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -1048,19 +1048,24 @@ MAXPROCESS!:=1
 # allow seperate handling
 EXTMAXPROCESS*=$(MAXPROCESS)
 
+
+GDBTRACE=gdb --command=$(SOLARENV)/bin/gdbtrycatchtrace --args
+.IF "$(DEBUGCPPUNIT)" != ""
+GDBCPPUNITTRACE=$(GDBTRACE)
+.ENDIF
+.IF "$(GDBREGCOMPTRACE)" != ""
+GDBREGCOMPTRACE=$(GDBTRACE)
+.ENDIF
+
 IDLC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/idlc
 REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regmerge
 REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcompare
-REGCOMP*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcomp
+REGCOMP*=$(AUGMENT_LIBRARY_PATH) $(GDBREGCOMPTRACE) $(SOLARBINDIR)/regcomp
 CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker
 JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker
 RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker
 CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker
 
-.IF "$(DEBUGCPPUNIT)" != ""
-GDBCPPUNITTRACE=gdb --command=$(SOLARENV)/bin/gdbtrycatchtrace --args
-.ENDIF
-
 CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBCPPUNITTRACE) $(SOLARBINDIR)/cppunittester
 HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex
 LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex


More information about the LibreOffice mailing list