Hi Ross,

I've fixed this problem and send patch to meta-intel. The problem is bout systemd-boot's bbappend file.

I've also sent out a new patchset, upgrading systemd to 237, which keeps the 'manpages' PACKAGECONFIG item for compatibility.

Best Regards,
Chen Qi

On 02/28/2018 09:32 PM, Burton, Ross wrote:
No, still broken:

ERROR: systemd-boot-236-r0 do_compile: oe_runmake failed
ERROR: systemd-boot-236-r0 do_compile: Function failed: do_compile (log file is located at /data/poky-tmp/master/work/corei7-64-intel-common-poky-linux/systemd-boot/236-r0/temp/log.do_compile.31074) ERROR: Logfile of failure stored in: /data/poky-tmp/master/work/corei7-64-intel-common-poky-linux/systemd-boot/236-r0/temp/log.do_compile.31074
Log data follows:
| DEBUG: Executing shell function do_compile
| [1/10] Generating console.c.o with a custom command.
| [2/10] Generating graphics.c.o with a custom command.
| [3/10] Generating pe.c.o with a custom command.
| [4/10] Generating measure.c.o with a custom command.
| [5/10] Generating disk.c.o with a custom command.
| [6/10] Generating util.c.o with a custom command.
| [7/10] Generating shim.c.o with a custom command.
| [8/10] Generating boot.c.o with a custom command.
| [9/10] Generating systemd_boot.so with a custom command.
| [10/10] Generating systemd-bootx64.efi with a custom command.
| NOTE: make -j 20 linuxx64.efi.stub
| make: *** No rule to make target 'linuxx64.efi.stub'. Stop.
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /data/poky-tmp/master/work/corei7-64-intel-common-poky-linux/systemd-boot/236-r0/temp/log.do_compile.31074) ERROR: Task (/home/ross/Yocto/poky/meta/recipes-core/systemd/systemd-boot_236.bb:do_compile) failed with exit code '1'

Ross

On 28 February 2018 at 13:30, Burton, Ross <[email protected] <mailto:[email protected]>> wrote:

    ERROR: systemd-boot-236-r0 do_compile: Function failed: do_compile
    (log file is located at
    
/data/poky-tmp/master/work/corei7-64-intel-common-poky-linux/systemd-boot/236-r0/temp/log.do_compile.10165)
    ERROR: Logfile of failure stored in:
    
/data/poky-tmp/master/work/corei7-64-intel-common-poky-linux/systemd-boot/236-r0/temp/log.do_compile.10165
    Log data follows:
    | DEBUG: Executing shell function do_compile
    |
    
