]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
ci: code cleanup
authorFrantisek Sumsal <frantisek@sumsal.cz>
Sat, 30 Jan 2021 17:33:26 +0000 (18:33 +0100)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Mon, 1 Feb 2021 11:00:30 +0000 (12:00 +0100)
.github/workflows/cibuild.sh

index 7476395dc857753c1f1fa978350eb6a7880a2e7d..7fc30c344ca70b9d11b8d206da45e1f4179d338d 100755 (executable)
@@ -18,75 +18,72 @@ fi
 
 set -ex
 
-export CC="$CC"
-export CXX="$CXX"
-
 for phase in "${PHASES[@]}"; do
     case $phase in
-       CONFIGURE)
-               opts="--disable-use-tty-group \
-                       --disable-makeinstall-chown \
-                       --enable-all-programs \
-                       --enable-asan \
-                       --enable-ubsan \
-                       --without-python \
-                       --enable-werror"
+    CONFIGURE)
+        opts=(
+            --disable-use-tty-group
+            --disable-makeinstall-chown
+            --enable-all-programs
+            --enable-asan
+            --enable-ubsan
+            --without-python
+            --enable-werror
+        )
 
-               if [[ "$COMPILER" == clang* ]]; then
-                       opts="$opts --enable-fuzzing-engine"
-               fi
+        if [[ "$COMPILER" == clang* ]]; then
+            opts+=(--enable-fuzzing-engine)
+        fi
 
-               sudo -E git clean -xdf
+        sudo -E git clean -xdf
 
-               ./autogen.sh
-               CC=$CC CXX=$CXX CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ./configure $opts
-               ;;
-        MAKE)
-               make -j
-               make -j check-programs
-               ;;
-       INSTALL)
-               make install DESTDIR=/tmp/dest
-               ;;
-       CHECK)
-               # All the following black magic is to make test/eject/umount work, since
-               # eject execl()s the uninstrumented /bin/umount binary, which confuses
-               # ASan. The workaround for this is to set $LD_PRELOAD to the ASan's
-               # runtime DSO, which works well with gcc without any additional hassle.
-               # However, since clang, by default, links ASan statically, we need to
-               # explicitly state we want dynamic linking (see -shared-libasan above).
-               # That, however, introduces another issue - clang's ASan runtime is in
-               # a non-standard path, so all binaries compiled in such way refuse
-               # to start. That's what the following blob of code is for - it detects
-               # the ASan's runtime path and adds the respective directory to
-               # the dynamic linker cache.
-               #
-               # The actual $LD_PRELOAD sheanigans are done directly in
-               # tests/ts/eject/umount.
-               asan_rt_name="$(ldd ./kill | awk '/lib.+asan.*.so/ {print $1; exit}')"
-               asan_rt_path="$($CC --print-file-name "$asan_rt_name")"
-               echo "Detected ASan runtime: $asan_rt_name ($asan_rt_path)"
-               if [[ -z "$asan_rt_name" || -z "$asan_rt_path" ]]; then
-                       echo >&2 "Couldn't detect ASan runtime, can't continue"
-                       exit 1
-               fi
+        ./autogen.sh
+        CC="$CC" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ./configure "${opts[@]}"
+        ;;
+    MAKE)
+        make -j
+        make -j check-programs
+        ;;
+    INSTALL)
+        make install DESTDIR=/tmp/dest
+        ;;
+    CHECK)
+        # All the following black magic is to make test/eject/umount work, since
+        # eject execl()s the uninstrumented /bin/umount binary, which confuses
+        # ASan. The workaround for this is to set $LD_PRELOAD to the ASan's
+        # runtime DSO, which works well with gcc without any additional hassle.
+        # However, since clang, by default, links ASan statically, we need to
+        # explicitly state we want dynamic linking (see -shared-libasan above).
+        # That, however, introduces another issue - clang's ASan runtime is in
+        # a non-standard path, so all binaries compiled in such way refuse
+        # to start. That's what the following blob of code is for - it detects
+        # the ASan's runtime path and adds the respective directory to
+        # the dynamic linker cache.
+        #
+        # The actual $LD_PRELOAD sheanigans are done directly in
+        # tests/ts/eject/umount.
+        asan_rt_name="$(ldd ./kill | awk '/lib.+asan.*.so/ {print $1; exit}')"
+        asan_rt_path="$($CC --print-file-name "$asan_rt_name")"
+        echo "Detected ASan runtime: $asan_rt_name ($asan_rt_path)"
+        if [[ -z "$asan_rt_name" || -z "$asan_rt_path" ]]; then
+            echo >&2 "Couldn't detect ASan runtime, can't continue"
+            exit 1
+        fi
 
-               if [[ "$COMPILER" == clang* ]]; then
-                       mkdir -p /etc/ld.so.conf.d/
-                       echo "${asan_rt_path%/*}" > /etc/ld.so.conf.d/99-clang-libasan.conf
-                       ldconfig
-               fi
+        if [[ "$COMPILER" == clang* ]]; then
+            mkdir -p /etc/ld.so.conf.d/
+            echo "${asan_rt_path%/*}" > /etc/ld.so.conf.d/99-clang-libasan.conf
+            ldconfig
+        fi
 
-               ./tests/run.sh --show-diff
-               ;;
-       DISTCHECK)
-               make distcheck
-               ;;
-       
-        *)
-            echo >&2 "Unknown phase '$phase'"
-            exit 1
+        ./tests/run.sh --show-diff
+        ;;
+    DISTCHECK)
+        make distcheck
+        ;;
+
+    *)
+        echo >&2 "Unknown phase '$phase'"
+        exit 1
     esac
 done
-       
-