summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-core/systemd/systemd-boot_237.bb (renamed from meta/recipes-core/systemd/systemd-boot_234.bb)31
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Also-check-i386-i586-and-i686-for-ia32.patch28
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch62
3 files changed, 108 insertions, 13 deletions
diff --git a/meta/recipes-core/systemd/systemd-boot_234.bb b/meta/recipes-core/systemd/systemd-boot_237.bb
index 2d29df8be7..afd3848f29 100644
--- a/meta/recipes-core/systemd/systemd-boot_234.bb
+++ b/meta/recipes-core/systemd/systemd-boot_237.bb
@@ -3,20 +3,25 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
3 3
4DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" 4DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native"
5 5
6SRC_URI += "file://0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch" 6SRC_URI += "file://0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
7 file://0027-remove-nobody-user-group-checking.patch \
8 file://0001-Also-check-i386-i586-and-i686-for-ia32.patch \
9 file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch \
10 "
7 11
8inherit autotools pkgconfig gettext 12inherit meson pkgconfig gettext
9inherit deploy 13inherit deploy
10 14
11EFI_CC ?= "${CC}" 15EFI_CC ?= "${CC}"
12# Man pages are packaged through the main systemd recipe 16EXTRA_OEMESON += "-Defi=true \
13EXTRA_OECONF = " --enable-gnuefi \ 17 -Dgnu-efi=true \
14 --with-efi-includedir=${STAGING_INCDIR} \ 18 -Defi-includedir=${STAGING_INCDIR}/efi \
15 --with-efi-ldsdir=${STAGING_LIBDIR} \ 19 -Defi-ldsdir=${STAGING_LIBDIR} \
16 --with-efi-libdir=${STAGING_LIBDIR} \ 20 -Defi-libdir=${STAGING_LIBDIR} \
17 --disable-manpages \ 21 -Dman=false \
18 EFI_CC='${EFI_CC}' \ 22 -Defi-cc='${EFI_CC}' \
19 " 23 -Defi-ld='${LD}' \
24 "
20 25
21# install to the image as boot*.efi if its the EFI_PROVIDER, 26# install to the image as boot*.efi if its the EFI_PROVIDER,
22# otherwise install as the full name. 27# otherwise install as the full name.
@@ -49,17 +54,17 @@ do_compile() {
49 SYSTEMD_BOOT_EFI_ARCH="x64" 54 SYSTEMD_BOOT_EFI_ARCH="x64"
50 fi 55 fi
51 56
52 oe_runmake ${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} 57 ninja src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE}
53} 58}
54 59
55do_install() { 60do_install() {
56 install -d ${D}/boot 61 install -d ${D}/boot
57 install -d ${D}/boot/EFI 62 install -d ${D}/boot/EFI
58 install -d ${D}/boot/EFI/BOOT 63 install -d ${D}/boot/EFI/BOOT
59 install ${B}/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE} 64 install ${B}/src/boot/efi/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}
60} 65}
61 66
62do_deploy () { 67do_deploy () {
63 install ${B}/systemd-boot*.efi ${DEPLOYDIR} 68 install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR}
64} 69}
65addtask deploy before do_build after do_compile 70addtask deploy before do_build after do_compile
diff --git a/meta/recipes-core/systemd/systemd/0001-Also-check-i386-i586-and-i686-for-ia32.patch b/meta/recipes-core/systemd/systemd/0001-Also-check-i386-i586-and-i686-for-ia32.patch
new file mode 100644
index 0000000000..877bb1c65c
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-Also-check-i386-i586-and-i686-for-ia32.patch
@@ -0,0 +1,28 @@
1From 3e8c19bb1bbc4493c591f75c00c1fefe3b1c8a69 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 27 Feb 2018 20:42:41 -0800
4Subject: [PATCH] Also check i386, i586 and i686 for ia32
5
6Upstream-Status: Pending
7
8Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
9---
10 meson.build | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/meson.build b/meson.build
14index 28cb8b60e..489531a43 100644
15--- a/meson.build
16+++ b/meson.build
17@@ -1217,7 +1217,7 @@ conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', slow_tests)
18 if get_option('efi')
19 efi_arch = host_machine.cpu_family()
20
21- if efi_arch == 'x86'
22+ if efi_arch == 'x86' or efi_arch == 'i386' or efi_arch == 'i586' or efi_arch == 'i686'
23 EFI_MACHINE_TYPE_NAME = 'ia32'
24 gnu_efi_arch = 'ia32'
25 elif efi_arch == 'x86_64'
26--
272.13.0
28
diff --git a/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch b/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch
new file mode 100644
index 0000000000..e2e19ba068
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch
@@ -0,0 +1,62 @@
1From 527413ec243564a89ffaad6368d446de44415970 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Tue, 27 Feb 2018 21:42:23 -0800
4Subject: [PATCH] Fix to run efi_cc and efi_ld correctly when cross-compiling
5
6When cross-compiling, efi_cc and efi_ld may take the form of
7'xxx-gcc --sysroot=xxx', and this would cause run_command and
8the alike fail.
9
10Fix to split them to make commands run correctly.
11
12Upstream-Status: Pending
13
14Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
15---
16 src/boot/efi/meson.build | 16 +++++++++++++---
17 1 file changed, 13 insertions(+), 3 deletions(-)
18
19diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
20index 992a3ba4c..9f9ec4911 100644
21--- a/src/boot/efi/meson.build
22+++ b/src/boot/efi/meson.build
23@@ -157,7 +157,7 @@ if have_gnu_efi
24 o_file = custom_target(file + '.o',
25 input : file,
26 output : file + '.o',
27- command : [efi_cc, '-c', '@INPUT@', '-o', '@OUTPUT@']
28+ command : efi_cc.split() + ['-c', '@INPUT@', '-o', '@OUTPUT@']
29 + compile_args,
30 depend_files : efi_headers)
31 if (common_sources + systemd_boot_sources).contains(file)
32@@ -168,7 +168,17 @@ if have_gnu_efi
33 endif
34 endforeach
35
36- libgcc_file_name = run_command(efi_cc, '-print-libgcc-file-name').stdout().strip()
37+ find_libgcc_cmd_all = efi_cc + ' -print-libgcc-file-name'
38+ find_libgcc_cmd = find_libgcc_cmd_all.split()[0]
39+ find_libgcc_args = []
40+ cmd_args_all = find_libgcc_cmd_all.split()
41+ foreach arg : cmd_args_all
42+ if arg != find_libgcc_cmd
43+ find_libgcc_args += arg
44+ endif
45+ endforeach
46+
47+ libgcc_file_name = run_command(find_libgcc_cmd, find_libgcc_args).stdout().strip()
48 systemd_boot_efi_name = 'systemd-boot@0@.efi'.format(EFI_MACHINE_TYPE_NAME)
49 stub_efi_name = 'linux@0@.efi.stub'.format(EFI_MACHINE_TYPE_NAME)
50 no_undefined_symbols = find_program('no-undefined-symbols.sh')
51@@ -179,7 +189,7 @@ if have_gnu_efi
52 tuple[0],
53 input : tuple[2],
54 output : tuple[0],
55- command : [efi_ld, '-o', '@OUTPUT@'] +
56+ command : efi_ld.split() + ['-o', '@OUTPUT@'] +
57 efi_ldflags + tuple[2] +
58 ['-lefi', '-lgnuefi', libgcc_file_name])
59
60--
612.13.0
62