Apache OpenOffice (AOO) Bugzilla – Issue 36236
linux sparc bridges
Last modified: 2004-12-10 04:25:40 UTC
python upgrade to 2 requires this test: BUILD - build m56 - clean solver from any old python stuff (especially ...\lib\python and ..\inc\python and ...\inc\pyversion.mk !!!), otherwise you may get strange results - build the python module. The python build process should create a shared library on every platform. Please ensure, that the variables PY_FULL_DLL_NAME in the pyversion.mk is correct for your platform and PYTHONLIB contains the correct linkage statement. This is later used in scp2 and pyuno module. For linux x86, the name is libpython2.3.so.1.0. deliver python module (make sure, that your shared lib name is contained in the d.lst also). - build and deliver pyuno - build testtools for your platform ( note: on win32-tcsh, you need to setenv SOLAR_JAVA "", but that is not relavant for this test). - switch to testtools/source/bridetest/pyuno and type 'dmake runtest' - switch to scp2 and rebuild + deliver it. ============================================ Using SRC680_m58 I get to here switch to testtools/source/bridetest/pyuno and type 'dmake runtest' there is a known problem with the bridges code for linux sparc (it builds but does not pass tests) Backtrace: (gdb) run Starting program: /home/jim/680/solver/680/unxlngs.pro/bin/python main.py -env:UNO_TYPES=pyuno_regcomp.rdb -env:UNO_SERVICES=pyuno_regcomp.rdb[Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 21122)] > sizeof(AlignSize_Impl) = 16 > sizeof(M) = 8 > sizeof(N) = 12 > sizeof(N2) = 12 > sizeof(O) = 24 > sizeof(D) = 8 > sizeof(C1) = 2 > sizeof(C2) = 8 > sizeof(C3) = 24 > sizeof(C4) = 40 > sizeof(C5) = 56 > sizeof(C6) = 72 > sizeof(O2) = 32 > sizeof(Char3) = 3 > sizeof(P) = 24 > sizeof(second) = 4 Thread: 1 :> inserting new mapping: ;uno[8b250];gcc3[8bd08] Thread: 1 :> inserting new mapping: ;gcc3[8bd08];uno[8b250] Program received signal SIGILL, Illegal instruction. [Switching to Thread 16384 (LWP 21122)] 0x70de526c in callVirtualMethod (pAdjustedThisPtr=0x70e96fcc, nVtableIndex=4, pRegisterReturn=0xefffdaa8, eReturnType=typelib_TypeClass_VOID, pStackLongs=0xefffd8d0, nStackLongs=6) at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx:103 103 __asm__ ( Current language: auto; currently c++ (gdb) bt #0 0x70de526c in callVirtualMethod (pAdjustedThisPtr=0x70e96fcc, nVtableIndex=4, pRegisterReturn=0xefffdaa8, eReturnType=typelib_TypeClass_VOID, pStackLongs=0xefffd8d0, nStackLongs=6) at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx:103 #1 0x70de5c74 in cpp_call (pThis=0xb81c8, aVtableSlot= {offset = 0, index = 4}, pReturnTypeRef=0x2d810, nParams=3, pParams=0xb5b70, pUnoReturn=0xefffdaa8, pUnoArgs=0xefffda90, ppUnoExc=0xefffdab0) at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx:425 #2 0x70de65c8 in bridges::cpp_uno::shared::UnoInterfaceProxy::dispatch (pUnoI=0xb81c8, pMemberDescr=0xb7d98, pReturn=0xefffdaa8, pArgs=0xefffda90, ppException=0xefffdab0) at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx:594 #3 0x70d90e3c in component_getFactory () from /home/jim/680/solver/680/unxlngs.pro/lib/reflection.uno.so #4 0x70d110d8 in component_getDescriptionFunc () from /home/jim/680/solver/680/unxlngs.pro/lib/invocation.uno.so ---Type <return> to continue, or q <return> to quit--- #5 0x705b9f9c in pyuno::PyUNO_callable_call () from /home/jim/680/solver/680/unxlngs.pro/lib/libpyuno.so #6 0x70059f48 in PyObject_Call (func=0x70503090, arg=0x70518698, kw=0x0) at Objects/abstract.c:1755 #7 0x700c4c54 in do_call (func=0x70503090, pp_stack=0xefffde90, na=3, nk=1884391064) at Python/ceval.c:3644 #8 0x700c4974 in call_function (pp_stack=0xefffde90, oparg=3) at Python/ceval.c:3460 #9 0x700c1e90 in eval_frame (f=0x524f8) at Python/ceval.c:2116 #10 0x700c4b44 in fast_function (func=0x7050c020, pp_stack=0x3, n=4, na=139792, nk=337144) at Python/ceval.c:3518 #11 0x700c4994 in call_function (pp_stack=0xefffe018, oparg=4) at Python/ceval.c:3458 #12 0x700c1e90 in eval_frame (f=0x558f8) at Python/ceval.c:2116 #13 0x700c2d0c in PyEval_EvalCodeEx (co=0x7050cba0, globals=0x4, locals=0x700beae8, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0xffffffff) at Python/ceval.c:2663 #14 0x700bf2e8 in PyEval_EvalCode (co=0x7050cba0, globals=0x704d89c0, locals=0x0) at Python/ceval.c:537 #15 0x700f7464 in run_node (n=0x0, filename=0x704d89c0 "", globals=0x704d89c0, locals=0x704d89c0, flags=0x704d89c0) ---Type <return> to continue, or q <return> to quit--- at Python/pythonrun.c:1267 #16 0x700f68d4 in PyRun_SimpleFileExFlags (fp=0x22050, filename=0xefffe6f8 "main.py", closeit=1, flags=0xefffe274) at Python/pythonrun.c:862 #17 0x700fed5c in Py_Main (argc=4, argv=0xefffe344) at Modules/main.c:415 #18 0x7038cdac in __libc_start_main () from /lib/libc.so.6 #19 0x000105d4 in _start () #20 0x000105d4 in _start () Previous frame identical to this frame (corrupt stack?) (gdb)
Confirm correct building of python, pyuno: pyversion.mk # when you want to change the python version, you must update the d.ls # in the python project accordingly !!! PYMAJOR=2 PYMINOR=3 PYMICRO=4 PYVERSION=$(PYMAJOR).$(PYMINOR).$(PYMICRO) .IF "$(GUI)" == "UNX" PY_FULL_DLL_NAME=libpython$(PYMAJOR).$(PYMINOR).so.1.0 PYTHONLIB=-lpython$(PYMAJOR).$(PYMINOR) .ELSE PY_FULL_DLL_NAME=python$(PYMAJOR)$(PYMINOR).dll PYTHONLIB=python$(PYMAJOR)$(PYMINOR).lib .ENDIF jim@sun:~/680/solver/680/unxlngs.pro/lib$ ls -la libpy* lrwxrwxrwx 1 jim jim 19 2004-10-28 12:10 libpython2.3.so -> libpython2.3.so.1.0 -rwxr-xr-x 1 jim jim 3756570 2004-10-28 11:57 libpython2.3.so.1.0 -rwxr-xr-x 1 jim jim 206032 2004-10-28 12:11 libpyuno.so jim@sun:~/680/solver/680/unxlngs.pro/lib$
set target.
Hi Jim, is there another issue describing the crash in the cppu tests (or when starting the bridgetest_inprocess script in the output of testtools) ? If not, please attach a stack trace to this issue. Bye, Joerg
Joerg, the testcppu results are at issue 30219 issue 28110 issue 24507 and some attachments to those. I am sorry the bridges code is a problem because I have just copy and pasted with no idea what I am doing. The bridgetest_inprocess reports as follows: (gdb) run Starting program: /home/jim/680/solver/680/unxlngs.pro/bin/uno -ro uno_services.rdb -ro uno_types.rdb -s com.sun.star.test.bridge.BridgeTest -- com.sun.star.test.bridge.CppTestObject (no debugging symbols found)...[Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 19160)] > sizeof(AlignSize_Impl) = 16 > sizeof(M) = 8 > sizeof(N) = 12 > sizeof(N2) = 12 > sizeof(O) = 24 > sizeof(D) = 8 > sizeof(C1) = 2 > sizeof(C2) = 8 > sizeof(C3) = 24 > sizeof(C4) = 40 > sizeof(C5) = 56 > sizeof(C6) = 72 > sizeof(O2) = 32 > sizeof(Char3) = 3 > sizeof(P) = 24 > sizeof(second) = 4 > error: cannot get service instance "com.sun.star.test.bridge.BridgeTest"! > dying... Program exited with code 01. (gdb)
Hi, Jim gave me a chance for a small debug session on his machine. I have the impression, that the fix fo #i12721# is missing for linux sparc. testcppu crashes Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 24363)] 0x00000000 in ?? () (gdb) where #0 0x00000000 in ?? () #1 0x0003941c in checkInvalidInterfaceQuery (xObj=@0xefffdf08) at /home/jim/680/cppu/test/test_di.cxx:653 #2 0x00039618 in perform_test (xObj=@0xefffdf08, xDummy=@0xefffdf28) at /home/jim/680/cppu/test/test_di.cxx:676 #3 0x00039b84 in test_CppBridge () at /home/jim/680/cppu/test/test_di.cxx:747 #4 0x0002881c in main (argc=1, argv=0xefffe0b4) at /home/jim/680/cppu/test/testcppu.cxx:1143 after a complex object (an Any) has been returned. Unfortunately, I don't have enough assembler knowledge to add the patch for linux sparc. Anyone else out there, who could propose a patch ? Bye, Joerg
cleanup linux sparc bridges issues in issuezilla. also need follow up joergs comment about #12721 *** This issue has been marked as a duplicate of 37423 ***
fixed in cws_src680_unxlngs01