diff options
author | Harmen Stoppels <harmenstoppels@gmail.com> | 2023-05-05 12:16:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-05 12:16:31 +0200 |
commit | bbc779f3f0d8b4462b3dd3d205dca809ecdf4441 (patch) | |
tree | b9e5cb7ecbfaeab85963a61520652aed4300e429 /lib/spack/env | |
parent | 3ecb84d398611749ded7376e9e9e2a786d528bad (diff) | |
download | spack-bbc779f3f0d8b4462b3dd3d205dca809ecdf4441.tar.gz spack-bbc779f3f0d8b4462b3dd3d205dca809ecdf4441.tar.bz2 spack-bbc779f3f0d8b4462b3dd3d205dca809ecdf4441.tar.xz spack-bbc779f3f0d8b4462b3dd3d205dca809ecdf4441.zip |
cc: deal with -Wl,-rpath= without value, deal with NAG (#37215)
Spack never parsed `nagfor` linker arguments put on the compiler line:
```
nagfor -Wl,-Wl,,-rpath,,/path
````
so, let's continue not attempting to parse that.
Diffstat (limited to 'lib/spack/env')
-rwxr-xr-x | lib/spack/env/cc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/lib/spack/env/cc b/lib/spack/env/cc index eee39e7f35..a647602cad 100755 --- a/lib/spack/env/cc +++ b/lib/spack/env/cc @@ -434,8 +434,6 @@ wl_expect_rpath=no xlinker_expect_rpath=no parse_Wl() { - # drop -Wl - shift while [ $# -ne 0 ]; do if [ "$wl_expect_rpath" = yes ]; then if system_dir "$1"; then @@ -448,7 +446,9 @@ parse_Wl() { case "$1" in -rpath=*) arg="${1#-rpath=}" - if system_dir "$arg"; then + if [ -z "$arg" ]; then + shift; continue + elif system_dir "$arg"; then append system_rpath_dirs_list "$arg" else append rpath_dirs_list "$arg" @@ -456,7 +456,9 @@ parse_Wl() { ;; --rpath=*) arg="${1#--rpath=}" - if system_dir "$arg"; then + if [ -z "$arg" ]; then + shift; continue + elif system_dir "$arg"; then append system_rpath_dirs_list "$arg" else append rpath_dirs_list "$arg" @@ -467,6 +469,11 @@ parse_Wl() { ;; "$dtags_to_strip") ;; + -Wl) + # Nested -Wl,-Wl means we're in NAG compiler territory, we don't support + # it. + return 1 + ;; *) append other_args_list "-Wl,$1" ;; @@ -576,7 +583,9 @@ while [ $# -ne 0 ]; do ;; -Wl,*) IFS=, - parse_Wl $1 + if ! parse_Wl ${1#-Wl,}; then + append other_args_list "$1" + fi unset IFS ;; -Xlinker) |