43 lines
998 B
Meson
43 lines
998 B
Meson
efistub_sources = files(
|
|
'header.c',
|
|
'main.c',
|
|
'reloc.c',
|
|
)
|
|
|
|
efistub_lds = meson.current_source_dir() / 'stub.ld'
|
|
|
|
subdir(target_machine.cpu_family())
|
|
|
|
efistub_elf = executable(
|
|
'efistub.elf',
|
|
sources: [loader_sources, efistub_sources, loader_kernel],
|
|
include_directories: [
|
|
common_includes,
|
|
loader_includes,
|
|
include_directories('.', target_machine.cpu_family()),
|
|
],
|
|
c_args: loader_c_args,
|
|
link_args: [
|
|
'-nostdlib',
|
|
'-Wl,-T,' + efistub_lds,
|
|
'-Wl,--no-dynamic-linker',
|
|
'-Wl,-z,text',
|
|
'-Wl,-z,norelro',
|
|
'-Wl,-z,noexecstack',
|
|
'-Wl,-z,max-page-size=0x1000',
|
|
'-Wl,--build-id=none',
|
|
],
|
|
link_depends: efistub_lds,
|
|
pie: true,
|
|
)
|
|
|
|
zinnia_efi = custom_target(
|
|
'zinnia.efi',
|
|
input: efistub_elf,
|
|
output: 'zinnia.efi',
|
|
command: [objcopy, '-O', 'binary', '@INPUT@', '@OUTPUT@'],
|
|
build_by_default: true,
|
|
install: true,
|
|
install_dir: zinnia_bootdir,
|
|
)
|