From: Jan Janssen Date: Wed, 26 Jan 2022 23:35:36 +0000 (+0000) Subject: meson: Use files() for source lists for boot and fundamental X-Git-Tag: archive/raspbian/250.3-2+rpi1^2~22 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=52792ad65eca920b6faff874eea89419bfd6b9fd;p=systemd.git meson: Use files() for source lists for boot and fundamental Origin: https://github.com/systemd/systemd/commit/b3c5a7074cd434bc02c4b560afe933d3df24759e This fixes build reproducibility as otherwise the full path of the source files ends up in the output binary. Gbp-Pq: Name meson-Use-files-for-source-lists-for-boot-and-fundam.patch --- diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build index f98dbf68..ea4f024a 100644 --- a/src/boot/efi/meson.build +++ b/src/boot/efi/meson.build @@ -297,9 +297,10 @@ efi_headers = files( 'shim.h', 'splash.h', 'util.h', - 'xbootldr.h') + 'xbootldr.h', +) -common_sources = [ +common_sources = files( 'assert.c', 'devicetree.c', 'disk.c', @@ -307,31 +308,34 @@ common_sources = [ 'measure.c', 'pe.c', 'secure-boot.c', - 'util.c'] + 'util.c', +) -systemd_boot_sources = [ +systemd_boot_sources = files( 'boot.c', 'console.c', 'drivers.c', 'random-seed.c', 'shim.c', - 'xbootldr.c'] + 'xbootldr.c', +) -stub_sources = [ +stub_sources = files( 'cpio.c', 'initrd.c', 'splash.c', - 'stub.c'] + 'stub.c', +) if efi_arch[1] in ['ia32', 'x86_64'] - stub_sources += 'linux_x86.c' + stub_sources += files('linux_x86.c') else - stub_sources += 'linux.c' + stub_sources += files('linux.c') endif # BCD parser only makes sense on arches that Windows supports. if efi_arch[1] in ['ia32', 'x86_64', 'arm', 'aarch64'] - systemd_boot_sources += 'bcd.c' + systemd_boot_sources += files('bcd.c') tests += [ [['src/boot/efi/test-bcd.c'], [], @@ -344,9 +348,10 @@ endif systemd_boot_objects = [] stub_objects = [] foreach file : fundamental_source_paths + common_sources + systemd_boot_sources + stub_sources - o_file = custom_target(file.split('/')[-1] + '.o', + # FIXME: replace ''.format(file) with fs.name(file) when meson_version requirement is >= 0.59.0 + o_file = custom_target('@0@.o'.format(file).split('/')[-1], input : file, - output : file.split('/')[-1] + '.o', + output : '@0@.o'.format(file).split('/')[-1], command : [efi_cc, '-c', '@INPUT@', '-o', '@OUTPUT@', efi_cflags], depend_files : efi_headers + fundamental_headers) if (fundamental_source_paths + common_sources + systemd_boot_sources).contains(file) diff --git a/src/fundamental/meson.build b/src/fundamental/meson.build index 287f0fe3..f927788c 100644 --- a/src/fundamental/meson.build +++ b/src/fundamental/meson.build @@ -8,20 +8,16 @@ fundamental_headers = files( 'macro-fundamental.h', 'sha256.h', 'string-util-fundamental.h', - 'types-fundamental.h') - -sources = ''' - bootspec-fundamental.c - efivars-fundamental.c - string-util-fundamental.c - sha256.c -'''.split() + 'types-fundamental.h', +) # for sd-boot -fundamental_source_paths = [] -foreach source : sources - fundamental_source_paths += meson.current_source_dir() / source -endforeach +fundamental_source_paths = files( + 'bootspec-fundamental.c', + 'efivars-fundamental.c', + 'sha256.c', + 'string-util-fundamental.c', +) # for libbasic -fundamental_sources = files(sources) + fundamental_headers +fundamental_sources = fundamental_source_paths + fundamental_headers