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.
124 lines
3.8 KiB
124 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
|