mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-27 16:18:52 +00:00
59bab98b2d
This reverts commit 7bcf18bfab
.
56 lines
1.3 KiB
Bash
56 lines
1.3 KiB
Bash
#!/bin/sh
|
|
# (C) 2008 Yann E. MORIN <yann.morin.1998@free.fr>
|
|
# Licensed under the GPL v.2
|
|
|
|
LIBDUMA_SO=
|
|
|
|
case "$1" in
|
|
-on)
|
|
case "${LD_PRELOAD}" in
|
|
*${LIBDUMA_SO}*) ;;
|
|
*) LD_PRELOAD="${LIBDUMA_SO} ${LD_PRELOAD}";;
|
|
esac
|
|
shift
|
|
;;
|
|
-off)
|
|
# We use a suposedly POSIX-compliant shell: /bin/sh
|
|
# -> we can't use "${LD_PRELOAD//${LIBDUMA_SO}/}", it's not POSIX
|
|
# We don't know if sed will be present on the target
|
|
# -> we can't use $(echo "${LD_PRELOAD}" |sed -r -e "s|${LIBDUMA_SO}||;")
|
|
# So, iterate through LD_PRELOAD, and keep only those libs that
|
|
# are not "${LIBDUMA_SO}"
|
|
old_LD_PRELOAD="${LD_PRELOAD}"
|
|
LD_PRELOAD=
|
|
for lib in ${old_LD_PRELOAD}; do
|
|
[ "${lib}" = "${LIBDUMA_SO}" ] || LD_PRELOAD="${LD_PRELOAD} ${lib}"
|
|
done
|
|
unset old_LD_PRELOAD
|
|
shift
|
|
;;
|
|
-show)
|
|
case "${LD_PRELOAD}" in
|
|
*${LIBDUMA_SO}*) echo "duma is enabled";;
|
|
*) echo "duma is disabled";;
|
|
esac
|
|
exit 0
|
|
;;
|
|
"")
|
|
cat <<_EOF_
|
|
Usage:
|
|
. $0 <-on|-off|-show>
|
|
Sets, unsets or show DUMA usage.
|
|
$0 <executable [arg...]>
|
|
Execute 'executable' (with arguments 'args') using DUMA.
|
|
_EOF_
|
|
false # Don't 'exit', we could well be source'd
|
|
;;
|
|
*)
|
|
exec "$0" -on "$@"
|
|
;;
|
|
esac
|
|
|
|
export LD_PRELOAD
|
|
if [ -n "$1" ]; then
|
|
exec "$@"
|
|
fi
|