Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi Rene,

On 22.05.2012 09:06, Rene Engelhard wrote:
Hi,

On Tue, May 22, 2012 at 08:38:55AM +0200, David Ostrovsky wrote:
I was indeed not sure with arm and was told on irc that eabi would be
the right way to go...
Well, oabi is dead and anything shipping right now is eabi, so it wasn't
THAT wrong, but we shouldn't break the stuff, should we?

And who really cares, which ARCH are we using for Mips ;-)
Distros building for mips.
(like Debian does.)

Anyway I fixed it accordingly and here is the new version.
Sorry, now you broke ARM EABI. That's even worse than your initial version
wrt ARM.
no, it was my fault. I fixed it now.
As I said:

arm*-linux-gnueabi) is RTL_ARCH=ARM_EABI.
arm*-linux) is RTL_ARCH=ARM_OABI.
You then maybe need to invent new case statements etc. as $host_cpu is the same
in both cases.
To avoid the code duplication I'm using a nested case statement here.

Ciao
David
From b573e864d0f758bf86cde1c536cbe62e625852b7 Mon Sep 17 00:00:00 2001
From: David Ostrovsky <David.Ostrovsky@gmx.de>
Date: Mon, 21 May 2012 19:01:29 +0200
Subject: [PATCH] fdo#50162 merge rtlbootstrap.mk into configure.in

Change-Id: I241be2704a069ec1f6be5861084039569673cc12
---
 config_host.mk.in                 |    2 +
 configure.in                      |   59 ++++++++++++++++++-
 instsetoo_native/util/makefile.mk |    1 -
 sal/CustomTarget_generated.mk     |   21 +------
 sal/Library_sal.mk                |    2 +
 sal/Package_generated.mk          |    1 -
 sal/rtl/source/bootstrap.cxx      |    6 +-
 sal/rtl/source/macro.hxx          |  116 -------------------------------------
 sdext/platform.mk                 |    8 +-
 solenv/inc/settings.mk            |    2 -
 10 files changed, 69 insertions(+), 149 deletions(-)
 delete mode 100644 sal/rtl/source/macro.hxx

diff --git a/config_host.mk.in b/config_host.mk.in
index 0a85bfd..76d4a1d 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -426,6 +426,8 @@ export REDLAND_CFLAGS=@REDLAND_CFLAGS@
 export REDLAND_LIBS=@REDLAND_LIBS@
 export RHINO_JAR=@RHINO_JAR@
 export RPM=@RPM@
+export RTL_OS=@RTL_OS@
+export RTL_ARCH=@RTL_ARCH@
 export SAC_JAR=@SAC_JAR@
 export SAL_ENABLE_FILE_LOCKING=1
 export SAMPLEICC_CFLAGS=@SAMPLEICC_CFLAGS@
diff --git a/configure.in b/configure.in
index 510d82a..a14b908 100644
--- a/configure.in
+++ b/configure.in
@@ -2991,6 +2991,8 @@ aix*)
     GUI=UNX
     GUIBASE=unx
     OS=AIX
+    RTL_OS=AIX
+    RTL_ARCH=PowerPC
     OUTPATH=unxaigppc
     P_SEP=:
     SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
@@ -3003,6 +3005,7 @@ cygwin*)
     GUI=WNT
     GUIBASE=WIN
     OS=WNT
+    RTL_OS=Windows
     P_SEP=";"
 
     case "$host_cpu" in
@@ -3010,11 +3013,13 @@ cygwin*)
         if test "$CL_X64" != ""; then
             CPU=X
             CPUNAME=X86_64
+            RTL_ARCH=X86_64
             LIB64="lib/x64"
             OUTPATH=wntmscx$COMEX
         else
             CPU=I
             CPUNAME=INTEL
+            RTL_ARCH=x86
             OUTPATH=wntmsci$COMEX
         fi
         ;;
@@ -3033,12 +3038,14 @@ darwin*)
     # Not sure if "Aqua" is the right term to use?
     GUIBASE="aqua"
     OS=MACOSX
+    RTL_OS=MacOSX
     P_SEP=:
 
     case "$host_cpu" in
     arm*)
         CPU=R
         CPUNAME=ARM
+        RTL_ARCH=ARM_EABI
         GUIBASE=cocoatouch
         OUTPATH=unxiosr
         OS=IOS;
@@ -3046,11 +3053,13 @@ darwin*)
     powerpc*)
         CPU=P
         CPUNAME=POWERPC
