]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkosi: pass through more toolchain flags
authorLuca Boccassi <luca.boccassi@gmail.com>
Thu, 11 Sep 2025 17:39:17 +0000 (18:39 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Fri, 12 Sep 2025 09:31:32 +0000 (10:31 +0100)
mkosi/mkosi.conf
mkosi/mkosi.images/build/mkosi.conf.d/arch/mkosi.build.chroot
mkosi/mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.build.chroot
mkosi/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot

index 5bf0798385bebf092b1251ce077d8abe34fc33fc..b0cedfab8e5e75305187aaaa336a256bf6e7b056 100644 (file)
@@ -14,7 +14,11 @@ PassEnvironment=
         NO_BUILD
         WIPE
         SANITIZERS
+        CC
+        CXX
         CFLAGS
+        CPPFLAGS
+        CXXFLAGS
         LDFLAGS
         LLVM
         MESON_VERBOSE
index f7268e80f13773afd4ce9815c3c297cdae14e874..910a7a0c479c57505c7b76ff194d34fe01cb5c66 100755 (executable)
@@ -36,10 +36,10 @@ fi
 # instead. The rootfs is overlaid with a writable tmpfs during the build script so these changes don't end up
 # in the image itself.
 tee --append /etc/makepkg.conf >/dev/null <<EOF
-export CC="$( ((LLVM)) && echo clang || echo gcc)"
-export CXX="$( ((LLVM)) && echo clang++ || echo g++)"
-export CC_LD="$( ((LLVM)) && echo lld)"
-export CXX_LD="$( ((LLVM)) && echo lld)"
+export CC="$( ((CC)) && echo "$CC" || ((LLVM)) && echo clang || echo gcc)"
+export CXX="$( ((CXX)) && echo "$CXX" || ((LLVM)) && echo clang++ || echo g++)"
+export CC_LD="$( ((LD)) && echo "$LD" || ((LLVM)) && echo lld)"
+export CXX_LD="$( ((LD)) && echo "$LD" || ((LLVM)) && echo lld)"
 export CFLAGS="\$CFLAGS $MKOSI_CFLAGS $CFLAGS"
 export CXXFLAGS="\$CXXFLAGS $MKOSI_CFLAGS $CFLAGS"
 export LDFLAGS="\$LDFLAGS $MKOSI_LDFLAGS $LDFLAGS"
index 49f70a511cea7ae22f0b1bb9eadcd9502ff644be..24226ee7c8057d0b4f73f7a459bb645475bce738 100755 (executable)
@@ -67,12 +67,14 @@ DEB_BUILD_PROFILES="$(awk '$1=$1' <<<"\
 ")"
 
 # TODO: Drop GENSYMBOLS_LEVEL once https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986746 is fixed.
+# Note that CXXFLAGS is for the C++ compiler, and CPPFLAGS is for the C/C++ preprocessor, they are not the same:
+# https://en.wikipedia.org/wiki/CFLAGS
 build() {
     env \
-    CC="$( ((LLVM)) && echo clang || echo gcc)" \
-    CXX="$( ((LLVM)) && echo clang++ || echo g++)" \
-    CC_LD="$( ((LLVM)) && echo lld)" \
-    CXX_LD="$( ((LLVM)) && echo lld)" \
+    CC="$( ((CC)) && echo "$CC" || ((LLVM)) && echo clang || echo gcc)" \
+    CXX="$( ((CXX)) && echo "$CXX" || ((LLVM)) && echo clang++ || echo g++)" \
+    CC_LD="$( ((LD)) && echo "$LD" || ((LLVM)) && echo lld)" \
+    CXX_LD="$( ((LD)) && echo "$LD" || ((LLVM)) && echo lld)" \
     DEB_BUILD_OPTIONS="$(awk '$1=$1' <<<"\
         $( ((WITH_TESTS)) || echo nocheck) \
         $( ((WITH_DOCS)) || echo nodoc) \
@@ -84,6 +86,7 @@ build() {
     DEB_BUILD_PROFILES="$DEB_BUILD_PROFILES" \
     DEB_CFLAGS_APPEND="$MKOSI_CFLAGS $CFLAGS" \
     DEB_CXXFLAGS_APPEND="$MKOSI_CFLAGS $CFLAGS" \
+    DEB_CPPFLAGS_APPEND="$CPPFLAGS" \
     DEB_LDFLAGS_APPEND="$MKOSI_LDFLAGS $LDFLAGS" \
     DPKG_FORCE="unsafe-io" \
     DPKG_DEB_COMPRESSOR_TYPE="none" \
index 76a8e08ee1967e5077771438a699a18478deed04..2d34be043d3182161cc573f5e73ab9db232ea88d 100755 (executable)
@@ -86,10 +86,10 @@ build() {
     --unset CFLAGS \
     --unset CXXFLAGS \
     --unset LDFLAGS \
-    CC="$( ((LLVM)) && echo clang || echo gcc)" \
-    CXX="$( ((LLVM)) && echo clang++ || echo g++)" \
-    CC_LD="$( ((LLVM)) && echo lld)" \
-    CXX_LD="$( ((LLVM)) && echo lld)" \
+    CC="$( ((CC)) && echo "$CC" || ((LLVM)) && echo clang || echo gcc)" \
+    CXX="$( ((CXX)) && echo "$CXX" || ((LLVM)) && echo clang++ || echo g++)" \
+    CC_LD="$( ((LD)) && echo "$LD" || ((LLVM)) && echo lld)" \
+    CXX_LD="$( ((LD)) && echo "$LD" || ((LLVM)) && echo lld)" \
     rpmbuild \
         -bb \
         --noprep \