[Libreoffice] Dragonfly patches

Francois Tigeot ftigeot at wolfpond.org
Wed Feb 9 14:47:20 PST 2011


Hi guys,

My tree is now able to build for more than 2.5 hours (on a Core 2 Duo/3GHz)
before stopping with its first errors.

There's still work to do but the progress so far has been good.  I'd like
to take advantage of this to publish some of my patches.

They are not sufficient to really start a build, but I hope to reduce the
differences with -head with this batch.

License is LGPLv3/MPL.

-- 
Francois Tigeot
-------------- next part --------------
diff --git a/configure.in b/configure.in
index f210dd4..0425d35 100755
--- a/configure.in
+++ b/configure.in
@@ -3805,7 +3805,7 @@ if test "$enable_epm" = "yes"; then
     AIX)
         PKGFORMAT=rpm
         ;;
-    OpenBSD)
+    OpenBSD|DragonFly)
         PKGFORMAT=portable
         ;;
     *BSD)
diff --git a/post_download.in b/post_download.in
index 9902ea0..12b03d9 100755
--- a/post_download.in
+++ b/post_download.in
@@ -45,6 +45,9 @@ case "$build_os" in
     openbsd*)
         _os=OpenBSD
         ;;
+    dragonfly*)
+        _os=DragonFly
+        ;;
    *)
    AC_MSG_ERROR([$_os operating system is not suitable to build LibreOffice!])
    ;;
diff --git a/set_soenv.in b/set_soenv.in
index 6aefd56..4eedac0 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -810,6 +810,44 @@ elsif ( $platform =~ m/darwin/ )
       $PATH_SEPERATOR = $ps;
       # GUIBASE is set below; may be "aqua" or "unx".
 }
+elsif ( $platform =~ m/dragonfly/ )
+{
+   if ($platform =~ m/^i386/)
+   {  print "Setting DragonFly i386 specific values... ";
+      $outfile        = "DragonFlyX86Env.Set.sh";
+      $CPU            = "I";
+      $CPUNAME        = "INTEL";
+      $OUTPATH        = "unxdflyi";
+      $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386";
+      $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."client";
+      $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."native_threads";
+   }
+   elsif ($platform =~ m/^x86_64/)
+   {  print "Setting DragonFly x86-64 specific values... ";
+      $outfile        = "DragonFlyX86-64Env.Set.sh";
+      $CPU            = "X";
+      $CPUNAME        = "X86_64";
+      $OUTPATH        = "unxdflyx";
+      $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64";
+      $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads";
+   }
+   else
+   { print "Unsupported DragonFly architecture: $platform \n";
+     exit 1;
+   }
+   # General DragonFly settings:
+      $CVER           = "C341";
+      $OUTPATH        = $OUTPATH."3";
+      $BIG_SVX        = "TRUE";
+      $COM            = "GCC";
+      $COMPATH        = '@COMPATH@';
+      $GUI            = "UNX";
+      $GUIBASE        = "unx";
+      $GVER           = "VCL";
+      $INPATH         = $OUTPATH.$PROEXT;
+      $OS             = "DRAGONFLY";
+      $PATH_SEPERATOR = $ps;
+}
 elsif ( $platform =~ m/aix/ )
 {
    print "Setting AIX PPC specific values... ";
@@ -1072,7 +1110,7 @@ if ($platform =~ m/solaris/)
                         $L.$USR_DT.$LIB.
                         $L.$USR_OPENWIN.$LIB;
 }
-elsif ($platform =~ m/linux|netbsd|osf1|freebsd|aix|openbsd/)
+elsif ($platform =~ m/linux|netbsd|osf1|freebsd|aix|openbsd|dragonfly/)
 {
    $SOLAREXTRALIB     = $L.$par_dir.$LIB64;
 }
@@ -1139,7 +1177,7 @@ if ($platform =~ m/cygwin|os2/)
 }
 
 # The general environment path.
-if ($platform =~ m/linux|netbsd|osf1|freebsd|aix|solaris|openbsd/)
+if ($platform =~ m/linux|netbsd|osf1|freebsd|aix|solaris|openbsd|dragonfly/)
 {  $PATH              = $cur_dir.
 #                        $ps.'$SOLARVER'.$ds.'$INPATH'.$BIN.
                         $ps.'$SOLARENV'.$ds.'$OUTPATH'.$BIN.
@@ -1364,7 +1402,7 @@ if ($platform =~ m/solaris/)
                         $L_STLPORT_LIB.
                         $L.$XLIB;
 }