+        RTL_ARCH=PowerPC
         OUTPATH=unxmacxp
         ;;
     i*86|x86_64)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         OUTPATH=unxmacxi
         ;;
     *)
@@ -3065,6 +3074,7 @@ dragonfly*)
     GUI=UNX
     GUIBASE=unx
     OS=DRAGONFLY
+    RTL_OS=DragonFly
     OUTPATH=unxdfly
     P_SEP=:
 
@@ -3072,10 +3082,12 @@ dragonfly*)
     i*86)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         ;;
     x86_64)
         CPU=X
         CPUNAME=X86_64
+        RTL_ARCH=X86_64
         ;;
     *)
         AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
@@ -3090,6 +3102,7 @@ freebsd*)
     COM=GCC
     GUI=UNX
     GUIBASE=unx
+    RTL_OS=FreeBSD
     OS=FREEBSD
     OUTPATH=unxfbsd
     P_SEP=:
@@ -3098,11 +3111,13 @@ freebsd*)
     i*86)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         OUTPATH=unxfbsdi
         ;;
     x86_64)
         CPU=X
         CPUNAME=X86_64
+        RTL_ARCH=X86_64
         ;;
     *)
         AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
@@ -3118,17 +3133,19 @@ kfreebsd*)
     GUI=UNX
     GUIBASE=unx
     OS=LINUX
-
+    RTL_OS=kFreeBSD
     case "$host_cpu" in
 
     i*86)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         OUTPATH=unxkfgi6
         ;;
     x86_64)
         CPU=X
         CPUNAME=X86_64
+        RTL_ARCH=X86_64
         LIB64="lib64"
         OUTPATH=unxkfgx6
         ;;
@@ -3146,6 +3163,7 @@ linux-gnu*)
     GUI=UNX
     GUIBASE=unx
     OS=LINUX
+    RTL_OS=Linux
     P_SEP=:
 
     case "$host_cpu" in
@@ -3153,6 +3171,7 @@ linux-gnu*)
     alpha)
         CPU=L
         CPUNAME=AXP
+        RTL_ARCH=ALPHA
         OUTPATH=unxlngaxp
         ;;
     arm*)
@@ -3160,82 +3179,102 @@ linux-gnu*)
         CPUNAME=ARM
         EPM_FLAGS="-a arm"
         OUTPATH=unxlngr
+        RTL_ARCH=ARM_EABI
+        case "$host_cpu" in
+        arm*-linux)
+            RTL_ARCH=ARM_OABI
+            ;;
+        esac
         ;;
     hppa)
         CPU=H
         CPUNAME=HPPA
+        RTL_ARCH=HPPA
         EPM_FLAGS="-a hppa"
         OUTPATH=unxlnghppa
         ;;
     i*86)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         OUTPATH=unxlngi6
         ;;
     ia64)
         CPU=A
         CPUNAME=IA64
+        RTL_ARCH=IA64
         OUTPATH=unxlnga
         ;;
     mips)
         CPU=M
         CPUNAME=GODSON
+        RTL_ARCH=MIPS_EB
         EPM_FLAGS="-a mips"
         OUTPATH=unxlngmips
         ;;
     mips64)
         CPU=M
         CPUNAME=GODSON
+        RTL_ARCH=MIPS_EB
         EPM_FLAGS="-a mips64"
         OUTPATH=unxlngmips
         ;;
     mips64el)
         CPU=M
         CPUNAME=GODSON
+        RTL_ARCH=MIPS_EL
         EPM_FLAGS="-a mips64el"
         OUTPATH=unxlngmips
         ;;
     mipsel)
         CPU=M
         CPUNAME=GODSON
+        RTL_ARCH=MIPS_EL
         EPM_FLAGS="-a mipsel"
         OUTPATH=unxlngmips
         ;;
     m68k)
         CPU=6
         CPUNAME=M68K
+        RTL_ARCH=M68K
         OUTPATH=unxlngm68k
         ;;
     powerpc)
         CPU=P
         CPUNAME=POWERPC
+        RTL_ARCH=PowerPC
         OUTPATH=unxlngppc
         ;;
     powerpc64)
         CPU=P
         CPUNAME=POWERPC64
+        RTL_ARCH=PowerPC_64
         LIB64="lib64"
         OUTPATH=unxlngppc64
         ;;
     sparc)
         CPU=S
         CPUNAME=SPARC
