Issue 108197 - FreeBSD porting : Bridge is broke on i386
Summary: FreeBSD porting : Bridge is broke on i386
Status: CONFIRMED
Alias: None
Product: porting
Classification: Code
Component: code (show other issues)
Version: DEV300m65
Hardware: Unknown All
: P3 Trivial (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-10 10:40 UTC by maho.nakata
Modified: 2017-05-20 11:33 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
bypass bridge test like on MacOSX PPC (742 bytes, patch)
2010-01-10 10:51 UTC, maho.nakata
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description maho.nakata 2010-01-10 10:40:14 UTC
Since DEV300_m65, on FreeBSD 8.0-RELEASE/i386 build is broken at
testtools module like:
---
Entering
/work/ports/editors/openoffice.org-3-devel/work/DEV300_m68/testtools/source/bridgetest
cd ../../unxfbsdi.pro/lib && if ($?LD_LIBRARY_PATH == 1)     eval 'setenv
LD_LIBRARY_PATH
"${LD_LIBRARY_PATH}:/work/ports/editors/openoffice.org-3-devel/work/DEV300_m68/solver/300/unxfbsdi.pro/lib:."'
&&     if ($?LD_LIBRARY_PATH == 0) setenv LD_LIBRARY_PATH
"/work/ports/editors/openoffice.org-3-devel/work/DEV300_m68/solver/300/unxfbsdi.pro/lib:."
&&
/work/ports/editors/openoffice.org-3-devel/work/DEV300_m68/solver/300/unxfbsdi.pro/bin/uno
\
		-ro uno_services.rdb -ro uno_types.rdb \
		-s com.sun.star.test.bridge.BridgeTest -- \
		com.sun.star.test.bridge.CppTestObject
Segmentation fault (core dumped)
dmake:  Error code 139, while making 'runtest'

1 module(s): 
	testtools
need(s) to be rebuilt
Comment 1 maho.nakata 2010-01-10 10:44:34 UTC
strange error, since,
* happens only on x86, not on x86_64
* diff from linux version of bridge is minimal like following (note: I applied
local FreeBSD patches to make diff minimal)
% diff -u bridges/source/cpp_uno/gcc3_linux_intel
bridges/source/cpp_uno/gcc3_freebsd_intel 
diff -u bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx
--- bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx 2009-12-23
11:32:12.000000000 +0900
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx       2010-01-10
17:52:25.000000000 +0900
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: cpp2uno.cxx,v $
- * $Revision: 1.14 $
+ * $Revision: 1.12 $
  *
  * This file is part of OpenOffice.org.
  *
Only in bridges/source/cpp_uno/gcc3_freebsd_intel: cpp2uno.cxx.orig
diff -u bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx
--- bridges/source/cpp_uno/gcc3_linux_intel/except.cxx  2009-12-23
11:32:12.000000000 +0900
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx        2010-01-10
17:52:25.000000000 +0900
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: except.cxx,v $
- * $Revision: 1.14.20.1 $
+ * $Revision: 1.9 $
  *
  * This file is part of OpenOffice.org.
  *
@@ -36,6 +36,7 @@
 #include <dlfcn.h>
 #include <cxxabi.h>
 #include <hash_map>
+#include <sys/param.h>
 
 #include <rtl/strbuf.hxx>
 #include <rtl/ustrbuf.hxx>
@@ -121,7 +122,11 @@
 };
 //__________________________________________________________________________________________________
 RTTI::RTTI() SAL_THROW( () )
+#if __FreeBSD_version < 702104 /* #i22253# */
+    : m_hApp( dlopen( 0, RTLD_NOW | RTLD_GLOBAL ) )
+#else
     : m_hApp( dlopen( 0, RTLD_LAZY ) )
+#endif
 {
 }
 //__________________________________________________________________________________________________
@@ -156,7 +161,11 @@
         buf.append( 'E' );
 
         OString symName( buf.makeStringAndClear() );
+#if __FreeBSD_version < 702104 /* #i22253# */
+        rtti = (type_info *)dlsym( RTLD_DEFAULT, symName.getStr() );
+#else
         rtti = (type_info *)dlsym( m_hApp, symName.getStr() );
+#endif
 
         if (rtti)
         {
Only in bridges/source/cpp_uno/gcc3_freebsd_intel: except.cxx.orig
diff -u bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk
bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk
--- bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk 2009-12-23
11:32:12.000000000 +0900
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk       2009-12-23
11:32:12.000000000 +0900
@@ -8,7 +8,7 @@
 #
 # $RCSfile: makefile.mk,v $
 #
-# $Revision: 1.11 $
+# $Revision: 1.9 $
 #
 # This file is part of OpenOffice.org.
 #
@@ -42,7 +42,7 @@
 
 # --- Files --------------------------------------------------------
 
-.IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCLINUXIgcc3"
+.IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCFREEBSDIgcc3"
 
 .IF "$(cppu_no_leak)" == ""
 CFLAGS += -DLEAK_STATIC_DATA
diff -u bridges/source/cpp_uno/gcc3_linux_intel/share.hxx
bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx
--- bridges/source/cpp_uno/gcc3_linux_intel/share.hxx   2009-12-23
11:32:12.000000000 +0900
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx 2009-12-23
11:32:12.000000000 +0900
@@ -7,7 +7,7 @@
  * OpenOffice.org - a multi-platform office productivity suite
  *
  * $RCSfile: share.hxx,v $
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
  *
  * This file is part of OpenOffice.org.
  *
diff -u bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx
--- bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx 2009-12-23
11:32:12.000000000 +0900
+++ bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx       2009-12-23
11:32:12.000000000 +0900
@@ -31,7 +31,7 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_bridges.hxx"
 
-#include <malloc.h>
+#include <stdlib.h>
 
 #include <com/sun/star/uno/genfunc.hxx>
 #include "com/sun/star/uno/RuntimeException.hpp"
Comment 2 maho.nakata 2010-01-10 10:51:18 UTC
Created attachment 67109 [details]
bypass bridge test like on MacOSX PPC
Comment 3 maho.nakata 2010-01-10 10:52:59 UTC
sb:
just for your info.
Comment 4 Pedro Giffuni 2011-10-09 01:51:02 UTC
Committed revision 1180515.

Thanks!
Comment 5 Marcus 2017-05-20 11:33:09 UTC
Reset assigne to the default "issues@openoffice.apache.org".