You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.8 KiB
123 lines
3.8 KiB
From 3088f292855f4a525271906a5652985f01c5d7b2 Mon Sep 17 00:00:00 2001 |
|
From: Jan Janssen <medhefgo@web.de> |
|
Date: Fri, 7 Jan 2022 21:55:50 +0100 |
|
Subject: [PATCH] meson: Use files() for source lists for boot and fundamental |
|
|
|
This fixes build reproducibility as otherwise the full path |
|
of the source files ends up in the output binary. |
|
|
|
(cherry picked from commit b3c5a7074cd434bc02c4b560afe933d3df24759e) |
|
|
|
Related: #2017035 |
|
--- |
|
src/boot/efi/meson.build | 29 +++++++++++++++++------------ |
|
src/fundamental/meson.build | 22 +++++++++------------- |
|
2 files changed, 26 insertions(+), 25 deletions(-) |
|
|
|
diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build |
|
index 144fbb0f43..4cc43dc00c 100644 |
|
--- a/src/boot/efi/meson.build |
|
+++ b/src/boot/efi/meson.build |
|
@@ -312,9 +312,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', |
|
@@ -322,31 +323,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'], |
|
[], |
|
@@ -359,9 +363,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 : [cc.cmd_array(), '-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 287f0fe36a..f927788c3a 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
|
|
|