+        RTL_ARCH=SPARC
         OUTPATH=unxlngs
         ;;
     s390)
         CPU=3
         CPUNAME=S390
+        RTL_ARCH=S390
         OUTPATH=unxlngs390
         ;;
     s390x)
         CPU=3
         CPUNAME=S390x
+        RTL_ARCH=S390x
         LIB64="lib64"
         OUTPATH=unxlngs390x
         ;;
     x86_64)
         CPU=X
         CPUNAME=X86_64
+        RTL_ARCH=X86_64
         LIB64="lib64"
         OUTPATH=unxlngx6
         ;;
@@ -3253,6 +3292,7 @@ linux-androideabi*)
     GUI=UNX
     GUIBASE=android
     OS=ANDROID
+    RTL_OS=Android
     P_SEP=:
 
     case "$host_cpu" in
@@ -3260,6 +3300,7 @@ linux-androideabi*)
     arm|armel)
         CPU=R
         CPUNAME=ARM
+        RTL_ARCH=ARM_EABI
         OUTPATH=unxandr
         ;;
     *)
@@ -3275,6 +3316,7 @@ mingw*)
     GUI=WNT
     GUIBASE=WIN
     OS=WNT
+    RTL_OS=Windows
     P_SEP=:
 
     case "$host_cpu" in
@@ -3282,10 +3324,12 @@ mingw*)
         if test "$CL_X64" != ""; then
             CPU=X
             CPUNAME=X86_64
+            RTL_ARCH=X86_84
             OUTPATH=wntgccx$COMEX
         else
             CPU=I
             CPUNAME=INTEL
+            RTL_ARCH=x86
             OUTPATH=wntgcci$COMEX
         fi
         ;;
@@ -3304,6 +3348,7 @@ mingw*)
     GUI=UNX
     GUIBASE=unx
     OS=NETBSD
+    RTL_OS=NetBSD
     OUTPATH=unxnbsd
     P_SEP=:
 
@@ -3311,18 +3356,22 @@ mingw*)
     i*86)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         ;;
     powerpc)
         CPU=P
         CPUNAME=POWERPC
+        RTL_ARCH=PowerPC
         ;;
     sparc)
         CPU=S
         CPUNAME=SPARC
+        RTL_ARCH=SPARC
         ;;
     x86_64)
         CPU=X
         CPUNAME=X86_64
+        RTL_ARCH=X86_64
         ;;
     *)
         AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
@@ -3338,6 +3387,7 @@ openbsd*)
     GUI=UNX
     GUIBASE=unx
     OS=OPENBSD
+    RTL_OS=OpenBSD
     OUTPATH=unxobsd
     P_SEP=:
 
@@ -3345,10 +3395,12 @@ openbsd*)
     i*86)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         ;;
     x86_64)
         CPU=X
         CPUNAME=X86_64
+        RTL_ARCH=X86_64
         ;;
     *)
         AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
@@ -3368,17 +3420,20 @@ solaris*)
     GUI=UNX
     GUIBASE=unx
     OS=SOLARIS
+    RTL_OS=Solaris
     P_SEP=:
 
     case "$host_cpu" in
     i*86)
         CPU=I
         CPUNAME=INTEL
+        RTL_ARCH=x86
         OUTPATH=unxsoli
         ;;
     sparc)
         CPU=S
         CPUNAME=SPARC
+        RTL_ARCH=SPARC
         OUTPATH=unxsogs
         ;;
     *)
@@ -3419,6 +3474,8 @@ SOLARINC="-I. -I${SOLARVER}/$INPATH/inc/external -I${SOLARVER}/$INPATH/inc 
-I$SR
 AC_SUBST(COM)
 AC_SUBST(CPU)
 AC_SUBST(CPUNAME)
+AC_SUBST(RTL_OS)
+AC_SUBST(RTL_ARCH)
 AC_SUBST(EPM_FLAGS)
 AC_SUBST(GUI)
 AC_SUBST(GUIBASE)
diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk
index 94187ee..7906d74 100644
--- a/instsetoo_native/util/makefile.mk
+++ b/instsetoo_native/util/makefile.mk
@@ -30,7 +30,6 @@ PRJNAME=instsetoo_native
 TARGET=util
 
 .INCLUDE:  settings.mk
-.INCLUDE: $(SOLARINCDIR)$/rtlbootstrap.mk
 
 # PERL:=@echo
 
