We could also use DYLD_FALLBACK_LIBRARY_PATH.
The dyld manual have this note regarding System Integrity Protection
(SIP).
Note: If System Integrity Protection is enabled, these environment
variables are ignored when executing binaries protected by System
Integrity Protection.
If using restricted executables (e.g python), the DYLD_* will not be
honoured.
It might prove to be a problem in the wild. I'm not sure how to mitigate
this.
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Change-Id: I9d62c4615f01e3a60d3068a13b5e2b1061aef6b4
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1653
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
-if [ "x${MSYSTEM:-}" != "x" ]; then
+if [ "$BT_OS_TYPE" = "mingw" ]; then
path_to_trace="C://path/to/trace"
output_path="C://output/path"
else
path_to_trace="C://path/to/trace"
output_path="C://output/path"
else
scriptdir="$(dirname "${BASH_SOURCE[0]}")"
scriptdir="$(dirname "${BASH_SOURCE[0]}")"
+# The OS on which we are running. See [1] for possible values of 'uname -s'.
+# We do a bit of translation to ease our life down the road for comparison.
+# Export it so that called executables can use it.
+# [1] https://en.wikipedia.org/wiki/Uname#Examples
+if [ "x${BT_OS_TYPE:-}" = "x" ]; then
+ BT_OS_TYPE="$(uname -s)"
+ case "$BT_OS_TYPE" in
+ MINGW*)
+ BT_OS_TYPE="mingw"
+ ;;
+ Darwin)
+ BT_OS_TYPE="darwin"
+ ;;
+ Linux)
+ BT_OS_TYPE="linux"
+ ;;
+ *)
+ BT_OS_TYPE="unsupported"
+ ;;
+ esac
+fi
+export BT_OS_TYPE
+
# Allow overriding the source and build directories
if [ "x${BT_TESTS_SRCDIR:-}" = "x" ]; then
BT_TESTS_SRCDIR="$scriptdir/.."
# Allow overriding the source and build directories
if [ "x${BT_TESTS_SRCDIR:-}" = "x" ]; then
BT_TESTS_SRCDIR="$scriptdir/.."
# Allow overriding the babeltrace2 executables
if [ "x${BT_TESTS_BT2_BIN:-}" = "x" ]; then
BT_TESTS_BT2_BIN="$BT_TESTS_BUILDDIR/../src/cli/babeltrace2"
# Allow overriding the babeltrace2 executables
if [ "x${BT_TESTS_BT2_BIN:-}" = "x" ]; then
BT_TESTS_BT2_BIN="$BT_TESTS_BUILDDIR/../src/cli/babeltrace2"
- if [ "x${MSYSTEM:-}" != "x" ]; then
+ if [ "$BT_OS_TYPE" = "mingw" ]; then
BT_TESTS_BT2_BIN="${BT_TESTS_BT2_BIN}.exe"
fi
fi
BT_TESTS_BT2_BIN="${BT_TESTS_BT2_BIN}.exe"
fi
fi
if [ "x${BT_TESTS_BT2LOG_BIN:-}" = "x" ]; then
BT_TESTS_BT2LOG_BIN="$BT_TESTS_BUILDDIR/../src/cli/babeltrace2-log"
if [ "x${BT_TESTS_BT2LOG_BIN:-}" = "x" ]; then
BT_TESTS_BT2LOG_BIN="$BT_TESTS_BUILDDIR/../src/cli/babeltrace2-log"
- if [ "x${MSYSTEM:-}" != "x" ]; then
+ if [ "$BT_OS_TYPE" = "mingw" ]; then
BT_TESTS_BT2LOG_BIN="${BT_TESTS_BT2LOG_BIN}.exe"
fi
fi
BT_TESTS_BT2LOG_BIN="${BT_TESTS_BT2LOG_BIN}.exe"
fi
fi
local main_lib_path="${BT_TESTS_BUILDDIR}/../src/lib/.libs"
# Set the library search path so the python interpreter can load libbabeltrace2
local main_lib_path="${BT_TESTS_BUILDDIR}/../src/lib/.libs"
# Set the library search path so the python interpreter can load libbabeltrace2
- if [ "x${MSYSTEM:-}" != "x" ]; then
+ if [ "$BT_OS_TYPE" = "mingw" ]; then
lib_search_var="PATH"
lib_search_path="${python_provider_path}:${main_lib_path}:${PATH:-}"
lib_search_var="PATH"
lib_search_path="${python_provider_path}:${main_lib_path}:${PATH:-}"
+ elif [ "$BT_OS_TYPE" = "darwin" ]; then
+ lib_search_var="DYLD_LIBRARY_PATH"
+ lib_search_path="${python_provider_path}:${main_lib_path}:${DYLD_LIBRARY_PATH:-}"
else
lib_search_var="LD_LIBRARY_PATH"
lib_search_path="${python_provider_path}:${main_lib_path}:${LD_LIBRARY_PATH:-}"
else
lib_search_var="LD_LIBRARY_PATH"
lib_search_path="${python_provider_path}:${main_lib_path}:${LD_LIBRARY_PATH:-}"