[PATCH] D145884: test-release.sh: build projects and runtimes lists with semicolons

Dimitry Andric via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 12 11:55:13 PDT 2023


dim created this revision.
dim added reviewers: amyk, hans, thieta, tstellar.
Herald added subscribers: krytarowski, arichardson, emaste.
Herald added a reviewer: sscalpone.
Herald added a project: All.
dim requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added a subscriber: sstefan1.
Herald added a project: LLVM.

While doing a test-release.sh run on FreeBSD, I ran into a sed error due
to the introduction of the GNU extension '\s' in commit 500587e23dfd <https://reviews.llvm.org/rG500587e23dfd33dcd0169a5ab9e2657a6b12c315>.

Scanning for blanks (spaces and tabs) could be done in a more portable
fashion using the [[:blank:]] character class. But it is easier to avoid
the original problem, which is that the projects and runtime lists have
to be separated by semicolons, and cannot start with a semicolon.

Instead, use the shell's alternate value parameter expansion mechanism,
which makes it easy to append items to lists with separators in between,
and without any leading separator. This also avoids having to run sed on
the end result.

In addition, build runtimes for each phase, otherwise the last phase can
fail to find several symbols in compiler-rt, if that has been built.
This is because the host's compiler-rt is not guaranteed to have those
symbols.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D145884

Files:
  llvm/utils/release/test-release.sh


Index: llvm/utils/release/test-release.sh
===================================================================
--- llvm/utils/release/test-release.sh
+++ llvm/utils/release/test-release.sh
@@ -261,43 +261,43 @@
 fi
 
 # Projects list
-projects="llvm clang"
+projects="llvm;clang"
 if [ $do_clang_tools = "yes" ]; then
-  projects="$projects clang-tools-extra"
+  projects="${projects:+$projects;}clang-tools-extra"
 fi
 runtimes=""
 if [ $do_rt = "yes" ]; then
-  runtimes="$runtimes compiler-rt"
+  runtimes="${runtimes:+$runtimes;}compiler-rt"
 fi
 if [ $do_libs = "yes" ]; then
-  runtimes="$runtimes libcxx"
+  runtimes="${runtimes:+$runtimes;}libcxx"
   if [ $do_libcxxabi = "yes" ]; then
-    runtimes="$runtimes libcxxabi"
+    runtimes="${runtimes:+$runtimes;}libcxxabi"
   fi
   if [ $do_libunwind = "yes" ]; then
-    runtimes="$runtimes libunwind"
+    runtimes="${runtimes:+$runtimes;}libunwind"
   fi
 fi
 if [ $do_openmp = "yes" ]; then
-  projects="$projects openmp"
+  projects="${projects:+$projects;}openmp"
 fi
 if [ $do_bolt = "yes" ]; then
-  projects="$projects bolt"
+  projects="${projects:+$projects;}bolt"
 fi
 if [ $do_lld = "yes" ]; then
-  projects="$projects lld"
+  projects="${projects:+$projects;}lld"
 fi
 if [ $do_lldb = "yes" ]; then
-  projects="$projects lldb"
+  projects="${projects:+$projects;}lldb"
 fi
 if [ $do_polly = "yes" ]; then
-  projects="$projects polly"
+  projects="${projects:+$projects;}polly"
 fi
 if [ $do_mlir = "yes" ]; then
-  projects="$projects mlir"
+  projects="${projects:+$projects;}mlir"
 fi
 if [ $do_flang = "yes" ]; then
-  projects="$projects flang"
+  projects="${projects:+$projects;}flang"
 fi
 
 # Go to the build directory (may be different from CWD)
@@ -405,16 +405,11 @@
     esac
 
     if [ "$Phase" -eq "3" ]; then
-      project_list=${projects// /;}
-      # Leading spaces will result in ";<runtime name>". This causes a CMake
-      # error because the empty string before the first ';' is treated as an
-      # unknown runtime name.
-      runtimes=$(echo $runtimes | sed -e 's/^\s*//')
-      runtime_list=${runtimes// /;}
+      project_list="$projects"
     else
       project_list="clang"
-      runtime_list=""
     fi
+    runtime_list="$runtimes"
     echo "# Using C compiler: $c_compiler"
     echo "# Using C++ compiler: $cxx_compiler"
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D145884.504461.patch
Type: text/x-patch
Size: 2336 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230312/e7b85b96/attachment.bin>


More information about the llvm-commits mailing list