diff --git a/sal/CustomTarget_generated.mk b/sal/CustomTarget_generated.mk
index 5b11927..f5c07c3 100644
--- a/sal/CustomTarget_generated.mk
+++ b/sal/CustomTarget_generated.mk
@@ -30,28 +30,9 @@ $(eval $(call gb_CustomTarget_CustomTarget,sal/generated))
 sal_DIR := $(call gb_CustomTarget_get_workdir,sal/generated)
 
 $(call gb_CustomTarget_get_target,sal/generated) : \
-       $(sal_DIR)/rtlbootstrap.mk $(sal_DIR)/sal/udkversion.h \
+       $(sal_DIR)/sal/udkversion.h \
        $(if $(filter-out $(COM),MSC),$(sal_DIR)/sal/typesizes.h)
 
-ifeq ($(COM),MSC)
-$(sal_DIR)/rtlbootstrap.mk :| $(sal_DIR)/.dir
-       echo RTL_OS:=Windows > $@
-ifeq ($(CPUNAME),INTEL)
-       echo RTL_ARCH:=x86 >> $@
-else
-       echo RTL_ARCH:=X86_64 >> $@
-endif
-else
-$(sal_DIR)/rtlbootstrap.mk : $(sal_DIR)/sal/typesizes.h | $(sal_DIR)/.dir
-       $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CXX,1)
-       $(call gb_Helper_abbreviate_dirs, \
-       (echo '#include "macro.hxx"'; echo RTL_OS:=THIS_OS; echo RTL_ARCH:=THIS_ARCH) > 
$(sal_DIR)/bootstrap.cxx && \
-       $(CXX) -E $(gb_OSDEFS) $(gb_CXXFLAGS) -D$(CPUNAME) -I$(sal_DIR) -I$(SRCDIR)/sal/rtl/source \
-               -I$(SRCDIR)/sal/inc $(sal_DIR)/bootstrap.cxx > $@.tmp && \
-       cat $@.tmp | grep '^RTL_' | sed -e 's/"//g' > $@ && \
-       rm $(sal_DIR)/bootstrap.cxx $@.tmp)
-endif
-
 $(sal_DIR)/sal/typesizes.h :| $(sal_DIR)/sal/.dir
        $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
        echo '/* This file is autogenerated from configure script data */' > $@