-elsif ($platform =~ m/linux|netbsd|osf1|aix|freebsd|openbsd/)
+elsif ($platform =~ m/linux|netbsd|osf1|aix|freebsd|openbsd|dragonfly/)
 {  $SOLARLIB          = $L.$par_dir.$LIB.
                         $L.'$SOLARENV'.$ds.'$OUTPATH'.$LIB.
                         $L.'$SOLARVER'.$ds.'$INPATH'.$LIB.
@@ -1413,10 +1451,10 @@ $SOLARINC             = $I.$cur_dir.
                         $I.'$SOLARENV'.$INC.
                         $I.'$SRC_ROOT'.$ds."res";
 
-if ($platform =~ m/solaris|linux|osf1|freebsd|netbsd|aix|openbsd/)
+if ($platform =~ m/solaris|linux|osf1|freebsd|netbsd|aix|openbsd|dragonfly/)
 {
 $SOLARINC	     .= $STLPORT_stlport;
-if ($platform =~ m/linux|freebsd|netbsd|openbsd/)
+if ($platform =~ m/linux|freebsd|netbsd|openbsd|dragonfly/)
 {
 # This simply adds an include path, so even cases that break the FHS work
 $SOLARINC            .= $STLPORT_inc_stlport;
@@ -1477,7 +1515,7 @@ if ($platform =~ m/linux/)
         $SOLARINC .=$I.'$JAVA_HOME'.$INCLUDE.$ds."native_threads".$INCLUDE;
 	}
     #The tail, if needed
-    if ($platform =~ m/linux|freebsd|netbsd|aix|openbsd/)
+    if ($platform =~ m/linux|freebsd|netbsd|aix|openbsd|dragonfly/)
     {  $SOLARINC  .= $I.$XINC;
     }
     elsif ($platform =~ m/osf1/)
-------------- next part --------------
diff --git a/dmake/configure b/dmake/configure
index f8a1bd8..4445b20 100755
--- a/dmake/configure
+++ b/dmake/configure
@@ -4084,7 +4084,7 @@ case "$_os" in
 	"AIX")
 	  OS_VERSION=sysvr4
 	  ;;
-	"OpenBSD")
+	"OpenBSD"|DragonFly)
 	  OS_VERSION=linux
 	  ;;
    *)
diff --git a/dmake/configure.in b/dmake/configure.in
index 498c7b2..1ec0b3e 100755
--- a/dmake/configure.in
+++ b/dmake/configure.in
@@ -111,7 +111,7 @@ case "$_os" in
 	"AIX")
 	  OS_VERSION=sysvr4
 	  ;;
-	"OpenBSD")
+	"OpenBSD"|DragonFly)
 	  OS_VERSION=linux
 	  ;;
    *)
-------------- next part --------------
diff --git a/desktop/source/deployment/misc/dp_platform.cxx b/desktop/source/deployment/misc/dp_platform.cxx
index dff464b..751a1a1 100644
--- a/desktop/source/deployment/misc/dp_platform.cxx
+++ b/desktop/source/deployment/misc/dp_platform.cxx
@@ -70,6 +70,8 @@
 #define PLATFORM_OS2_X86            "os2_x86"
 #define PLATFORM_OPENBSD_X86        "openbsd_x86"
 #define PLATFORM_OPENBSD_X86_64     "openbsd_x86_64"
+#define PLATFORM_DRAGONFLY_X86      "dragonfly_x86"
+#define PLATFORM_DRAGONFLY_X86_64   "dragonfly_x86_64"
 
 
 #define PLATFORM_AIX_POWERPC        "aix_powerpc"
@@ -191,6 +193,10 @@ namespace
             ret = checkOSandCPU(OUSTR("OpenBSD"), OUSTR("x86"));
         else if (token.equals(OUSTR(PLATFORM_OPENBSD_X86_64)))
             ret = checkOSandCPU(OUSTR("OpenBSD"), OUSTR("X86_64"));
