summaryrefslogtreecommitdiffstats
path: root/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'desktop')
-rw-r--r--desktop/CustomTarget_soffice.mk3
-rw-r--r--desktop/Module_desktop.mk23
-rw-r--r--desktop/Package_scripts.mk2
-rwxr-xr-xdesktop/scripts/soffice_nodyn.sh187
4 files changed, 202 insertions, 13 deletions
diff --git a/desktop/CustomTarget_soffice.mk b/desktop/CustomTarget_soffice.mk
index 1fa356db16b3..89e554b2c67a 100644
--- a/desktop/CustomTarget_soffice.mk
+++ b/desktop/CustomTarget_soffice.mk
@@ -13,7 +13,8 @@ $(call gb_CustomTarget_get_target,desktop/soffice) : \
$(call gb_CustomTarget_get_workdir,desktop/soffice)/soffice.sh
$(call gb_CustomTarget_get_workdir,desktop/soffice)/soffice.sh : \
- $(SRCDIR)/desktop/scripts/soffice.sh \
+ $(SRCDIR)/desktop/scripts/soffice$(if $(DISABLE_DYNLOADING),_nodyn).sh \
+ $(BUILDDIR)/config_host.mk \
| $(call gb_CustomTarget_get_workdir,desktop/soffice)/.dir
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),SED,1)
$(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),SED)
diff --git a/desktop/Module_desktop.mk b/desktop/Module_desktop.mk
index 1c8bdb5691b3..3be81056aad9 100644
--- a/desktop/Module_desktop.mk
+++ b/desktop/Module_desktop.mk
@@ -33,7 +33,7 @@ $(eval $(call gb_Module_add_l10n_targets,desktop,\
ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
$(eval $(call gb_Module_add_targets,desktop,\
Executable_soffice_bin \
- Executable_unopkg_bin \
+ $(if $(DISABLE_DYNLOADING),,Executable_unopkg_bin) \
$(if $(ENABLE_BREAKPAD),Executable_minidump_upload) \
Library_migrationoo2 \
Library_migrationoo3 \
@@ -43,6 +43,7 @@ $(eval $(call gb_Module_add_targets,desktop,\
ifneq ($(OS),MACOSX)
ifneq ($(OS),WNT)
+ifeq (,$(DISABLE_DYNLOADING))
$(eval $(call gb_Module_add_targets,desktop,\
Pagein_calc \
Pagein_common \
@@ -52,7 +53,7 @@ $(eval $(call gb_Module_add_targets,desktop,\
CustomTarget_soffice \
))
-ifeq ($(USING_X11), TRUE)
+ifeq ($(USING_X11),TRUE)
$(eval $(call gb_Module_add_targets,desktop,\
Package_sbase_sh \
Package_scalc_sh \
@@ -63,9 +64,15 @@ $(eval $(call gb_Module_add_targets,desktop,\
Package_soffice_sh \
))
endif
+else # $(DISABLE_DYNLOADING)
+$(eval $(call gb_Module_add_targets,desktop, \
+ CustomTarget_soffice \
+ Package_soffice_sh \
+))
endif
endif
endif
+endif # DESKTOP
ifeq ($(OS),WNT)
@@ -98,18 +105,10 @@ $(eval $(call gb_Module_add_targets,desktop,\
WinResTarget_swriter \
))
-else ifeq ($(OS),MACOSX)
-
-else ifeq ($(OS),ANDROID)
-
-else ifeq ($(OS),iOS)
-
-else ifeq ($(OS),HAIKU)
-
-else
+else ifeq (,$(filter MACOSX ANDROID iOS HAIKU,$(OS)))
$(eval $(call gb_Module_add_targets,desktop,\
- Executable_oosplash \
+ $(if $(DISABLE_DYNLOADING),,Executable_oosplash) \
))
endif
diff --git a/desktop/Package_scripts.mk b/desktop/Package_scripts.mk
index fbd74f43539b..362430532154 100644
--- a/desktop/Package_scripts.mk
+++ b/desktop/Package_scripts.mk
@@ -12,7 +12,9 @@ $(eval $(call gb_Package_Package,desktop_scripts_install,$(SRCDIR)/desktop/scrip
ifeq (,$(filter MACOSX WNT,$(OS)))
$(eval $(call gb_Package_add_file,desktop_scripts_install,$(LIBO_BIN_FOLDER)/gdbtrace,gdbtrace))
+ifeq (,$(DISABLE_DYNLOADING))
$(eval $(call gb_Package_add_file,desktop_scripts_install,$(LIBO_BIN_FOLDER)/unopkg,unopkg.sh))
+endif
endif
diff --git a/desktop/scripts/soffice_nodyn.sh b/desktop/scripts/soffice_nodyn.sh
new file mode 100755
index 000000000000..60c82e1254cc
--- /dev/null
+++ b/desktop/scripts/soffice_nodyn.sh
@@ -0,0 +1,187 @@
+#!/bin/sh
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+# use POSIX locale for well-defined tool output
+LO_SAVE_LC_ALL="$LC_ALL"
+LC_ALL=C
+export LC_ALL
+
+#
+# STAR_PROFILE_LOCKING_DISABLED=1
+# export STAR_PROFILE_LOCKING_DISABLED
+#
+
+# file locking now enabled by default
+SAL_ENABLE_FILE_LOCKING=1
+export SAL_ENABLE_FILE_LOCKING
+
+# uncomment line below to disable anti aliasing of fonts
+# SAL_ANTIALIAS_DISABLE=true; export SAL_ANTIALIAS_DISABLE
+
+# uncomment line below if you encounter problems starting soffice on your system
+# SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS
+
+#@JITC_PROCESSOR_TYPE_EXPORT@
+
+# resolve installation directory
+sd_cwd=$(pwd)
+sd_res="$0"
+while [ -h "$sd_res" ] ; do
+ sd_dirname=$(dirname "$sd_res")
+ cd "$sd_dirname" || exit $?
+ sd_basename=$(basename "$sd_res")
+ sd_res=$(ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g")
+done
+sd_dirname=$(dirname "$sd_res")
+cd "$sd_dirname" || exit $?
+sd_prog=$(pwd)
+cd "$sd_cwd" || exit $?
+
+# try to get some debug output?
+GDBTRACECHECK=
+STRACECHECK=
+VALGRINDCHECK=
+RRCHECK=
+
+# count number of selected checks; only one is allowed
+checks=
+EXTRAOPT=
+# force the --valgrind option if the VALGRIND variable is set
+test -n "$VALGRIND" && EXTRAOPT="--valgrind"
+
+# force the --record option if the RR variable is set
+test -n "$RR" && EXTRAOPT="--record"
+
+for arg in "$@" $EXTRAOPT ; do
+ case "$arg" in
+ --record)
+ if which rr >/dev/null 2>&1 ; then
+ # smoketest may already be recorded => ignore nested
+ RRCHECK="rr record --nested=ignore"
+ checks="c$checks"
+ else
+ echo "Error: Can't find the tool \"rr\", --record option will be ignored."
+ exit 1
+ fi
+ ;;
+ --backtrace)
+ if which gdb >/dev/null 2>&1 ; then
+ GDBTRACECHECK="gdb -nx --command=$sd_prog/gdbtrace --args"
+ checks="c$checks"
+ else
+ echo "Error: Can't find the tool \"gdb\", --backtrace option will be ignored."
+ exit 1
+ fi
+ ;;
+ --strace)
+ if which strace >/dev/null 2>&1 ; then
+ STRACECHECK="strace -o strace.log -f -tt -s 256"
+ checks="c$checks"
+ else
+ echo "Error: Can't find the tool \"strace\", --strace option will be ignored."
+ exit 1;
+ fi
+ ;;
+ --valgrind)
+ test -n "$VALGRINDCHECK" && continue;
+ if which valgrind >/dev/null 2>&1 ; then
+ # another valgrind tool might be forced via the environment variable
+ test -z "$VALGRIND" && VALGRIND="memcheck"
+ # --trace-children-skip is pretty useful but supported only with valgrind >= 3.6.0
+ valgrind_ver=$(valgrind --version | sed -e "s/valgrind-//")
+ valgrind_ver_maj=$(echo "$valgrind_ver" | awk -F. '{ print $1 }')
+ valgrind_ver_min=$(echo "$valgrind_ver" | awk -F. '{ print $2 }')
+ valgrind_skip=
+ if [ "$valgrind_ver_maj" -gt 3 ] || ( [ "$valgrind_ver_maj" -eq 3 ] && [ "$valgrind_ver_min" -ge 6 ] ) ; then
+ valgrind_skip='--trace-children-skip=*/java,*/gij'
+ fi
+ # finally set the valgrind check
+ VALGRINDCHECK="valgrind --tool=$VALGRIND --trace-children=yes $valgrind_skip --num-callers=50 --error-limit=no"
+ echo "use kill -SIGUSR2 pid to dump traces of active allocations"
+ checks="c$checks"
+ case "$VALGRIND" in
+ helgrind|memcheck|massif|exp-dhat)
+ export G_SLICE=always-malloc
+ export GLIBCXX_FORCE_NEW=1
+ ;;
+ callgrind)
+ unset MALLOC_CHECK_ MALLOC_PERTURB_ G_SLICE
+ export SAL_DISABLE_FLOATGRAB=1
+ export OOO_DISABLE_RECOVERY=1
+ export SAL_DISABLE_WATCHDOG=1
+ export LD_BIND_NOW=1
+ ;;
+ esac
+ else
+ echo "Error: Can't find the tool \"valgrind\", --valgrind option will be ignored"
+ exit 1
+ fi
+ ;;
+ esac
+done
+
+if echo "$checks" | grep -q "cc" ; then
+ echo "Error: The debug options --record, --backtrace, --strace, and --valgrind cannot be used together."
+ echo " Please, use them one by one."
+ exit 1;
+fi
+
+case "$(uname -s)" in
+OpenBSD)
+# this is a temporary hack until we can live with the default search paths
+ LD_LIBRARY_PATH="$sd_prog${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+ JAVA_HOME=$(javaPathHelper -h libreoffice-java 2> /dev/null)
+ export LD_LIBRARY_PATH
+ if [ -n "${JAVA_HOME}" ]; then
+ export JAVA_HOME
+ fi
+ ;;
+NetBSD|DragonFly)
+# this is a temporary hack until we can live with the default search paths
+ LD_LIBRARY_PATH="$sd_prog${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+ export LD_LIBRARY_PATH
+ ;;
+AIX)
+ LIBPATH="$sd_prog${LIBPATH:+:$LIBPATH}"
+ export LIBPATH
+ ;;
+esac
+
+# restore locale setting, avoiding to export empty LC_ALL, s. tdf#130080
+if [ -n "$LO_SAVE_LC_ALL" ]; then
+ LC_ALL="$LO_SAVE_LC_ALL"
+else
+ unset LC_ALL
+fi
+
+export UNO_HOME="file://${sd_prog}"
+
+# run soffice.bin directly when you want to get the backtrace
+if [ -n "$GDBTRACECHECK" ] ; then
+ exec $GDBTRACECHECK "$sd_prog/soffice.bin" "$@"
+fi
+
+# valgrind --log-file=valgrind.log does not work well with --trace-children=yes
+if [ -n "$VALGRINDCHECK" ] && [ -z "$VALGRIND" ] ; then
+ echo "redirecting the standard and the error output to valgrind.log"
+ exec > valgrind.log 2>&1
+fi
+
+# oosplash does the rest: forcing pages in, javaldx etc. are
+exec $RRCHECK $VALGRINDCHECK $STRACECHECK "$sd_prog/soffice.bin" "$@"