/data/poky-tmp/master/work/corei7-64-intel-common-poky-linux/systemd-boot/236-r0/temp/run.do_compile.10165:
    109: [: x86_64: unexpected operator
    | ninja: error: unknown target 'src/boot/efi/systemd-bootia32.efi'

    +  if [ "${TARGET_ARCH}" == "x86_64" ]; then

    Remember that == is a bashism and the correct operator for [ is =.

    (fix squashed here)

    Ross

    On 28 February 2018 at 05:56, Chen Qi <[email protected]
    <mailto:[email protected]>> wrote:

        Upgrade systemd-boot to 236.

        As systemd has dropped autotools support, fix configure and
        compile
        failures related to meson.

        Signed-off-by: Chen Qi <[email protected]
        <mailto:[email protected]>>
        ---
         meta/recipes-core/systemd/systemd-boot_234.bb
        <http://systemd-boot_234.bb>     | 43 ---------------
         meta/recipes-core/systemd/systemd-boot_236.bb
        <http://systemd-boot_236.bb>     | 49 +++++++++++++++++
         .../systemd/0001-Also-check-i586-for-ia32.patch   | 28 ++++++++++
         ...efi_cc-and-efi_ld-correctly-when-cross-co.patch | 62
        ++++++++++++++++++++++
         4 files changed, 139 insertions(+), 43 deletions(-)
         delete mode 100644
        meta/recipes-core/systemd/systemd-boot_234.bb
        <http://systemd-boot_234.bb>
         create mode 100644
        meta/recipes-core/systemd/systemd-boot_236.bb
        <http://systemd-boot_236.bb>
         create mode 100644
        meta/recipes-core/systemd/systemd/0001-Also-check-i586-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
        <http://systemd-boot_234.bb>
        b/meta/recipes-core/systemd/systemd-boot_234.bb
        <http://systemd-boot_234.bb>
        deleted file mode 100644
        index 88a14ac..0000000
        --- a/meta/recipes-core/systemd/systemd-boot_234.bb
        <http://systemd-boot_234.bb>
        +++ /dev/null
        @@ -1,43 +0,0 @@
        -require systemd.inc
        -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"
        -
        -inherit autotools 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}' \
        -               "
        -
        -# Imported from the old gummiboot recipe
        -TUNE_CCARGS_remove = "-mfpmath=sse"
        -COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
        -COMPATIBLE_HOST_x86-x32 = "null"
        -
        -do_compile() {
        -       SYSTEMD_BOOT_EFI_ARCH="ia32"
        -       if [ "${TARGET_ARCH}" = "x86_64" ]; then
        -               SYSTEMD_BOOT_EFI_ARCH="x64"
        -       fi
        -
        -       oe_runmake systemd-boot${SYSTEMD_BOOT_EFI_ARCH}.efi
        -}
        -
        -do_install() {
        -       # Bypass systemd installation with a NOP
        -       :
        -}
        -
        -do_deploy () {
        -       install ${B}/systemd-boot*.efi ${DEPLOYDIR}
        -}
        -addtask deploy before do_build after do_compile
        diff --git a/meta/recipes-core/systemd/systemd-boot_236.bb
        <http://systemd-boot_236.bb>
        b/meta/recipes-core/systemd/systemd-boot_236.bb
        <http://systemd-boot_236.bb>
        new file mode 100644
        index 0000000..1a0135a
        --- /dev/null
        +++ b/meta/recipes-core/systemd/systemd-boot_236.bb
        <http://systemd-boot_236.bb>
        @@ -0,0 +1,49 @@
        +require systemd.inc
        +FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
        +
        +DEPENDS = "intltool-native libcap util-linux gnu-efi
        gperf-native"
        +
        +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-i586-for-ia32.patch \
+ file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch
        \
        +            "
        +
        +inherit meson pkgconfig gettext
        +inherit deploy
        +
        +EFI_CC ?= "${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"
        +COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
        +COMPATIBLE_HOST_x86-x32 = "null"
        +
        +do_compile() {
        +       SYSTEMD_BOOT_EFI_ARCH="ia32"
        +       if [ "${TARGET_ARCH}" == "x86_64" ]; then
        +               SYSTEMD_BOOT_EFI_ARCH="x64"
        +       fi
        +       ninja
        src/boot/efi/systemd-boot${SYSTEMD_BOOT_EFI_ARCH}.efi
        +}
        +
        +do_install() {
        +       # Bypass systemd installation with a NOP
        +       :
        +}
        +
        +do_deploy () {
        +       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-i586-for-ia32.patch
        b/meta/recipes-core/systemd/systemd/0001-Also-check-i586-for-ia32.patch
        new file mode 100644
        index 0000000..892b25e
        --- /dev/null
        +++
        b/meta/recipes-core/systemd/systemd/0001-Also-check-i586-for-ia32.patch
        @@ -0,0 +1,28 @@
        +From 4616e6f228d2678420ee7d5bb1c8a0c8ebb27be8 Mon Sep 17
        00:00:00 2001
        +From: Chen Qi <[email protected]
        <mailto:[email protected]>>
        +Date: Tue, 27 Feb 2018 20:42:41 -0800
        +Subject: [PATCH] Also check i586 for ia32
        +
        +Upstream-Status: Pending
        +
        +Signed-off-by: Chen Qi <[email protected]
        <mailto:[email protected]>>
        +---
        + meson.build | 2 +-
        + 1 file changed, 1 insertion(+), 1 deletion(-)
        +
        +diff --git a/meson.build b/meson.build
        +index ddc061c12..abd1261d6 100644
        +--- a/meson.build
        ++++ b/meson.build
        +@@ -1182,7 +1182,7 @@
        conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', get_option('slow-tests'))
        + if get_option('efi')
        +         efi_arch = host_machine.cpu_family()
        +
        +-        if efi_arch == 'x86'
        ++        if efi_arch == 'x86' or efi_arch == 'i586'
        +                 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]
        <mailto:[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]
        <mailto:[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]
        <mailto:[email protected]>
        http://lists.openembedded.org/mailman/listinfo/openembedded-core
        <http://lists.openembedded.org/mailman/listinfo/openembedded-core>




-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to