diff --git a/sal/Library_sal.mk b/sal/Library_sal.mk
index adbe803..de22417 100644
--- a/sal/Library_sal.mk
+++ b/sal/Library_sal.mk
@@ -52,6 +52,8 @@ $(eval $(call gb_Library_add_defs,sal,\
        ) \
        $(LFS_CFLAGS) \
        -DSAL_DLLIMPLEMENTATION \
+       -DRTL_OS="\"$(RTL_OS)"\" \
+       -DRTL_ARCH="\"$(RTL_ARCH)"\" \
 ))
 
 $(eval $(call gb_Library_use_libraries,sal,\
diff --git a/sal/Package_generated.mk b/sal/Package_generated.mk
index 719e97c..5bc43dc 100644
--- a/sal/Package_generated.mk
+++ b/sal/Package_generated.mk
@@ -27,7 +27,6 @@
 
 $(eval $(call gb_Package_Package,sal_generated,$(call gb_CustomTarget_get_workdir,sal/generated)))
 
-$(eval $(call gb_Package_add_file,sal_generated,inc/rtlbootstrap.mk,rtlbootstrap.mk))
 $(eval $(call gb_Package_add_file,sal_generated,inc/sal/udkversion.h,sal/udkversion.h))
 
 ifneq ($(COM),MSC)
diff --git a/sal/rtl/source/bootstrap.cxx b/sal/rtl/source/bootstrap.cxx
index 98c983b..e82d537 100644
--- a/sal/rtl/source/bootstrap.cxx
+++ b/sal/rtl/source/bootstrap.cxx
@@ -47,8 +47,6 @@
 #include <rtl/uri.hxx>
 #include "rtl/allocator.hxx"
 
-#include "macro.hxx"
-
 #include <algorithm>
 #include <map>
 #include <memory>
@@ -477,12 +475,12 @@ bool Bootstrap_Impl::getValue(
     }
     if ( key == "_OS" ) {
         rtl_uString_assign(
-            value, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(THIS_OS)).pData);
+            value, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(RTL_OS)).pData);
         return true;
     }
     if ( key == "_ARCH" ) {
         rtl_uString_assign(
-            value, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(THIS_ARCH)).pData);
+            value, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(RTL_ARCH)).pData);
         return true;
     }
     if ( key == "_CPPU_ENV" ) {
diff --git a/sal/rtl/source/macro.hxx b/sal/rtl/source/macro.hxx
deleted file mode 100644
index 09c802e..0000000
--- a/sal/rtl/source/macro.hxx
+++ /dev/null
@@ -1,116 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _RTL_MACRO_HXX
-#define _RTL_MACRO_HXX
-
-#include <rtl/bootstrap.h>
-#include <rtl/ustring.hxx>
-#include <osl/endian.h>
-
-#if defined WIN32
-#define THIS_OS "Windows"
-#elif defined SOLARIS
-#define THIS_OS "Solaris"
-#elif defined LINUX
-#ifdef __FreeBSD_kernel__
-#define THIS_OS "kFreeBSD"
-#else
-#define THIS_OS "Linux"
-#endif
-#elif defined ANDROID
-#define THIS_OS "Android"
-#elif defined MACOSX
-#define THIS_OS "MacOSX"
-#elif defined IOS
-#define THIS_OS "iOS"
-#elif defined NETBSD
-#define THIS_OS "NetBSD"
-#elif defined FREEBSD
-#define THIS_OS "FreeBSD"
-#elif defined AIX
-#define THIS_OS "AIX"
-#elif defined OPENBSD
-#define THIS_OS "OpenBSD"
-#elif defined DRAGONFLY
-#define THIS_OS "DragonFly"
-#endif
-
-#if ! defined THIS_OS
-#error "unknown OS -- insert your OS identifier above"
-this is inserted for the case that the preprocessor ignores error
-#endif
-
-#if defined X86_64
-#    define THIS_ARCH "X86_64"
-#elif defined INTEL
-#    define THIS_ARCH "x86"
-#elif defined POWERPC64
-#    define THIS_ARCH "PowerPC_64"
-#elif defined POWERPC
-#    define THIS_ARCH "PowerPC"
-#elif defined S390X
-#    define THIS_ARCH "S390x"
-#elif defined S390
-#    define THIS_ARCH "S390"
-#elif defined SPARC
-#if defined IS_LP64
-#    define THIS_ARCH "SPARC64"
-#else
-#    define THIS_ARCH "SPARC"
-#endif
-#elif defined MIPS
-#    ifdef OSL_BIGENDIAN
-#        define THIS_ARCH "MIPS_EB"
-#    else
-#        define THIS_ARCH "MIPS_EL"
-#    endif
-#elif defined ARM
-#    ifdef __ARM_EABI__
-#        define THIS_ARCH "ARM_EABI"
-#    else
-#        define THIS_ARCH "ARM_OABI"
-#    endif
-#elif defined IA64
-#    define THIS_ARCH "IA64"
-#elif defined M68K
-#    define THIS_ARCH "M68K"
-#elif defined HPPA
-#    define THIS_ARCH "HPPA"
-#elif defined AXP
-#    define THIS_ARCH "ALPHA"
-#endif
-
-#if ! defined THIS_ARCH
-#error "unknown ARCH -- insert your ARCH identifier above"
-this is inserted for the case that the preprocessor ignores error
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/platform.mk b/sdext/platform.mk
index bda30c2..2c818c8 100644
--- a/sdext/platform.mk
+++ b/sdext/platform.mk
@@ -25,10 +25,10 @@
 # in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
 # instead of those above.
 
-# TODO: the variables from rtlbootstrap.mk could (and should) be set by
-# configure
-# TODO: there should be their lowercase variants, too
-include $(OUTDIR)/inc/rtlbootstrap.mk
+# TODO
+# https://bugs.freedesktop.org/show_bug.cgi?id=50163
+# move definition of PLATFORMID into configure.in
+#
 
 sdext__LOWERCASE_TABLE := A-a B-b C-c D-d E-e F-f G-g H-h I-i J-j K-k L-l M-m N-n O-o P-p R-r S-s 
T-t U-u V-v W-w X-x Y-y Z-z
 
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index 575fdc9..1eeba4f 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -42,8 +42,6 @@ force_dmake_to_error
 
 .INCLUDE : minor.mk
 
-.INCLUDE .IGNORE : rtlbootstrap.mk
-
 PLATFORMID = $(RTL_OS:l)_$(RTL_ARCH:l)
 EXTNAME*=$(EXTENSIONNAME)_in
 
-- 
1.7.5.4


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.