]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkosi: Setup --ffile-prefix-map= for opensuse as well
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 18 Apr 2024 11:28:17 +0000 (13:28 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 18 Apr 2024 12:01:44 +0000 (14:01 +0200)
This doesn't actually work because the opensuse spec doesn't allow
adding extra build flags, but I'm working on fixing that, so let's
already set things up for later.

mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.build.chroot

index fe89611e36ed90ac13da0fbe1ba0b32ad357d82f..6261be199035e7140013fa99d683a4adde6426fc 100755 (executable)
@@ -29,6 +29,20 @@ tee --append /usr/lib/rpm/suse/macros <<'EOF'
 %{nil}
 EOF
 
+VERSION="$(cat meson.version)"
+RELEASE="$(date "+%Y%m%d%H%M%S" --date "@$TS")"
+
+DIST="$(rpm --eval %dist)"
+ARCH="$(rpm --eval %_arch)"
+SRCDEST="/usr/src/debug/systemd-$VERSION-${RELEASE}${DIST}.$ARCH"
+
+# TODO: Enable this when the opensuse spec stops unconditionally setting FORTIFY_SOURCE=2.
+# EXTRA_CFLAGS="-O0 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=0"
+EXTRA_CFLAGS=""
+if ((WITH_DEBUG)); then
+    EXTRA_CFLAGS="$EXTRA_CFLAGS -ffile-prefix-map=../src=$SRCDEST"
+fi
+
 build() {
     IFS=
     # TODO: Replace meson_build and meson_install overrides with "--undefine __meson_verbose" once
@@ -49,15 +63,17 @@ build() {
         $( ((WITH_DEBUG)) || echo --define) \
         $( ((WITH_DEBUG)) || echo "debug_package %{nil}") \
         --define "vendor openSUSE" \
-        --define "version_override $(cat meson.version)" \
-        --define "release_override $(date "+%Y%m%d%H%M%S" --date "@$TS")" \
+        --define "version_override $VERSION" \
+        --define "release_override $RELEASE" \
         --define "__check_files sh -c '$(rpm --eval %__check_files) | tee /tmp/unpackaged-files'" \
+        --define "build_cflags $(rpm --eval %build_cflags) $EXTRA_CFLAGS" \
         --define "meson_build %{shrink:%{__meson} compile -C %{_vpath_builddir} -j %{_smp_build_ncpus} %{nil}}" \
         --define "meson_install %{shrink:DESTDIR=%{buildroot} %{__meson} install -C %{_vpath_builddir} --no-rebuild --quiet %{nil}}" \
         --define "meson_extra_configure_options -D mode=developer -D b_sanitize=${SANITIZERS:-none}" \
         --define "__os_install_post /usr/lib/rpm/brp-suse %{nil}" \
         --define "__elf_exclude_path ^/usr/lib/systemd/tests/unit-tests/.*$" \
         --define "__script_requires %{nil}" \
+        --define "_find_debuginfo_dwz_opts %{nil}" \
         --noclean \
         "$@" \
         "pkg/$ID/systemd.spec"