[Libreoffice] Dragonfly patches

Francois Tigeot ftigeot at wolfpond.org
Mon Feb 14 08:21:54 PST 2011


On Thu, Feb 10, 2011 at 08:27:53AM +0100, Fridrich Strba wrote:
> Taking mutex on this one will work on its integration today.
> 
> On Wed, 2011-02-09 at 23:47 +0100, Francois Tigeot wrote: 
> > 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.

Thanks for committing the patches, Fridrich.

Here's a second batch. With these ones, and by disabling some cppunit
tests, I am now able to complete a LibreOffice build on DragonFly.

-- 
Francois Tigeot
-------------- next part --------------
diff --git a/set_soenv.in b/set_soenv.in
index 450f9fa..b915f89 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -825,6 +825,7 @@ elsif ( $platform =~ m/dragonfly/ )
       $CPUNAME        = "X86_64";
       $OUTPATH        = "unxdflyx";
       $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64";
+      $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."server";
       $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads";
    }
    else
@@ -1420,7 +1421,7 @@ $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/)
 {
 if ($platform =~ m/solaris/ && ! $CC =~ "gcc")
 {
-------------- next part --------------
diff --git a/automation/source/testtool/objtest.cxx b/automation/source/testtool/objtest.cxx
index a6fde25..5c10f77 100644
--- a/automation/source/testtool/objtest.cxx
+++ b/automation/source/testtool/objtest.cxx
@@ -459,6 +459,10 @@ void TestToolObj::LoadIniFile()				// Laden der IniEinstellungen, die durch den
     abGP.Append( "25" );  // OpenBSD/i386
 #elif defined OPENBSD && defined X86_64
     abGP.Append( "26" );  // OpenBSD/amd64
+#elif defined DRAGONFLY && defined X86
+    abGP.Append( "27" );  // DragonFly/i386
+#elif defined DRAGONFLY && defined X86_64
+    abGP.Append( "28" );  // DragonFly/x86-64
 #else
 #error ("unknown platform. please request an ID for your platform on qa/dev")
 #endif
diff --git a/crashrep/source/unx/makefile.mk b/crashrep/source/unx/makefile.mk
index 8383f68..d0d04ff 100755
--- a/crashrep/source/unx/makefile.mk
+++ b/crashrep/source/unx/makefile.mk
@@ -56,7 +56,8 @@ APP1TARGET=$(TARGET)
 APP1OBJS=$(OBJFILES)
 APP1RPATH=BRAND
 
-.IF "$(OS)" != "FREEBSD" && "$(OS)" != "MACOSX" && "$(OS)"!="NETBSD"
+.IF "$(OS)" != "FREEBSD" && "$(OS)" != "MACOSX" && "$(OS)"!="NETBSD" && \
+    "$(OS)" != "DRAGONFLY"
 APP1STDLIBS+=-ldl -lnsl
 .ENDIF
 .IF "$(OS)" == "SOLARIS"
diff --git a/extensions/source/plugin/unx/makefile.mk b/extensions/source/plugin/unx/makefile.mk
index 0e9b5d4..f642a0d 100644
--- a/extensions/source/plugin/unx/makefile.mk
+++ b/extensions/source/plugin/unx/makefile.mk
@@ -77,7 +77,7 @@ APP1STDLIBS+=-lXm -lXt $(X11LINK_DYNAMIC) -ldl
 .IF "$(DISABLE_XAW)" != "TRUE"
 APP1STDLIBS+=-lXaw 
 .ENDIF
-.IF "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || "$(OS)"=="OPENBSD"
+.IF "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || "$(OS)"=="OPENBSD" || "$(OS)"=="DRAGONFLY"
 APP1STDLIBS+= -lXt -lXext -lX11
 .ELIF "$(OS)"=="AIX"
 APP1STDLIBS+= -lXpm -lXmu -lXt $(X11LINK_DYNAMIC) -ldl
diff --git a/extensions/source/scanner/makefile.mk b/extensions/source/scanner/makefile.mk
index baaefdf..86c2134 100644
--- a/extensions/source/scanner/makefile.mk
+++ b/extensions/source/scanner/makefile.mk
@@ -77,7 +77,7 @@ SHL1STDLIBS=\
     $(SVTOOLLIB)
 
 .IF "$(GUI)"=="UNX" && "$(OS)"!="FREEBSD" && \
-	"$(OS)"!="NETBSD" && "$(OS)"!="OPENBSD"
+	"$(OS)"!="NETBSD" && "$(OS)"!="OPENBSD" && "$(OS)"!="DRAGONFLY"
 SHL1STDLIBS+=$(SVTOOLLIB) -ldl
 .ENDIF
 
-------------- next part --------------
diff --git a/binfilter/bf_sc/source/core/data/sc_cell.cxx b/binfilter/bf_sc/source/core/data/sc_cell.cxx
index 68736b2..de3a9ae 100644
--- a/binfilter/bf_sc/source/core/data/sc_cell.cxx
+++ b/binfilter/bf_sc/source/core/data/sc_cell.cxx
@@ -40,7 +40,8 @@
 #include <mac_end.h>
 #endif
 
-#if defined (SOLARIS) || defined (FREEBSD) || defined (NETBSD) || defined (OPENBSD)
+#if defined(SOLARIS) || defined(FREEBSD) || defined(NETBSD) || \
+    defined(OPENBSD) || defined(DRAGONFLY)
 #include <ieeefp.h>
 #elif ( defined ( LINUX ) && ( GLIBC < 2 ) )
 #include <i386/ieeefp.h>
-------------- next part --------------
diff --git a/tools/bootstrp/command.cxx b/tools/bootstrp/command.cxx
index 08321c4..2d705dd 100644
--- a/tools/bootstrp/command.cxx
+++ b/tools/bootstrp/command.cxx
@@ -73,7 +73,8 @@
 #include <sys/types.h>
 #include <unistd.h>
 #if ( defined NETBSD ) || defined (FREEBSD) || defined (AIX) \
-    || defined (HPUX) || defined (MACOSX) || defined (OPENBSD)
+    || defined (HPUX) || defined (MACOSX) || defined (OPENBSD) \
+    || defined(DRAGONFLY)
 #include <sys/wait.h>
 #else
 #include <wait.h>
diff --git a/tools/inc/tools/inetdef.hxx b/tools/inc/tools/inetdef.hxx
index ac2f8bc..89345f4 100644
--- a/tools/inc/tools/inetdef.hxx
+++ b/tools/inc/tools/inetdef.hxx
@@ -63,6 +63,10 @@
 #define TOOLS_INETDEF_OS "OpenBSD/i386"
 #elif defined OPENBSD && defined X86_64
 #define TOOLS_INETDEF_OS "OpenBSD/amd64"
+#elif defined DRAGONFLY && defined X86
+#define TOOLS_INETDEF_OS "DragonFly/i386"
+#elif defined DRAGONFLY && defined X86_64
+#define TOOLS_INETDEF_OS "DragonFly/amd64"
 #elif defined SINIX
 #define TOOLS_INETDEF_OS "SINIX"
 #else // AIX, HPUX, SOLARIS, ...
diff --git a/tools/inc/tools/prex.h b/tools/inc/tools/prex.h
index 3cc8f32..2a5dfd6 100644
--- a/tools/inc/tools/prex.h
+++ b/tools/inc/tools/prex.h
@@ -48,7 +48,9 @@
 extern "C" {
 #endif
 
-#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX) || defined(NETBSD) || defined(OPENBSD) // should really check for xfree86 or for X11R6.1 and higher
+// FIXME: should really check for xfree86 or for X11R6.1 and higher
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX) || defined(NETBSD) || \
+    defined(OPENBSD) || defined(DRAGONFLY)
 #define __XKeyboardExtension__ 1
 #else
 #define __XKeyboardExtension__ 0
diff --git a/tools/inc/tools/solar.h b/tools/inc/tools/solar.h
index 4d8d087..389dbc6 100644
--- a/tools/inc/tools/solar.h
+++ b/tools/inc/tools/solar.h
@@ -339,6 +339,8 @@ template<typename T> inline T Abs(T a) { return (a>=0?a:-a); }
   #define __DLLEXTENSION "mxi.dylib"
 #elif defined OPENBSD
   #define __DLLEXTENSION "ob.so"
+#elif defined DRAGONFLY
+  #define __DLLEXTENSION "df.so"
 #else
   #error unknown plattform
 #endif
diff --git a/tools/source/fsys/unx.cxx b/tools/source/fsys/unx.cxx
index 7d93c4d..7d540c4 100644
--- a/tools/source/fsys/unx.cxx
+++ b/tools/source/fsys/unx.cxx
@@ -45,8 +45,8 @@
 extern "C" int mntctl( int cmd, size_t size, char* buf );
 #elif defined(NETBSD) 
 #include <sys/mount.h>
-#elif defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD)
-#elif defined DECUNIX
+#elif defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD) || \
+      defined(DECUNIX) || defined(DRAGONFLY)
 struct mnttab
 {
   char *mnt_dir;
@@ -96,7 +96,7 @@ struct mymnttab
 
 
 #if defined(NETBSD) || defined(FREEBSD) || defined(MACOSX) || \
-	defined(OPENBSD)
+	defined(OPENBSD) || defined(DRAGONFLY)
 BOOL GetMountEntry(dev_t /* dev */, struct mymnttab * /* mytab */ )
 {
     DBG_WARNING( "Sorry, not implemented: GetMountEntry" );
@@ -222,7 +222,7 @@ BOOL DirEntry::IsCaseSensitive( FSysPathStyle eFormatter ) const
 
     if (eFormatter==FSYS_STYLE_HOST)
     {
-#ifdef NETBSD
+#if defined(NETBSD) || defined(DRAGONFLY)
         return TRUE;
 #else
         struct stat buf;
diff --git a/tools/source/stream/strmunx.cxx b/tools/source/stream/strmunx.cxx
index 84c23e2..bf2cf97 100644
--- a/tools/source/stream/strmunx.cxx
+++ b/tools/source/stream/strmunx.cxx
@@ -210,8 +210,9 @@ static sal_uInt32 GetSvError( int nErrno )
         { 0,            SVSTREAM_OK },
         { EACCES,       SVSTREAM_ACCESS_DENIED },
         { EBADF,        SVSTREAM_INVALID_HANDLE },
-#if defined( RS6000 ) || defined( ALPHA ) || defined( HP9000 ) || defined( NETBSD ) || defined(FREEBSD) || defined(MACOSX) || \
-	defined(OPENBSD) || defined(__FreeBSD_kernel__) || defined ( AIX )
+#if defined(RS6000) || defined(ALPHA) || defined(HP9000) || defined(NETBSD) || \
+    defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD) || \
+    defined(__FreeBSD_kernel__) || defined (AIX) || defined(DRAGONFLY)
         { EDEADLK,      SVSTREAM_LOCKING_VIOLATION },
 #else
         { EDEADLOCK,    SVSTREAM_LOCKING_VIOLATION },
@@ -225,8 +226,9 @@ static sal_uInt32 GetSvError( int nErrno )
         { EAGAIN,       SVSTREAM_LOCKING_VIOLATION },
         { EISDIR,       SVSTREAM_PATH_NOT_FOUND },
         { ELOOP,        SVSTREAM_PATH_NOT_FOUND },
-#if ! defined( RS6000 ) && ! defined( ALPHA ) && ! defined( NETBSD ) && ! defined (FREEBSD) && ! defined (MACOSX) && \
-	!defined(OPENBSD) && ! defined(__FreeBSD_kernel__)
+#if !defined(RS6000) && !defined(ALPHA) && !defined(NETBSD) && !defined (FREEBSD) && \
+    !defined(MACOSX) && !defined(OPENBSD) && !defined(__FreeBSD_kernel__) && \
+    !defined(DRAGONFLY)
         { EMULTIHOP,    SVSTREAM_PATH_NOT_FOUND },
         { ENOLINK,      SVSTREAM_PATH_NOT_FOUND },
 #endif
diff --git a/vcl/unx/inc/saldata.hxx b/vcl/unx/inc/saldata.hxx
index 4164a0f..f0e2103 100644
--- a/vcl/unx/inc/saldata.hxx
+++ b/vcl/unx/inc/saldata.hxx
@@ -48,7 +48,7 @@ class SalPrinter;
 DECLARE_LIST( SalDisplays, SalDisplay* )
 
 #if defined SCO || defined LINUX || defined NETBSD || defined AIX || \
-	defined HPUX || defined FREEBSD || defined OPENBSD
+	defined HPUX || defined FREEBSD || defined OPENBSD || defined DRAGONFLY
 #include <pthread.h>
 #else
 typedef	unsigned int pthread_t;
diff --git a/vcl/unx/inc/salunx.h b/vcl/unx/inc/salunx.h
index 5946492..4fcea4d 100644
--- a/vcl/unx/inc/salunx.h
+++ b/vcl/unx/inc/salunx.h
@@ -31,7 +31,7 @@
 
 // -=-= #includes =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 #if defined SCO || defined LINUX || defined HPUX || defined FREEBSD || \
-	defined NETBSD || defined OPENBSD
+	defined NETBSD || defined OPENBSD || defined DRAGONFLY
 #include <sys/time.h>
 #elif defined AIX
 #include <time.h>
diff --git a/vcl/unx/source/app/i18n_ic.cxx b/vcl/unx/source/app/i18n_ic.cxx
index 22f7b1e..df7e545 100644
--- a/vcl/unx/source/app/i18n_ic.cxx
+++ b/vcl/unx/source/app/i18n_ic.cxx
@@ -334,7 +334,7 @@ SalI18N_InputContext::SalI18N_InputContext ( SalFrame *pFrame ) :
 
         if ( mnPreeditStyle != XIMPreeditNone )
         {
-#if defined LINUX || defined FREEBSD || defined NETBSD || defined OPENBSD
+#if defined LINUX || defined FREEBSD || defined NETBSD || defined OPENBSD || defined DRAGONFLY
             if ( mpPreeditAttributes != NULL )
 #endif
                 mpAttributes = XVaAddToNestedList( mpAttributes,
@@ -342,7 +342,7 @@ SalI18N_InputContext::SalI18N_InputContext ( SalFrame *pFrame ) :
         }
         if ( mnStatusStyle != XIMStatusNone )
         {
-#if defined LINUX || defined FREEBSD || defined NETBSD || defined OPENBSD
+#if defined LINUX || defined FREEBSD || defined NETBSD || defined OPENBSD || defined DRAGONFLY
             if ( mpStatusAttributes != NULL )
 #endif
                 mpAttributes = XVaAddToNestedList( mpAttributes,
diff --git a/vcl/unx/source/app/saldisp.cxx b/vcl/unx/source/app/saldisp.cxx
index 1dbcfaf..5da9d10 100644
--- a/vcl/unx/source/app/saldisp.cxx
+++ b/vcl/unx/source/app/saldisp.cxx
@@ -893,7 +893,8 @@ void SalDisplay::Init()
         sscanf( pProperties, "%li", &nProperties_ );
     else
     {
-#if defined DBG_UTIL || defined SUN || defined LINUX || defined FREEBSD || defined NETBSD || defined OPENBSD
+#if defined DBG_UTIL || defined SUN || defined LINUX || defined FREEBSD || \
+    defined NETBSD || defined OPENBSD || defined DRAGONFLY
         nProperties_ |= PROPERTY_FEATURE_Maximize;
 #endif
         // Server Bugs & Properties
@@ -919,7 +920,8 @@ void SalDisplay::Init()
         if( GetServerVendor() == vendor_xfree )
         {
             nProperties_ |= PROPERTY_BUG_XCopyArea_GXxor;
-#if defined LINUX || defined FREEBSD || defined NETBSD || defined OPENBSD
+#if defined LINUX || defined FREEBSD || defined NETBSD || defined OPENBSD || \
+    defined DRAGONFLY
             // otherwm and olwm are a kind of default, which are not detected
             // carefully. if we are running linux (i.e. not netbsd) on an xfree
             // display, fvwm is most probable the wm to choose, confusing with mwm
diff --git a/vcl/util/makefile.mk b/vcl/util/makefile.mk
index 20be25d..5fdda65 100755
--- a/vcl/util/makefile.mk
+++ b/vcl/util/makefile.mk
@@ -328,7 +328,7 @@ SHL2STDLIBS+=`pkg-config --libs xrender`
 
 SHL2STDLIBS += -lXext -lSM -lICE -lX11
 .IF "$(OS)"!="MACOSX" && "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD" && \
-	&& "$(OS)"!="OPENBSD"
+	&& "$(OS)"!="OPENBSD" "$(OS)"!="DRAGONFLY"
 # needed by salprnpsp.cxx
 SHL2STDLIBS+= -ldl
 .ENDIF
-------------- next part --------------
diff --git a/autodoc/source/mkinc/fullcpp.mk b/autodoc/source/mkinc/fullcpp.mk
index 75b2516..c7519d8 100644
--- a/autodoc/source/mkinc/fullcpp.mk
+++ b/autodoc/source/mkinc/fullcpp.mk
@@ -35,7 +35,8 @@
 .IF "$(GUI)"=="WNT"
 CFLAGS+= -GR
 .ENDIF
-.IF "$(OS)"=="LINUX" || "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || $(COM) == "GCC"
+.IF "$(OS)"=="LINUX" || "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || \
+    "$(OS)"=="DRAGONFLY" || $(COM) == "GCC"
 CFLAGSCXX+= -frtti
 .ENDIF
 
diff --git a/odk/source/unoapploader/unx/makefile.mk b/odk/source/unoapploader/unx/makefile.mk
index 7a93bce..4ba98b1 100644
--- a/odk/source/unoapploader/unx/makefile.mk
+++ b/odk/source/unoapploader/unx/makefile.mk
@@ -43,7 +43,7 @@ LIBSALCPPRT=
 LINK=$(CC)
 .ENDIF
 
-.IF "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD"
+.IF "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD" && "$(OS)"!="DRAGONFLY"
 STDLIB= -ldl
 .ENDIF
 
diff --git a/odk/util/makefile.pmk b/odk/util/makefile.pmk
index 782f1e6..db4a85f 100644
--- a/odk/util/makefile.pmk
+++ b/odk/util/makefile.pmk
@@ -66,7 +66,8 @@ LIBOUT=$(SOLARLIBDIR)
 
 MY_AUTODOC=$(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(SOLARBINDIR)/autodoc
 
-.IF "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || "$(OS)"=="MACOSX" || "$(OS)"=="AIX"
+.IF "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || "$(OS)"=="MACOSX" || \
+    "$(OS)"=="AIX" || "$(OS)"=="DRAGONFLY"
 MY_COPY=$(GNUCOPY)
 MY_COPY_RECURSIVE=$(GNUCOPY) -r
 .ELSE
@@ -133,6 +134,9 @@ DESTPLATFROM=netbsd
 # FREEBSD
 DESTPLATFROM=freebsd
 
+.ELIF "$(OS)"=="DRAGONFLY"
+DESTPLATFROM=dragonfly
+
 .ELIF "$(OS)"=="MACOSX"
 # MACOSX
 DESTPLATFROM=macosx
-------------- next part --------------
diff --git a/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx b/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx
index 59924a2..659ac28 100644
--- a/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx
+++ b/bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx
@@ -39,7 +39,7 @@
 
 /*See: http://people.redhat.com/drepper/selinux-mem.html*/
 #if defined(LINUX) || defined(OPENBSD) || defined(FREEBSD) \
-	|| defined(NETBSD)
+	|| defined(NETBSD) || defined(DRAGONFLY)
 #define USE_DOUBLE_MMAP
 #endif
 
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
index 24818e6..0850d5c 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx
@@ -359,7 +359,8 @@ extern "C" typedef void (*PrivateSnippetExecutor)();
 
 int const codeSnippetSize = 16;
 
-#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX)
+#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX) || \
+    defined(DRAGONFLY)
 namespace
 {
     PrivateSnippetExecutor returnsInRegister(typelib_TypeDescriptionReference * pReturnTypeRef)
@@ -407,7 +408,8 @@ unsigned char * codeSnippet(
         break;
     case typelib_TypeClass_STRUCT:
     case typelib_TypeClass_EXCEPTION:
-#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX)
+#if defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX) || \
+    defined(DRAGONFLY)
         exec = returnsInRegister(pReturnTypeRef);
         if (!exec)
         {
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk b/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk
index 6e2b752..167acf6 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk
@@ -41,7 +41,8 @@ ENABLE_EXCEPTIONS=TRUE
 .IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCLINUXIgcc3" || \
 	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCOPENBSDIgcc3" || \
 	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCFREEBSDIgcc3" || \
-	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCNETBSDIgcc3"
+	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCNETBSDIgcc3" || \
+	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCDRAGONFLYIgcc3"
 
 .IF "$(cppu_no_leak)" == ""
 CFLAGS += -DLEAK_STATIC_DATA
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
index c4c6b47..dca8e69 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx
@@ -29,7 +29,7 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_bridges.hxx"
 
-#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD)
+#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY)
 #include <stdlib.h>
 #else
 #include <malloc.h>
@@ -153,7 +153,8 @@ void callVirtualMethod(
             break;
         default:
         {
-#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX)
+#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX) || \
+    defined(DRAGONFLY)
             sal_Int32 const nRetSize = pReturnTypeDescr->nSize;
             if (bSimpleReturn && nRetSize <= 8 && nRetSize > 0)
             {
@@ -355,7 +356,8 @@ namespace x86
     {
         if (bridges::cpp_uno::shared::isSimpleType( pTD ))
             return true;
-#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(MACOSX)
+#if defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) || \
+    defined(MACOSX) || defined(DRAGONFLY)
         // Only structs of exactly 1, 2, 4, or 8 bytes are returned through
         // registers, see <http://developer.apple.com/documentation/DeveloperTools/
         // Conceptual/LowLevelABI/Articles/IA32.html>:
diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk b/bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk
index 156ca4f..e434e8e 100644
--- a/bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk
+++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk
@@ -41,7 +41,8 @@ ENABLE_EXCEPTIONS=TRUE
 .IF "$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCLINUXXgcc3" || \
 	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCOPENBSDXgcc3" || \
 	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCFREEBSDXgcc3" || \
-	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCNETBSDXgcc3"
+	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCNETBSDXgcc3"  || \
+	"$(COM)$(OS)$(CPU)$(COMNAME)" == "GCCDRAGONFLYXgcc3"  || \
 
 .IF "$(cppu_no_leak)" == ""
 CFLAGS += -DLEAK_STATIC_DATA
diff --git a/bridges/source/cpp_uno/shared/vtablefactory.cxx b/bridges/source/cpp_uno/shared/vtablefactory.cxx
index 0e3e08a..294b525 100644
--- a/bridges/source/cpp_uno/shared/vtablefactory.cxx
+++ b/bridges/source/cpp_uno/shared/vtablefactory.cxx
@@ -83,7 +83,7 @@ namespace {
 extern "C" void * SAL_CALL allocExec(rtl_arena_type *, sal_Size * size) {
     sal_Size pagesize;
 #if defined SAL_UNX
-#if defined FREEBSD || defined NETBSD || defined OPENBSD
+#if defined FREEBSD || defined NETBSD || defined OPENBSD || defined DRAGONFLY
     pagesize = getpagesize();
 #else
     pagesize = sysconf(_SC_PAGESIZE);
diff --git a/cppu/source/uno/data.cxx b/cppu/source/uno/data.cxx
index 0d693ed..b23e12a 100644
--- a/cppu/source/uno/data.cxx
+++ b/cppu/source/uno/data.cxx
@@ -361,7 +361,7 @@ sal_Bool SAL_CALL uno_type_isAssignableFromData(
 
 #if defined(INTEL) \
     && (defined(__GNUC__) && (defined(LINUX) || defined(FREEBSD) || defined(OS2) \
-        || defined(NETBSD) || defined(OPENBSD)) || defined(MACOSX) \
+        || defined(NETBSD) || defined(OPENBSD)) || defined(MACOSX) || defined(DRAGONFLY) \
         || defined(__SUNPRO_CC) && defined(SOLARIS))
 #define MAX_ALIGNMENT_4
 #endif
diff --git a/cppu/util/makefile.mk b/cppu/util/makefile.mk
index 47a3c9a..8d1003b 100644
--- a/cppu/util/makefile.mk
+++ b/cppu/util/makefile.mk
@@ -60,7 +60,7 @@ SHL1STDLIBS = $(SALLIB)
 
 SHL1DEPN=
 SHL1IMPLIB=i$(TARGET)
-.IF "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD" && "$(OS)"!="OPENBSD"
+.IF "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD" && "$(OS)"!="OPENBSD" && "$(OS)"!="DRAGONFLY"
 SHL1DEF=$(MISC)$/$(SHL1TARGET).def
 .ENDIF
 
diff --git a/idlc/source/idlccompile.cxx b/idlc/source/idlccompile.cxx
index b336c62..124e13c 100644
--- a/idlc/source/idlccompile.cxx
+++ b/idlc/source/idlccompile.cxx
@@ -44,7 +44,7 @@
 #include <errno.h>
 #include <unistd.h>
 #if defined(MACOSX) || defined(FREEBSD) || defined(NETBSD) || \
-	defined(AIX) || defined(OPENBSD)
+	defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY)
 #include <sys/wait.h>
 #else
 #include <wait.h>
diff --git a/pyuno/source/module/makefile.mk b/pyuno/source/module/makefile.mk
index 06f9b42..5afc85b 100644
--- a/pyuno/source/module/makefile.mk
+++ b/pyuno/source/module/makefile.mk
@@ -146,6 +146,8 @@ $(PYUNO_MODULE) : $(SLO)$/pyuno_dlopenwrapper.obj
     @echo $(LINK) $(LINKFLAGSSHLCUI) -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
 .ELIF "$(OS)" == "OPENBSD"
     @echo ld -shared -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
+.ELIF "$(OS)" == "DRAGONFLY"
+    @echo ld -shared -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
 .ELIF "$(OS)" == "MACOSX"
     @echo $(CC) -bundle -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o $(EXTRA_LINKFLAGS) $(EXTRA_FRAMEWORK_FLAG) > $(MISC)$/$(@:b).cmd
 .ELSE
diff --git a/sal/inc/osl/endian.h b/sal/inc/osl/endian.h
index ffbf08e..b99ae34 100644
--- a/sal/inc/osl/endian.h
+++ b/sal/inc/osl/endian.h
@@ -159,7 +159,8 @@ extern "C" {
 #if !defined(_WIN32)  && !defined(_WIN16) && !defined(OS2)     && \
     !defined(LINUX)   && !defined(NETBSD) && !defined(SCO)     && \
     !defined(AIX)     && !defined(HPUX)   && !defined(OPENBSD) && \
-    !defined(SOLARIS) && !defined(MACOSX) && !defined(FREEBSD)
+    !defined(SOLARIS) && !defined(MACOSX) && !defined(FREEBSD) && \
+    !defined(DRAGONFLY)
 #	error "Target platform not specified !"
 #endif
 
diff --git a/sal/inc/rtl/uuid.h b/sal/inc/rtl/uuid.h
index 0428970..7b52924 100644
--- a/sal/inc/rtl/uuid.h
+++ b/sal/inc/rtl/uuid.h
@@ -203,6 +203,8 @@ void SAL_CALL rtl_createNamedUuid(
 #define UUID_SYSTEM_TIME_RESOLUTION_100NS_TICKS 10
 #elif OPENBSD
 #define UUID_SYSTEM_TIME_RESOLUTION_100NS_TICKS 10
+#elif DRAGONFLY
+#define UUID_SYSTEM_TIME_RESOLUTION_100NS_TICKS 10
 #else
 #error "System time resolution must be calculated!"
 #endif
diff --git a/sal/inc/sal/alloca.h b/sal/inc/sal/alloca.h
index 83bc5df..2328280 100644
--- a/sal/inc/sal/alloca.h
+++ b/sal/inc/sal/alloca.h
@@ -36,7 +36,7 @@
 #define INCLUDED_ALLOCA_H
 #endif
 
-#elif defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD)
+#elif defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY)
 
 #ifndef INCLUDED_STDLIB_H
 #include <stdlib.h>
diff --git a/sal/inc/sal/config.h b/sal/inc/sal/config.h
index 73b66bc..a1c5361 100644
--- a/sal/inc/sal/config.h
+++ b/sal/inc/sal/config.h
@@ -93,7 +93,7 @@
 #endif
 
 #if defined(SOLARIS) || defined(LINUX) || defined(NETBSD) || defined(FREEBSD) || \
-    defined(SCO) || defined(AIX) || defined(OPENBSD)
+    defined(SCO) || defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY)
 #define SAL_UNX
 #define SAL_DLLEXTENSION ".so"
 #define SAL_DLLPREFIX "lib"
diff --git a/sal/inc/sal/types.h b/sal/inc/sal/types.h
index 0e197f3..353bf0f 100644
--- a/sal/inc/sal/types.h
+++ b/sal/inc/sal/types.h
@@ -351,7 +351,7 @@ typedef struct _sal_Sequence
 #ifdef __cplusplus
 #if defined SAL_W32 || defined SOLARIS || defined LINUX || defined MACOSX || \
     defined FREEBSD || defined NETBSD || defined AIX || defined OS2 || \
-    defined OPENBSD
+    defined OPENBSD || defined DRAGONFLY
 #define SAL_CONST_CAST(type, expr) (const_cast< type >(expr))
 #define SAL_REINTERPRET_CAST(type, expr) (reinterpret_cast< type >(expr))
 #define SAL_STATIC_CAST(type, expr) (static_cast< type >(expr))
diff --git a/sal/osl/unx/backtrace.c b/sal/osl/unx/backtrace.c
index 47cca32..ed29a92 100644
--- a/sal/osl/unx/backtrace.c
+++ b/sal/osl/unx/backtrace.c
@@ -140,7 +140,7 @@ void backtrace_symbols_fd( void **buffer, int size, int fd )
 #endif /* defined SOLARIS */
 
 
-#if defined FREEBSD || defined NETBSD || defined OPENBSD
+#if defined FREEBSD || defined NETBSD || defined OPENBSD || defined(DRAGONFLY)
 #include <dlfcn.h>
 #include <pthread.h>
 #include <setjmp.h>
diff --git a/sal/osl/unx/backtrace.h b/sal/osl/unx/backtrace.h
index b089889..57125f9 100644
--- a/sal/osl/unx/backtrace.h
+++ b/sal/osl/unx/backtrace.h
@@ -28,7 +28,7 @@
 
 
 #if defined (SOLARIS) || defined (FREEBSD) || defined (NETBSD) || \
-	defined (OPENBSD)
+	defined (OPENBSD) || defined (DRAGONFLY)
 
 #ifdef __cplusplus
 extern "C" {
@@ -41,7 +41,8 @@ int backtrace( void **buffer, int max_frames );
 void backtrace_symbols_fd( void **buffer, int size, int fd );
 
 /* no frame.h on FreeBSD */
-#if defined (FREEBSD) || defined (NETBSD) || defined (OPENBSD)
+#if defined (FREEBSD) || defined (NETBSD) || defined (OPENBSD) || \
+    defined (DRAGONFLY)
 struct frame {
     long	arg0[8];
     long	arg1[6];
diff --git a/sal/osl/unx/file.cxx b/sal/osl/unx/file.cxx
index 94ef670..cb80eb8 100644
--- a/sal/osl/unx/file.cxx
+++ b/sal/osl/unx/file.cxx
@@ -273,7 +273,7 @@ void FileHandle_Impl::operator delete (void * p, size_t)
 size_t FileHandle_Impl::getpagesize()
 {
 #if defined(FREEBSD) || defined(NETBSD) || defined(MACOSX) || \
-	defined(OPENBSD)
+	defined(OPENBSD) || defined(DRAGONFLY)
     return sal::static_int_cast< size_t >(::getpagesize());
 #else /* POSIX */
     return sal::static_int_cast< size_t >(::sysconf(_SC_PAGESIZE));
diff --git a/sal/osl/unx/file_volume.cxx b/sal/osl/unx/file_volume.cxx
index 124f267..952450e 100644
--- a/sal/osl/unx/file_volume.cxx
+++ b/sal/osl/unx/file_volume.cxx
@@ -70,7 +70,7 @@ static const sal_Char* MOUNTTAB="/etc/mnttab";
 #include <sys/quota.h>
 static const sal_Char* MOUNTTAB="/etc/mtab";
 
-#elif defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD)
+#elif defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY)
 
 #include <sys/param.h>
 #include <sys/ucred.h>
@@ -180,7 +180,7 @@ oslFileError osl_getVolumeInformation( rtl_uString* ustrDirectoryURL, oslVolumeI
 
 #ifdef HAVE_STATFS_H
 
-#if defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD)
+#if defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD) || defined(DRAGONFLY)
 #   define __OSL_STATFS_STRUCT      			struct statfs
 #   define __OSL_STATFS(dir, sfs)   			statfs((dir), (sfs))
 #   define __OSL_STATFS_BLKSIZ(a)   			((sal_uInt64)((a).f_bsize))
@@ -1123,7 +1123,7 @@ osl_isFloppyMounted (oslVolumeDeviceHandleImpl* pDevice)
  *****************************************************************************/
 
 #if (defined(MACOSX) || defined(NETBSD) || defined(FREEBSD) || \
-	defined(AIX) || defined(OPENBSD))
+	defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY))
 static oslVolumeDeviceHandle osl_isFloppyDrive(const sal_Char* pszPath)
 {
     (void)pszPath;
@@ -1132,7 +1132,7 @@ static oslVolumeDeviceHandle osl_isFloppyDrive(const sal_Char* pszPath)
 #endif /* MACOSX */
 
 #if ( defined(MACOSX) || defined(NETBSD) || defined(FREEBSD) || \
-	defined(AIX) || defined(OPENBSD))
+	defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY))
 static oslFileError osl_mountFloppy(oslVolumeDeviceHandle hFloppy)
 {
     (void)hFloppy;
@@ -1141,7 +1141,7 @@ static oslFileError osl_mountFloppy(oslVolumeDeviceHandle hFloppy)
 #endif /* MACOSX */
 
 #if ( defined(MACOSX) || defined(NETBSD) || defined(FREEBSD) || \
-	defined(AIX) || defined(OPENBSD))
+	defined(AIX) || defined(OPENBSD) || defined(DRAGONFLY))
 static oslFileError osl_unmountFloppy(oslVolumeDeviceHandle hFloppy)
 {
     (void)hFloppy;
@@ -1149,14 +1149,14 @@ static oslFileError osl_unmountFloppy(oslVolumeDeviceHandle hFloppy)
 }
 #endif /* MACOSX */
 
-#if ( defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) )
+#if ( defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY) )
 static sal_Bool osl_getFloppyMountEntry(const sal_Char* pszPath, oslVolumeDeviceHandleImpl* pItem)
 {
     return sal_False;
 }
 #endif /* NETBSD || FREEBSD || OPENBSD */
 
-#if ( defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) )
+#if ( defined(NETBSD) || defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY) )
 static sal_Bool osl_isFloppyMounted(oslVolumeDeviceHandleImpl* pDevice)
 {
     return sal_False;
diff --git a/sal/osl/unx/makefile.mk b/sal/osl/unx/makefile.mk
index 117609a..7913f67 100644
--- a/sal/osl/unx/makefile.mk
+++ b/sal/osl/unx/makefile.mk
@@ -115,8 +115,8 @@ SLOFILES += $(SLO)$/osxlocale.obj
 .ENDIF
 
 .IF "$(OS)"=="SOLARIS" || "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || \
-	"$(OS)$(CPU)"=="LINUXS" || "$(OS)"=="MACOSX" || \
-	"$(OS)"=="AIX" || "$(OS)"=="OPENBSD"
+	"$(OS)$(CPU)"=="LINUXS" || "$(OS)"=="MACOSX" || "$(OS)"=="AIX" || \
+	"$(OS)"=="OPENBSD" || "$(OS)"=="DRAGONFLY"
 SLOFILES += $(SLO)$/backtrace.obj
 OBJFILES += $(OBJ)$/backtrace.obj
 .ENDIF
diff --git a/sal/osl/unx/nlsupport.c b/sal/osl/unx/nlsupport.c
index f7ae5a2..86e0c62 100644
--- a/sal/osl/unx/nlsupport.c
+++ b/sal/osl/unx/nlsupport.c
@@ -32,7 +32,8 @@
 #include <rtl/memory.h>
 
 #if defined(LINUX) || defined(SOLARIS) || defined(NETBSD) || \
-	defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD)
+	defined(FREEBSD) || defined(MACOSX) || defined(OPENBSD) || \
+    defined(DRAGONFLY)
 #include <pthread.h>
 #ifndef MACOSX
  #include <locale.h>
@@ -234,7 +235,7 @@ static rtl_Locale * _parse_locale( const char * locale )
 }
         
 #if defined(LINUX) || defined(SOLARIS) || defined(NETBSD) || \
-	defined(FREEBSD) || defined(OPENBSD)
+	defined(FREEBSD) || defined(OPENBSD) || defined(DRAGONFLY)
 
 /*
  * This implementation of osl_getTextEncodingFromLocale maps
@@ -486,7 +487,7 @@ const _pair _nl_language_list[] = {
     { "WIN-SAMI-2",                 RTL_TEXTENCODING_DONTKNOW }     /* WS2 */
 };
 
-#elif defined(FREEBSD)
+#elif defined(FREEBSD) || defined(DRAGONFLY)
 
 const _pair _nl_language_list[] = {
     { "ASCII",         RTL_TEXTENCODING_ASCII_US       }, /* US-ASCII */
@@ -952,7 +953,7 @@ int _imp_setProcessLocale( rtl_Locale * pLocale )
         /* only change env vars that exist already */
         if( getenv( "LC_ALL" ) ) {
 #if defined( FREEBSD ) || defined( NETBSD ) || defined( MACOSX ) || \
-	defined( AIX ) || defined( OPENBSD )
+	defined( AIX ) || defined( OPENBSD ) || defined( DRAGONFLY )
             setenv( "LC_ALL", locale_buf, 1);
 #else
             setenv( "LC_ALL", locale_buf );
@@ -961,7 +962,7 @@ int _imp_setProcessLocale( rtl_Locale * pLocale )
 
         if( getenv( "LC_CTYPE" ) ) {
 #if defined( FREEBSD ) || defined( NETBSD ) || defined( MACOSX ) || \
-	defined( AIX ) || defined( OPENBSD )
+	defined( AIX ) || defined( OPENBSD ) || defined( DRAGONFLY )
             setenv("LC_CTYPE", locale_buf, 1 );
 #else
             setenv( "LC_CTYPE", locale_buf );
@@ -970,7 +971,7 @@ int _imp_setProcessLocale( rtl_Locale * pLocale )
 
         if( getenv( "LANG" ) ) {
 #if defined( FREEBSD ) || defined( NETBSD ) || defined( MACOSX ) || \
-	defined( AIX ) || defined( OPENBSD)
+	defined( AIX ) || defined( OPENBSD) || defined( DRAGONFLY )
             setenv("LC_CTYPE", locale_buf, 1 );
 #else
             setenv( "LANG", locale_buf );
diff --git a/sal/osl/unx/process.c b/sal/osl/unx/process.c
index 0c85bf0..e736a25 100644
--- a/sal/osl/unx/process.c
+++ b/sal/osl/unx/process.c
@@ -476,7 +476,7 @@ static void ChildStatusProc(void *pData)
 
             if (! INIT_GROUPS(data.m_name, data.m_gid) || (setuid(data.m_uid) != 0))
                 OSL_TRACE("Failed to change uid and guid, errno=%d (%s)\n", errno, strerror(errno));
-#if defined(LINUX) || defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD)
+#if defined(LINUX) || defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY)
             unsetenv("HOME");
 #else
             putenv("HOME=");
diff --git a/sal/osl/unx/socket.c b/sal/osl/unx/socket.c
index eede0a1..8aae036 100644
--- a/sal/osl/unx/socket.c
+++ b/sal/osl/unx/socket.c
@@ -47,7 +47,7 @@
 #endif
 
 #if defined(LINUX) || defined(NETBSD) || defined ( FREEBSD ) || \
-	defined (MACOSX) || defined (OPENBSD)
+	defined (MACOSX) || defined (OPENBSD) || defined(DRAGONFLY)
 #include <sys/poll.h>
 #define HAVE_POLL_H
 #endif /* HAVE_POLL_H */
@@ -785,7 +785,7 @@ static struct hostent* _osl_gethostbyname_r (
     const char *name, struct hostent *result,
     char *buffer, int buflen, int *h_errnop)
 {
-#if defined(LINUX) || (defined(FREEBSD) && (__FreeBSD_version >= 601103))
+#if defined(LINUX) || (defined(FREEBSD) && (__FreeBSD_version >= 601103)) || defined(DRAGONFLY)
     struct hostent *__result; /* will be the same as result */
     int __error;
     __error = gethostbyname_r (name, result, buffer, buflen,
diff --git a/sal/osl/unx/system.h b/sal/osl/unx/system.h
index 4b6b766..047a643 100644
--- a/sal/osl/unx/system.h
+++ b/sal/osl/unx/system.h
@@ -226,6 +226,24 @@
 #       define  PTHREAD_SIGACTION                       pthread_sigaction
 #endif
 
+#ifdef DRAGONFLY
+#   define  ETIME ETIMEDOUT
+#   include <pthread.h>
+#   include <sys/sem.h>
+#   include <semaphore.h>
+#   include <dlfcn.h>
+#   include <sys/filio.h>
+#   include <sys/ioctl.h>
+#   include <sys/param.h>
+#   include <sys/time.h>
+#   include <sys/uio.h>
+#   include <sys/exec.h>
+#   include <sys/un.h>
+#   include <netinet/tcp.h>
+#   include <machine/endian.h>
+#   define  IORESOURCE_TRANSFER_BSD
+#endif
+
 #ifdef SCO
 #   define AF_IPX -1
 #	include <strings.h>
@@ -376,7 +394,7 @@ int macxp_resolveAlias(char *path, int buflen);
     !defined(LINUX)   && !defined(NETBSD) && !defined(FREEBSD) && !defined(SCO)  && \
     !defined(AIX)     && !defined(HPUX)   && \
     !defined(SOLARIS) && !defined(MACOSX) && \
-    !defined(OPENBSD)
+    !defined(OPENBSD) && !defined(DRAGONFLY)
 #	error "Target platform not specified!"
 #endif
 
diff --git a/sal/osl/unx/time.c b/sal/osl/unx/time.c
index db03442..6bd09ce 100644
--- a/sal/osl/unx/time.c
+++ b/sal/osl/unx/time.c
@@ -34,7 +34,7 @@
 
 /* FIXME: detection should be done in configure script */
 #if defined(MACOSX) || defined(FREEBSD) || defined(NETBSD) || \
-	defined(LINUX) || defined(OPENBSD)
+	defined(LINUX) || defined(OPENBSD) || defined(DRAGONFLY)
 #define STRUCT_TM_HAS_GMTOFF 1
 
 #elif defined(SOLARIS)
diff --git a/sal/qa/osl/file/osl_File_Const.h b/sal/qa/osl/file/osl_File_Const.h
index 41cc033..2384bf6 100644
--- a/sal/qa/osl/file/osl_File_Const.h
+++ b/sal/qa/osl/file/osl_File_Const.h
@@ -89,7 +89,7 @@ const sal_Char pBuffer_Blank[]  = "";
 #	include <errno.h>
 #	include <fcntl.h>
 #	include <sys/stat.h>
-#   if !defined MACOSX
+#   if !defined MACOSX && !defined DRAGONFLY
 #	    include <sys/statfs.h>
 #   else
 #       include <sys/param.h>
diff --git a/sal/rtl/source/alloc_arena.c b/sal/rtl/source/alloc_arena.c
index ce4faa2..6b0a27f 100644
--- a/sal/rtl/source/alloc_arena.c
+++ b/sal/rtl/source/alloc_arena.c
@@ -1254,7 +1254,7 @@ static sal_Size
 rtl_machdep_pagesize (void)
 {
 #if defined(SAL_UNX)
-#if defined(FREEBSD) || defined(NETBSD)
+#if defined(FREEBSD) || defined(NETBSD) || defined(DRAGONFLY)
     return ((sal_Size)getpagesize());
 #else  /* POSIX */
     return ((sal_Size)sysconf(_SC_PAGESIZE));
diff --git a/sal/rtl/source/macro.hxx b/sal/rtl/source/macro.hxx
index 7028840..495d586 100644
--- a/sal/rtl/source/macro.hxx
+++ b/sal/rtl/source/macro.hxx
@@ -55,6 +55,8 @@
 #define THIS_OS "AIX"
 #elif defined OPENBSD
 #define THIS_OS "OpenBSD"
+#elif defined DRAGONFLY
+#define THIS_OS "DragonFly"
 #endif
 
 #if ! defined THIS_OS


More information about the LibreOffice mailing list