+        else if (token.equals(OUSTR(PLATFORM_DRAGONFLY_X86)))
+            ret = checkOSandCPU(OUSTR("DragonFly"), OUSTR("x86"));
+        else if (token.equals(OUSTR(PLATFORM_DRAGONFLY_X86_64)))
+            ret = checkOSandCPU(OUSTR("DragonFly"), OUSTR("X86_64"));
         else
         {
             OSL_ENSURE(0, "Extension Manager: The extension supports an unknown platform. "
diff --git a/shell/source/unix/misc/makefile.mk b/shell/source/unix/misc/makefile.mk
index c4f3d9c..6ad3797 100644
--- a/shell/source/unix/misc/makefile.mk
+++ b/shell/source/unix/misc/makefile.mk
@@ -68,7 +68,8 @@ APP1TARGET = gnome-open-url.bin
 APP1OBJS = \
     $(OBJ)$/gnome-open-url.obj
 APP1LIBS =
-.IF "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD" && "$(OS)"!="OPENBSD"
+.IF "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD" && "$(OS)"!="OPENBSD" && \
+    "$(OS)"!="DRAGONFLY"
 APP1STDLIBS=-ldl
 .ENDIF
 
-------------- next part --------------
diff --git a/cppunit/makefile.mk b/cppunit/makefile.mk
index 448d905..720b4fe 100644
--- a/cppunit/makefile.mk
+++ b/cppunit/makefile.mk
@@ -142,7 +142,8 @@ OOO_STLPORT_LIBS += -lstdc++
 # execute that program; however, the program would fail to locate the STLport
 # library (another work-around might be to add something like --as-needed around
 # $(LIBSTLPORT)):
-.IF "$(OS)" == "FREEBSD" || "$(OS)" == "LINUX" || "$(OS)" == "SOLARIS" || "$(OS)" == "OPENBSD"
+.IF "$(OS)" == "FREEBSD" || "$(OS)" == "LINUX" || "$(OS)" == "SOLARIS" || \
+    "$(OS)" == "OPENBSD" || "$(OS)" == "DRAGONFLY"
 .IF "$(LD_LIBRARY_PATH)" == ""
 LD_LIBRARY_PATH := $(SOLARLIBDIR)
     # strictly speaking, this is incorrect if the LD_LIBRARY_PATH environment
diff --git a/external/gcc3_specific/makefile.mk b/external/gcc3_specific/makefile.mk
index dd84b53..0b18d2c 100644
--- a/external/gcc3_specific/makefile.mk
+++ b/external/gcc3_specific/makefile.mk
@@ -46,6 +46,7 @@ $(MINGWGXXDLL) :
 .IF "$(OS)"!="FREEBSD"
 .IF "$(OS)"!="NETBSD"
 .IF "$(OS)"!="OPENBSD"
+.IF "$(OS)"!="DRAGONFLY"
 
 .EXPORT : CC
 
@@ -75,6 +76,7 @@ $(LB)$/libgcc_s.so.$(SHORTSTDC3) :
 .ENDIF
 .ENDIF
 .ENDIF
+.ENDIF
 .ENDIF 
 
 .ENDIF
-------------- next part --------------
diff --git a/i18npool/source/localedata/saxparser.cxx b/i18npool/source/localedata/saxparser.cxx
index 98d2e5a..6c1b1aa 100644
--- a/i18npool/source/localedata/saxparser.cxx
+++ b/i18npool/source/localedata/saxparser.cxx
@@ -323,9 +323,11 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
             ::rtl::OUString::createFromAscii(argv[4]),
             ::rtl::OUString::createFromAscii(argv[5]) );
     }
-    catch ( Exception& )
+    catch ( Exception &e )
     {
         printf( "Exception on createRegistryServiceFactory\n" );
+        OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US );
+        printf( "  Exception message: %s\n", o.pData->buffer );
         exit(1);
     }
 
