From 8a0d887f9153034794c176231b890461c07986b2 Mon Sep 17 00:00:00 2001 From: Zbynek Slajchrt <zbynek.slajchrt@oracle.com> Date: Fri, 13 Apr 2018 10:14:59 +0200 Subject: [PATCH] LLVM build scripts treat spaces in paths correctly --- .../llvm_tools/llvm-c++ | 4 +- .../llvm_tools/llvm-cc | 2 +- .../llvm_tools/llvm-fc | 2 +- .../llvm_tools/llvm-helper | 40 +++++++++++-------- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/com.oracle.truffle.r.native/llvm_tools/llvm-c++ b/com.oracle.truffle.r.native/llvm_tools/llvm-c++ index cd595e9cfe..a6cd013f89 100755 --- a/com.oracle.truffle.r.native/llvm_tools/llvm-c++ +++ b/com.oracle.truffle.r.native/llvm_tools/llvm-c++ @@ -53,9 +53,9 @@ else get_llvm_tool unamestr=`uname` if [[ "$unamestr" == 'Linux' ]]; then - llvm_args="-stdlib=libc++ -I/usr/include/libcxxabi $llvm_args" + llvm_args="-stdlib=libc++ -I/usr/include/libcxxabi ${llvm_args[@]}" fi - runit $llvm_tool_bin $llvm_args + runit $llvm_tool_bin "${llvm_args[@]}" ecode=$? if [[ $ecode -ne 0 ]]; then exit $ecode diff --git a/com.oracle.truffle.r.native/llvm_tools/llvm-cc b/com.oracle.truffle.r.native/llvm_tools/llvm-cc index 6534f76c0f..8b83f95858 100755 --- a/com.oracle.truffle.r.native/llvm_tools/llvm-cc +++ b/com.oracle.truffle.r.native/llvm_tools/llvm-cc @@ -51,7 +51,7 @@ then else llvm_tool=clang get_llvm_tool - runit $llvm_tool_bin $llvm_args + runit $llvm_tool_bin "${llvm_args[@]}" ecode=$? if [[ $ecode -ne 0 ]]; then exit $ecode diff --git a/com.oracle.truffle.r.native/llvm_tools/llvm-fc b/com.oracle.truffle.r.native/llvm_tools/llvm-fc index 2ee09e49c9..7a6bfea588 100755 --- a/com.oracle.truffle.r.native/llvm_tools/llvm-fc +++ b/com.oracle.truffle.r.native/llvm_tools/llvm-fc @@ -69,7 +69,7 @@ function ll_to_bc() { llvm_ir_bc_file=${d}/${f%%.*}.bc } -runit $FASTR_LLVM_GFORTRAN -fplugin=$FASTR_LLVM_DRAGONEGG -fplugin-arg-dragonegg-emit-ir $llvm_args +runit $FASTR_LLVM_GFORTRAN -fplugin=$FASTR_LLVM_DRAGONEGG -fplugin-arg-dragonegg-emit-ir "${llvm_args[@]}" ll_to_bc runit $FASTR_LLVM_GFORTRAN_LLVM_AS $llvm_ir_file -o $llvm_ir_bc_file runit rm $llvm_ir_file diff --git a/com.oracle.truffle.r.native/llvm_tools/llvm-helper b/com.oracle.truffle.r.native/llvm_tools/llvm-helper index 8633852412..7164390ac1 100644 --- a/com.oracle.truffle.r.native/llvm_tools/llvm-helper +++ b/com.oracle.truffle.r.native/llvm_tools/llvm-helper @@ -33,13 +33,13 @@ fi function runit() { if [ $run_mode == "echo" ] then - echo $@ + echo "$@" elif [ $run_mode == "echorun" ] then - echo $@ - $@ + echo "$@" + "$@" else - $@ + "$@" fi } @@ -50,7 +50,8 @@ function runit() { # llvm_args: processed arguments to pass to llvm tool, e.g. clang function analyze_args() { - llvm_args="-g " + llvm_args_tmp=() + llvm_args_tmp+=("-g") if [ $fortran -eq 1 ] then llvm_file_ext='.ll' @@ -59,9 +60,9 @@ function analyze_args() { fi is_link=0 - out_file_opt="" + out_file_opt=() llvm_ir_file="" - llvm_ir_file_opt="" + llvm_ir_file_opt=() c_opt_found=0 while [[ $# -gt 0 ]] @@ -69,7 +70,7 @@ function analyze_args() { case $1 in -c) c_opt_found=1 - llvm_args+="$1 " + llvm_args_tmp+=("$1") ;; -o) shift @@ -84,35 +85,42 @@ function analyze_args() { then llvm_ir_file=${d}/${f%%.*} llvm_ir_file="${llvm_ir_file}${llvm_file_ext}" - llvm_ir_file_opt="-o ${llvm_ir_file}" + llvm_ir_file_opt=("-o" $llvm_ir_file) else - out_file_opt="-o $p" + out_file_opt=("-o" "$p") fi ;; *) - llvm_args+="$1 " + llvm_args_tmp+=("$1") ;; esac shift done + llvm_args=() if [ $fortran -eq 1 ] then if [ $c_opt_found -eq 1 ] then - llvm_args="-S $llvm_ir_file_opt $llvm_args " + llvm_args+=("-S") + llvm_args+=("${llvm_ir_file_opt[@]}") + llvm_args+=("${llvm_args_tmp[@]}") else - llvm_args="$out_file_opt $llvm_args " + llvm_args+=("${out_file_opt[@]}") + llvm_args+=("${llvm_args_tmp[@]}") fi else if [ $c_opt_found -eq 1 ] then - llvm_args="-emit-llvm $llvm_ir_file_opt $llvm_args " + llvm_args+=("-emit-llvm") + llvm_args+=("${llvm_ir_file_opt[@]}") + llvm_args+=("${llvm_args_tmp[@]}") else - llvm_args="$out_file_opt $llvm_args " + llvm_args+=("${out_file_opt[@]}") + llvm_args+=("${llvm_args_tmp[@]}") fi fi - + } # Input arguments: -- GitLab