Can you rebase this to master as there's been changes to booting made. Ross
On 5 March 2018 at 02:02, Chen Qi <[email protected]> wrote: > Upgrade systemd-boot to 237. > > As systemd has dropped autotools support, fix configure and compile > failures related to meson. > > Signed-off-by: Chen Qi <[email protected]> > --- > .../{systemd-boot_234.bb => systemd-boot_237.bb} | 32 ++++++----- > ...01-Also-check-i386-i586-and-i686-for-ia32.patch | 28 ++++++++++ > ...efi_cc-and-efi_ld-correctly-when-cross-co.patch | 62 > ++++++++++++++++++++++ > 3 files changed, 109 insertions(+), 13 deletions(-) > rename meta/recipes-core/systemd/{systemd-boot_234.bb => > systemd-boot_237.bb} (41%) > create mode 100644 meta/recipes-core/systemd/ > systemd/0001-Also-check-i386-i586-and-i686-for-ia32.patch > create mode 100644 meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_ > cc-and-efi_ld-correctly-when-cross-co.patch > > diff --git a/meta/recipes-core/systemd/systemd-boot_234.bb > b/meta/recipes-core/systemd/systemd-boot_237.bb > similarity index 41% > rename from meta/recipes-core/systemd/systemd-boot_234.bb > rename to meta/recipes-core/systemd/systemd-boot_237.bb > index 88a14ac..ec87cbf 100644 > --- a/meta/recipes-core/systemd/systemd-boot_234.bb > +++ b/meta/recipes-core/systemd/systemd-boot_237.bb > @@ -3,20 +3,27 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:" > > DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" > > -SRC_URI += "file://0007-use-lnr-wrapper-instead-of-looking-for- > relative-opti.patch" > +SRC_URI += > "file://0003-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch > \ > + file://0027-remove-nobody-user-group-checking.patch \ > + file://0001-Also-check-i386-i586-and-i686-for-ia32.patch \ > + > file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch > \ > + " > > -inherit autotools pkgconfig gettext > +inherit meson pkgconfig gettext > inherit deploy > > EFI_CC ?= "${CC}" > -# Man pages are packaged through the main systemd recipe > -EXTRA_OECONF = " --enable-gnuefi \ > - --with-efi-includedir=${STAGING_INCDIR} \ > - --with-efi-ldsdir=${STAGING_LIBDIR} \ > - --with-efi-libdir=${STAGING_LIBDIR} \ > - --disable-manpages \ > - EFI_CC='${EFI_CC}' \ > - " > + > +EXTRA_OEMESON += "-Defi=true \ > + -Dgnu-efi=true \ > + -Defi-includedir=${STAGING_INCDIR}/efi \ > + -Defi-ldsdir=${STAGING_LIBDIR} \ > + -Defi-libdir=${STAGING_LIBDIR} \ > + -Dman=false \ > + -Defi-cc='${EFI_CC}' \ > + -Defi-ld='${LD}' \ > + " > + > > # Imported from the old gummiboot recipe > TUNE_CCARGS_remove = "-mfpmath=sse" > @@ -28,8 +35,7 @@ do_compile() { > if [ "${TARGET_ARCH}" = "x86_64" ]; then > SYSTEMD_BOOT_EFI_ARCH="x64" > fi > - > - oe_runmake systemd-boot${SYSTEMD_BOOT_EFI_ARCH}.efi > + ninja src/boot/efi/systemd-boot${SYSTEMD_BOOT_EFI_ARCH}.efi > } > > do_install() { > @@ -38,6 +44,6 @@ do_install() { > } > > do_deploy () { > - install ${B}/systemd-boot*.efi ${DEPLOYDIR} > + install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR} > } > 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 0000000..877bb1c > --- /dev/null > +++ b/meta/recipes-core/systemd/systemd/0001-Also-check-i386- > i586-and-i686-for-ia32.patch > @@ -0,0 +1,28 @@ > +From 3e8c19bb1bbc4493c591f75c00c1fefe3b1c8a69 Mon Sep 17 00:00:00 2001 > +From: Chen Qi <[email protected]> > +Date: Tue, 27 Feb 2018 20:42:41 -0800 > +Subject: [PATCH] Also check i386, i586 and i686 for ia32 > + > +Upstream-Status: Pending > + > +Signed-off-by: Chen Qi <[email protected]> > +--- > + meson.build | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/meson.build b/meson.build > +index 28cb8b60e..489531a43 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -1217,7 +1217,7 @@ conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', > slow_tests) > + if get_option('efi') > + efi_arch = host_machine.cpu_family() > + > +- if efi_arch == 'x86' > ++ if efi_arch == 'x86' or efi_arch == 'i386' or efi_arch == 'i586' > or efi_arch == 'i686' > + EFI_MACHINE_TYPE_NAME = 'ia32' > + gnu_efi_arch = 'ia32' > + elif efi_arch == 'x86_64' > +-- > +2.13.0 > + > 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 0000000..e2e19ba > --- /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 @@ > +From 527413ec243564a89ffaad6368d446de44415970 Mon Sep 17 00:00:00 2001 > +From: Chen Qi <[email protected]> > +Date: Tue, 27 Feb 2018 21:42:23 -0800 > +Subject: [PATCH] Fix to run efi_cc and efi_ld correctly when > cross-compiling > + > +When cross-compiling, efi_cc and efi_ld may take the form of > +'xxx-gcc --sysroot=xxx', and this would cause run_command and > +the alike fail. > + > +Fix to split them to make commands run correctly. > + > +Upstream-Status: Pending > + > +Signed-off-by: Chen Qi <[email protected]> > +--- > + src/boot/efi/meson.build | 16 +++++++++++++--- > + 1 file changed, 13 insertions(+), 3 deletions(-) > + > +diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build > +index 992a3ba4c..9f9ec4911 100644 > +--- a/src/boot/efi/meson.build > ++++ b/src/boot/efi/meson.build > +@@ -157,7 +157,7 @@ if have_gnu_efi > + o_file = custom_target(file + '.o', > + input : file, > + output : file + '.o', > +- command : [efi_cc, '-c', '@INPUT@', > '-o', '@OUTPUT@'] > ++ command : efi_cc.split() + ['-c', > '@INPUT@', '-o', '@OUTPUT@'] > + + compile_args, > + depend_files : efi_headers) > + if (common_sources + systemd_boot_sources). > contains(file) > +@@ -168,7 +168,17 @@ if have_gnu_efi > + endif > + endforeach > + > +- libgcc_file_name = run_command(efi_cc, > '-print-libgcc-file-name').stdout().strip() > ++ find_libgcc_cmd_all = efi_cc + ' -print-libgcc-file-name' > ++ find_libgcc_cmd = find_libgcc_cmd_all.split()[0] > ++ find_libgcc_args = [] > ++ cmd_args_all = find_libgcc_cmd_all.split() > ++ foreach arg : cmd_args_all > ++ if arg != find_libgcc_cmd > ++ find_libgcc_args += arg > ++ endif > ++ endforeach > ++ > ++ libgcc_file_name = run_command(find_libgcc_cmd, > find_libgcc_args).stdout().strip() > + systemd_boot_efi_name = 'systemd-boot@[email protected]'.format( > EFI_MACHINE_TYPE_NAME) > + stub_efi_name = 'linux@[email protected]'.format( > EFI_MACHINE_TYPE_NAME) > + no_undefined_symbols = find_program('no-undefined-symbols.sh') > +@@ -179,7 +189,7 @@ if have_gnu_efi > + tuple[0], > + input : tuple[2], > + output : tuple[0], > +- command : [efi_ld, '-o', '@OUTPUT@'] + > ++ command : efi_ld.split() + ['-o', '@OUTPUT@'] + > + efi_ldflags + tuple[2] + > + ['-lefi', '-lgnuefi', > libgcc_file_name]) > + > +-- > +2.13.0 > + > -- > 1.9.1 > > -- > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core >
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