-------------- next part --------------
diff --git a/solenv/bin/mapgen.pl b/solenv/bin/mapgen.pl
index 1a2485a..1d6ccf4 100644
--- a/solenv/bin/mapgen.pl
+++ b/solenv/bin/mapgen.pl
@@ -137,7 +137,8 @@ sub filter_symbols {
         $env_section = '1' and next if ((/^# FREEBSD #$/) && ($ENV{OS} eq 'FREEBSD'));
         $env_section = '1' and next if ((/^# NETBSD #$/) && ($ENV{OS} eq 'NETBSD'));
         $env_section = '1' and next if ((/^# OPENBSD #$/) && ($ENV{OS} eq 'OPENBSD'));
-        last if ($env_section && ((/^# SOLARIS #$/) || (/^# FREEBSD #$/) || (/^# LINUX #$/) || (/^# NETBSD #$/) || (/^# OPENBSD #$/)));
+        $env_section = '1' and next if ((/^# DRAGONFLY #$/) && ($ENV{OS} eq 'DRAGONFLY'));
+        last if ($env_section && ((/^# SOLARIS #$/) || (/^# FREEBSD #$/) || (/^# LINUX #$/) || (/^# NETBSD #$/) || (/^# OPENBSD #$/) (/^# DRAGONFLY #$/)));
         next if (!$_ || /^#/);
         push(@filters, $_);
     };
diff --git a/solenv/bin/modules/osarch.pm b/solenv/bin/modules/osarch.pm
index 5aaa188..40ebe83 100755
--- a/solenv/bin/modules/osarch.pm
+++ b/solenv/bin/modules/osarch.pm
@@ -23,6 +23,7 @@ chop( $m_str, $s_str );
                "FreeBSD",	"freebsd",
                "NetBSD",	"netbsd",
                "OpenBSD",	"openbsd",
+               "DragonFly",	"dragonfly"
                "OSF1",		"decunix",
                "SCO_SV",	"scoosr5",
 #			   "SCO_SV",	"scouw21",
@@ -38,6 +39,7 @@ chop( $m_str, $s_str );
                "FreeBSD",	"-DFREEBSD",
                "NetBSD",	"-DNETBSD",
                "OpenBSD",	"-DOPENBSD",
+               "DragonFly",	"-DDRAGONFLY",
                "OSF1",		"-DSYSV -DDECUNIX",
                "SCO_SV",	"-DSYSV -DSCO -DSCO_OSR5",
 #			   "SCO_SV",	"-DSYSV -DSCO -DSCO_UW21",
diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk
index 311b6d1..f47115f 100644
--- a/solenv/inc/unx.mk
+++ b/solenv/inc/unx.mk
@@ -159,6 +159,10 @@
 .INCLUDE : unxobsd.mk
 .ENDIF
 
+.IF "$(COM)$(OS)" == "GCCDRAGONFLY"
+.INCLUDE : unxdfly.mk
+.ENDIF
+
 .IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP"
 .INCLUDE : unxmacxp.mk
 .ENDIF
-------------- next part --------------
diff --git a/soltools/checkdll/makefile.mk b/soltools/checkdll/makefile.mk
index b5b386a..865d5a8 100644
--- a/soltools/checkdll/makefile.mk
+++ b/soltools/checkdll/makefile.mk
@@ -46,7 +46,7 @@ APP1TARGET	= 	checkdll
 APP1OBJS	=	$(OBJ)$/checkdll.obj
 DEPOBJFILES	=	$(APP1OBJS) 
 .IF "$(OS)"!="FREEBSD" && "$(OS)"!="MACOSX" && "$(OS)"!="NETBSD" \
-	&& "$(OS)"!="OPENBSD"
+	&& "$(OS)"!="OPENBSD" && "$(OS)"!="DRAGONFLY"
 STDLIB += -ldl
 .ENDIF
 .IF "$(OS)"=="NETBSD"
diff --git a/soltools/mkdepend/imakemdep.h b/soltools/mkdepend/imakemdep.h
index b2971e0..18f2d4b 100644
--- a/soltools/mkdepend/imakemdep.h
+++ b/soltools/mkdepend/imakemdep.h
@@ -236,7 +236,7 @@ in this Software without prior written authorization from the X Consortium.
 #ifdef _CRAY
 #define DEFAULT_CPP "/lib/pcpp"
 #endif
-#if defined(__386BSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
 #define DEFAULT_CPP "/usr/libexec/cpp"
 #endif
 #ifdef	MACH


More information about the LibreOffice mailing list