fwupd-efi: update to 1.7, orphan.

This commit is contained in:
dataCobra 2024-10-10 09:17:28 +02:00 committed by Leah Neukirchen
parent 3175ea610e
commit ad3108a90d
2 changed files with 4 additions and 82 deletions

View File

@ -1,78 +0,0 @@
--- a/meson.build
+++ b/meson.build
@@ -9,7 +9,6 @@
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
cc = meson.get_compiler('c')
-ld = cc.get_linker_id()
objcopy = find_program('objcopy')
objcopy_version = run_command(objcopy, '--version').stdout().split('\n')[0].split(' ')[-1]
--- a/efi/generate_binary.py
+++ b/efi/generate_binary.py
@@ -29,9 +29,9 @@
"-j",
".rodata",
"-j",
+ ".areloc",
+ "-j",
".rel*",
- "--section-alignment",
- "512",
args.infile,
args.outfile,
]
--- a/efi/meson.build
+++ b/efi/meson.build
@@ -72,6 +72,11 @@
coff_header_in_crt0 = false
endif
+# For NX compat, we must ensure we have .note.GNU-stack
+if run_command('grep', '-q', '.note.GNU-stack', join_paths(efi_crtdir, arch_crt), check: false).returncode() != 0
+ error('Cannot find NX section in @0@, update to gnu-efi 3.0.15+'.format(join_paths(efi_crtdir, arch_crt)))
+endif
+
# older objcopy for Aarch64 and ARM32 are not EFI capable.
# Use 'binary' instead, and add required symbols manually.
if host_cpu == 'arm' or (host_cpu == 'aarch64' and (objcopy_version.version_compare ('< 2.38') or coff_header_in_crt0))
@@ -95,7 +100,6 @@
# is the system crt0 for arm and aarch64 new enough to know about SBAT?
if objcopy_manualsymbols
if get_option('efi_sbat_distro_id') != ''
- arch_crt_source = 'crt0-efi-@0@.S'.format(gnu_efi_path_arch)
cmd = run_command('grep', '-q', 'sbat', join_paths(efi_crtdir, arch_crt))
if cmd.returncode() != 0
warning('Cannot find SBAT section in @0@, using local copy'.format(join_paths(efi_crtdir, arch_crt)))
@@ -163,6 +167,12 @@
'-L', efi_libdir,
join_paths(efi_crtdir, arch_crt)]
+if host_cpu == 'aarch64'
+# Don't use 64KiB pages
+ efi_ldflags += ['-z', 'common-page-size=4096']
+ efi_ldflags += ['-z', 'max-page-size=4096']
+endif
+
if objcopy_manualsymbols
# older objcopy for Aarch64 and ARM32 are not EFI capable.
# Use 'binary' instead, and add required symbols manually.
@@ -223,11 +233,16 @@
fwupd_so_deps += [o_crt0]
endif
+efi_cc_ldflags = []
+foreach flag : efi_ldflags
+ efi_cc_ldflags += ['-Wl,' + flag]
+endforeach
+
so = custom_target('fwup.so',
input : [o_file1, o_file2, o_file3, o_file4, o_file5],
output : 'fwup.so',
- command : [ld, '-o', '@OUTPUT@'] +
- efi_ldflags + ['@INPUT@'] +
+ command : [cc.cmd_array(), '-nostdlib', '-o', '@OUTPUT@'] +
+ efi_cc_ldflags + ['@INPUT@'] +
['-lefi', '-lgnuefi', libgcc_file_name],
depends: fwupd_so_deps)

View File

@ -1,6 +1,6 @@
# Template file for 'fwupd-efi'
pkgname=fwupd-efi
version=1.4
version=1.7
revision=1
archs="x86_64* i686* arm* aarch64*"
build_style=meson
@ -8,11 +8,11 @@ build_helper="gir"
configure_args="-Defi-includedir=${XBPS_CROSS_BASE}/usr/include/efi
-Defi-ldsdir=${XBPS_CROSS_BASE}/usr/lib
-Defi-libdir=${XBPS_CROSS_BASE}/usr/lib"
hostmakedepends="efivar python3-pefile"
hostmakedepends="efivar python3-pefile cmake pkg-config"
makedepends="libefivar-devel gnu-efi-libs"
short_desc="EFI Application used by uefi-capsule plugin in fwupd"
maintainer="dkwo <nicolopiazzalunga@gmail.com>"
maintainer="Orphaned <orphan@voidlinux.org>"
license="LGPL-2.1-or-later"
homepage="https://github.com/fwupd/fwupd-efi"
distfiles="https://github.com/fwupd/fwupd-efi/archive/refs/tags/${version}.tar.gz"
checksum=b1f5fe72e16d4e2f4c616da416dc93bd79331057336208465da37bafe8f8f83d
checksum=96d4fc45467159b2664ce86ee7d5030e265fdb4d4a4d774080654d2f5b1561ff