1
0
mirror of https://github.com/systemd/systemd synced 2024-07-08 20:15:55 +00:00

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.
This commit is contained in:
Jan Janssen 2022-01-07 21:55:50 +01:00 committed by Zbigniew Jędrzejewski-Szmek
parent f2d323a3ab
commit b3c5a7074c
2 changed files with 26 additions and 25 deletions

View File

@ -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'],
[],
@ -362,9 +366,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)

View File

@ -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