diff options
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.patch | 28 | ||||
-rw-r--r-- | meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch | 62 |
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 | ||
4 | DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" | 4 | DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" |
5 | 5 | ||
6 | SRC_URI += "file://0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch" | 6 | SRC_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 | ||
8 | inherit autotools pkgconfig gettext | 12 | inherit meson pkgconfig gettext |
9 | inherit deploy | 13 | inherit deploy |
10 | 14 | ||
11 | EFI_CC ?= "${CC}" | 15 | EFI_CC ?= "${CC}" |
12 | # Man pages are packaged through the main systemd recipe | 16 | EXTRA_OEMESON += "-Defi=true \ |
13 | EXTRA_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 | ||
55 | do_install() { | 60 | do_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 | ||
62 | do_deploy () { | 67 | do_deploy () { |
63 | install ${B}/systemd-boot*.efi ${DEPLOYDIR} | 68 | install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR} |
64 | } | 69 | } |
65 | addtask deploy before do_build after do_compile | 70 | addtask 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 @@ | |||
1 | From 3e8c19bb1bbc4493c591f75c00c1fefe3b1c8a69 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
3 | Date: Tue, 27 Feb 2018 20:42:41 -0800 | ||
4 | Subject: [PATCH] Also check i386, i586 and i686 for ia32 | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
9 | --- | ||
10 | meson.build | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/meson.build b/meson.build | ||
14 | index 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 | -- | ||
27 | 2.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 @@ | |||
1 | From 527413ec243564a89ffaad6368d446de44415970 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
3 | Date: Tue, 27 Feb 2018 21:42:23 -0800 | ||
4 | Subject: [PATCH] Fix to run efi_cc and efi_ld correctly when cross-compiling | ||
5 | |||
6 | When cross-compiling, efi_cc and efi_ld may take the form of | ||
7 | 'xxx-gcc --sysroot=xxx', and this would cause run_command and | ||
8 | the alike fail. | ||
9 | |||
10 | Fix to split them to make commands run correctly. | ||
11 | |||
12 | Upstream-Status: Pending | ||
13 | |||
14 | Signed-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 | |||
19 | diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build | ||
20 | index 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 | -- | ||
61 | 2.13.0 | ||
62 | |||