Handle multiple -Wl,-rpath,... paths
This commit is contained in:
parent
5038a38e29
commit
dc6a33b716
23
lib/spack/env/cc
vendored
23
lib/spack/env/cc
vendored
@ -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,}")
|
||||||
|
Loading…
Reference in New Issue
Block a user