diff options
Diffstat (limited to 'lib/spack/env/cc')
-rwxr-xr-x | lib/spack/env/cc | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/lib/spack/env/cc b/lib/spack/env/cc index 5efe015c9e..99e164dbc7 100755 --- a/lib/spack/env/cc +++ b/lib/spack/env/cc @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) @@ -125,7 +125,7 @@ case "$command" in comp="FC" lang_flags=F ;; - f77|xlf|xlf_r|pgf77|frt|flang) + f77|xlf|xlf_r|pgf77) command="$SPACK_F77" language="Fortran 77" comp="F77" @@ -320,9 +320,13 @@ while [ -n "$1" ]; do if [ -z "$arg" ]; then shift; arg="$1"; fi if [[ "$arg" = -rpath=* ]]; then rp="${arg#-rpath=}" + elif [[ "$arg" = --rpath=* ]]; then + rp="${arg#--rpath=}" elif [[ "$arg" = -rpath,* ]]; then rp="${arg#-rpath,}" - elif [[ "$arg" = -rpath ]]; then + elif [[ "$arg" = --rpath,* ]]; then + rp="${arg#--rpath,}" + elif [[ "$arg" =~ ^-?-rpath$ ]]; then shift; arg="$1" if [[ "$arg" != -Wl,* ]]; then die "-Wl,-rpath was not followed by -Wl,*" @@ -339,7 +343,9 @@ while [ -n "$1" ]; do if [ -z "$arg" ]; then shift; arg="$1"; fi if [[ "$arg" = -rpath=* ]]; then rp="${arg#-rpath=}" - elif [[ "$arg" = -rpath ]]; then + elif [[ "$arg" = --rpath=* ]]; then + rp="${arg#--rpath=}" + elif [[ "$arg" = -rpath ]] || [[ "$arg" = --rpath ]]; then shift; arg="$1" if [[ "$arg" != -Xlinker,* ]]; then die "-Xlinker,-rpath was not followed by -Xlinker,*" @@ -434,7 +440,7 @@ then ld) flags=("${flags[@]}" -headerpad_max_install_names) ;; ccld) - flags=("${flags[@]}" -Wl,-headerpad_max_install_names) ;; + flags=("${flags[@]}" "-Wl,-headerpad_max_install_names") ;; esac fi @@ -491,19 +497,19 @@ args+=("${flags[@]}") # Insert include directories just prior to any system include directories for dir in "${includes[@]}"; do args+=("-I$dir"); done -for dir in "${isystem_includes[@]}"; do args+=("-isystem$dir"); done +for dir in "${isystem_includes[@]}"; do args+=("-isystem" "$dir"); done IFS=':' read -ra spack_include_dirs <<< "$SPACK_INCLUDE_DIRS" if [[ $mode == cpp || $mode == cc || $mode == as || $mode == ccld ]]; then if [[ "$isystem_was_used" == "true" ]] ; then - for dir in "${spack_include_dirs[@]}"; do args+=("-isystem$dir"); done + for dir in "${spack_include_dirs[@]}"; do args+=("-isystem" "$dir"); done else for dir in "${spack_include_dirs[@]}"; do args+=("-I$dir"); done fi fi for dir in "${system_includes[@]}"; do args+=("-I$dir"); done -for dir in "${isystem_system_includes[@]}"; do args+=("-isystem$dir"); done +for dir in "${isystem_system_includes[@]}"; do args+=("-isystem" "$dir"); done # Library search paths for dir in "${libdirs[@]}"; do args+=("-L$dir"); done @@ -512,12 +518,12 @@ for dir in "${system_libdirs[@]}"; do args+=("-L$dir"); done # RPATHs arguments case "$mode" in ccld) - if [ ! -z "$dtags_to_add" ] ; then args+=("$linker_arg$dtags_to_add") ; fi + if [ -n "$dtags_to_add" ] ; then args+=("$linker_arg$dtags_to_add") ; fi for dir in "${rpaths[@]}"; do args+=("$rpath$dir"); done for dir in "${system_rpaths[@]}"; do args+=("$rpath$dir"); done ;; ld) - if [ ! -z "$dtags_to_add" ] ; then args+=("$dtags_to_add") ; fi + if [ -n "$dtags_to_add" ] ; then args+=("$dtags_to_add") ; fi for dir in "${rpaths[@]}"; do args+=("-rpath" "$dir"); done for dir in "${system_rpaths[@]}"; do args+=("-rpath" "$dir"); done ;; |