diff --git a/com.oracle.truffle.r.native/llvm_tools/llvm-c++ b/com.oracle.truffle.r.native/llvm_tools/llvm-c++ index cd595e9cfe5099ce61321ea3abc55d04851bcb92..a6cd013f896c514a70b4a2138ab77fff7ddf0719 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 6534f76c0f66231e5822cff1dfa92e1f4c780ac5..8b83f95858b8f5c9fc5723aab602983755376fb0 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 2ee09e49c9fb6dfef2c30e5b32c4afe392439af6..7a6bfea588bf29ad8206ff9b34922307c553853a 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 86338524120e4b401df12df3c7ef01305caf426c..7164390ac123dcffe911b2375db8493824d828e1 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: