Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | linux sparc UNO Changes for Multiple-Inheritance Interface Types | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | porting | Reporter: | sparcmoz <sparcmoz> | ||||||||||
Component: | code | Assignee: | sparcmoz <sparcmoz> | ||||||||||
Status: | CLOSED DUPLICATE | QA Contact: | issues@porting <issues> | ||||||||||
Severity: | Trivial | ||||||||||||
Priority: | P3 | CC: | bazik, issues, sander_traveling, stephan.bergmann.secondary | ||||||||||
Version: | 680 | ||||||||||||
Target Milestone: | OOo 2.0 | ||||||||||||
Hardware: | Sun | ||||||||||||
OS: | Linux, all | ||||||||||||
Issue Type: | TASK | Latest Confirmation in: | --- | ||||||||||
Developer Difficulty: | --- | ||||||||||||
Issue Depends on: | 30219 | ||||||||||||
Issue Blocks: | 24507 | ||||||||||||
Attachments: |
|
Description
sparcmoz
2004-04-20 20:01:15 UTC
This issue fortrcking linux sparc UNO Changes for Multiple-Inheritance Interface Types bazik@gentoo.org is away for a while but we shall cc to him bazik@gentoo.org is away for a while but we shall cc to him I have done some tidyup on the bridges code. Attached is a diff between 645 bridges (that works) and my 680 bridges (that segfaults in testcppu). Also a diff from the cvs to my latest Created attachment 14746 [details]
diff from 645 to 680 latest
Created attachment 14747 [details]
diff from cvs to my latest 680
Created attachment 15399 [details]
some more editing, diff to SRC680_m39
Created attachment 15400 [details]
diff against 645 (includes changes in previous attachment)
Some little progress. (a) the patches attached here (bridges_2405.diff) allow the bridges code to run. I put extensive traces in the bridges code and can see when it is called from cpputest there is looping through the codeSnippets and all the other functions run and return values succesfully, (but I do not know if they are valid). So I will commit those patches so there is a common base for further testing. (b) two segfaults have been noticed in cpputest. the problem is these crash with no stacktrace - just 0x0000. Extensive tracing again has revealed the following issues. (1) in cppu/test/test_di.cxx there is a segfault at checkInvalidInterfaceQuery when it is called from perform_test. The offending code is here: Any aRet( xObj->queryInterface( ::getCppuType( (const lang::IllegalArgumentException *)0 ) ) ); I have been unable to trace this further in gdb or with printf statements as it appears to call into idl generated code which I cannot trace, or such as Reference.h ?? (2) If I comment out that call to checkInvalidInterfaceQuery from perform_test, then execution proceeds and runs through bridges code snippets and other bridges code until it will crash in test_di.cxx function performTest (no underscore in this one). The offending code is at xLBT->setValues( aSetData.Bool, aSetData.Char, aSetData.Byte, aSetData.Short, aSetData.UShort, aSetData.Long, aSetData.ULong, aSetData.Hyper, aSetData.UHyper, aSetData.Float, aSetData.Double, aSetData.Enum, aSetData.String, aSetData.Interface, aSetData.Any, aSetData.Sequence, aSetData ); whats the status of this in ooo20040620? sparcmoz-->svesik: The patches attached to this issue (bridges_2405.diff) have been committed to ooo20040620. This code compiles and runs OK, by inserting traces I can see it loops through the bridges code and returns when called from testcppu. Further progress with debugging is blocked by a segfault in testcppu see IZ 30219. I have built this code by copy and paste from other platforms plus assembler provided by sb, but I do not have the technical know-how to complete this alone. I have continued to build 680 from cvs up-to-date and the setup installer runs until it hits uno bridges code where it will crash. This uno problem also prevents building setup2 with java enabled. Currently building in cws_src680_ooo64bit02 Now I got a better backtrace, any comments would be appreciated. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 4080)] 0x74a2bd34 in cpp_mediate (nFunctionIndex=1, nVtableOffset=-268444272, pCallStack=0x0, pRegisterReturn=0xefffdd80) at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx:290 290 = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy( Current language: auto; currently c++ (gdb) list 285 286 // pCallStack: this, params 287 // eventual [ret*] lies at pCallStack -1 288 // so count down pCallStack by one to keep it simple 289 bridges::cpp_uno::shared::CppInterfaceProxy * pCppI 290 = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy( 291 static_cast< char * >(*pCallStack) - nVtableOffset); 292 if ((nFunctionIndex & 0x80000000) != 0) { 293 nFunctionIndex &= 0x7FFFFFFF; 294 --pCallStack; (gdb) bt #0 0x74a2bd34 in cpp_mediate (nFunctionIndex=1, nVtableOffset=-268444272, pCallStack=0x0, pRegisterReturn=0xefffdd80) at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx:290 #1 0x74a2c550 in cpp_vtable_call(long, long, void**) (nFunctionIndex=1, nVtableOffset=-268444272, pCallStack=0x0) at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx:420 #2 0x70c213d4 in cppu::throwException(com::sun::star::uno::Any const&) () from ./libcppuhelpergcc3.so.3 #3 0x70bb124c in ucbhelper::cancelCommandExecution(com::sun::star::ucb::IOErrorCode, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandProcessor> const&) () from ./libucbhelper3gcc3.so #4 0x74a02fbc in component_getFactory () from ./libucpfile1.so #5 0x749e5b98 in component_getFactory () from ./libucpfile1.so #6 0x749c8844 in component_getFactory () from ./libucpfile1.so #7 0x70b6d230 in ucb::Content_Impl::executeCommand(com::sun::star::ucb::Command const&) () from ./libucbhelper3gcc3.so #8 0x70b65cc0 in ucb::Content::executeCommand(rtl::OUString const&, com::sun::star::uno::Any const&) () from ./libucbhelper3gcc3.so #9 0x70935e38 in utl::UCBContentHelper::Kill(String const&) () from ./libutl680ls.so #10 0x0003a2f8 in desktop::Desktop::CreateTemporaryDirectory() () #11 0x00039528 in desktop::Desktop::RegisterServices(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>&) () #12 0x0002a554 in desktop::Desktop::Main() () #13 0x700dd8c8 in SVMain() () from ./libvcl680ls.so #14 0x7027cf30 in main () from ./libvcl680ls.so #15 0x71600dac in __libc_start_main () from /lib/libc.so.6 #16 0x000253c8 in _start () (gdb) cleanup linux sparc briges issues in issuezilla *** This issue has been marked as a duplicate of 37423 *** fixed in cws_src680_unxlngs01 |