Handle multiple -Wl,-rpath,... paths

This commit is contained in:
Erik Schnetter 2016-02-12 12:09:29 -05:00
parent 5038a38e29
commit dc6a33b716

23
lib/spack/env/cc vendored
View File

@ -176,14 +176,21 @@ while [ -n "$1" ]; do
-Wl,*) -Wl,*)
arg="${1#-Wl,}" arg="${1#-Wl,}"
if [ -z "$arg" ]; then shift; arg="$1"; fi if [ -z "$arg" ]; then shift; arg="$1"; fi
if [[ "$arg" = -rpath=* ]]; then if [[ $arg = -rpath=* ]]; then
rpaths+=("${arg#-rpath=}") arg="${arg#-rpath=}"
elif [[ "$arg" = -rpath ]]; then for rpath in ${arg//,/ }; do
rpaths+=("$rpath")
done
elif [[ $arg = -rpath ]]; then
shift; arg="$1" shift; arg="$1"
if [[ "$arg" != -Wl,* ]]; then if [[ $arg != -Wl,* ]]; then
die "-Wl,-rpath was not followed by -Wl,*" die "-Wl,-rpath was not followed by -Wl,*"
fi fi
rpaths+=("${arg#-Wl,}") # TODO: Handle multiple -Wl, continuations of -Wl,-rpath
arg="${arg#-Wl,}"
for rpath in ${arg//,/ }; do
rpaths+=("$rpath")
done
else else
other_args+=("-Wl,$arg") other_args+=("-Wl,$arg")
fi fi
@ -191,11 +198,11 @@ while [ -n "$1" ]; do
-Xlinker,*) -Xlinker,*)
arg="${1#-Xlinker,}" arg="${1#-Xlinker,}"
if [ -z "$arg" ]; then shift; arg="$1"; fi if [ -z "$arg" ]; then shift; arg="$1"; fi
if [[ "$arg" = -rpath=* ]]; then if [[ $arg = -rpath=* ]]; then
rpaths+=("${arg#-rpath=}") rpaths+=("${arg#-rpath=}")
elif [[ "$arg" = -rpath ]]; then elif [[ $arg = -rpath ]]; then
shift; arg="$1" shift; arg="$1"
if [[ "$arg" != -Xlinker,* ]]; then if [[ $arg != -Xlinker,* ]]; then
die "-Xlinker,-rpath was not followed by -Xlinker,*" die "-Xlinker,-rpath was not followed by -Xlinker,*"
fi fi
rpaths+=("${arg#-Xlinker,}") rpaths+=("${arg#-Xlinker,}")