X32 builds require that the bootloader is built as x86_64 binary. This patch splits the build definitions of the RMC userspace application and the RMC EFI library into separate recipes and builds an x86_64 EFI library when DEFAULTTUNE is x32.
Signed-off-by: Todor Minchev <todor.minc...@linux.intel.com> --- common/recipes-bsp/rmc/rmc-efi.bb | 39 ++++++++++++++++++++++ common/recipes-bsp/rmc/rmc.bb | 3 +- .../systemd-boot/systemd-boot/rmc-boot.inc | 2 +- 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 common/recipes-bsp/rmc/rmc-efi.bb diff --git a/common/recipes-bsp/rmc/rmc-efi.bb b/common/recipes-bsp/rmc/rmc-efi.bb new file mode 100644 index 0000000..ea09619 --- /dev/null +++ b/common/recipes-bsp/rmc/rmc-efi.bb @@ -0,0 +1,39 @@ +SUMMARY = "RMC (Runtime Machine Configuration) EFI library" + +DESCRIPTION = "The RMC EFI library adds RMC support to existing EFI bootloaders" + +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=ade413c694d3aaefc9554b24a8814ee8" + +SRC_URI = "git://git.yoctoproject.org/rmc" + +SRCREV = "027ac76f642dcab1a9f237a00f03a3a714bd04b9" + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux*" + +TARGET_CFLAGS +="-Wl,--hash-style=both" + +EXTRA_OEMAKE = "RMC_INSTALL_PREFIX=${D}/${prefix} \ + RMC_INSTALL_LIB_PATH=${D}${libdir} \ + RMC_INSTALL_HEADER_PATH=${D}${includedir}/rmc" + +SECURITY_CFLAGS_remove_class-target = "-fstack-protector-strong" + +python () { + ccargs = d.getVar('TUNE_CCARGS').split() + if '-mx32' in ccargs: + ccargs.remove('-mx32') + ccargs.append('-m64') + d.setVar('TUNE_CCARGS', ' '.join(ccargs)) +} + +do_compile() { + oe_runmake -f Makefile.efi +} + +do_install() { + oe_runmake -f Makefile.efi install +} diff --git a/common/recipes-bsp/rmc/rmc.bb b/common/recipes-bsp/rmc/rmc.bb index 93fdd3a..fb0d173 100644 --- a/common/recipes-bsp/rmc/rmc.bb +++ b/common/recipes-bsp/rmc/rmc.bb @@ -28,14 +28,13 @@ EXTRA_OEMAKE = "RMC_INSTALL_PREFIX=${D}/${prefix} \ RMC_INSTALL_HEADER_PATH=${D}${includedir}/rmc" SECURITY_CFLAGS_remove_class-target = "-fstack-protector-strong" + do_compile_class-target() { oe_runmake - oe_runmake -f Makefile.efi } do_install() { oe_runmake install - oe_runmake -f Makefile.efi install } do_install_class-native() { diff --git a/common/recipes-bsp/systemd-boot/systemd-boot/rmc-boot.inc b/common/recipes-bsp/systemd-boot/systemd-boot/rmc-boot.inc index db75eb6..1172d53 100644 --- a/common/recipes-bsp/systemd-boot/systemd-boot/rmc-boot.inc +++ b/common/recipes-bsp/systemd-boot/systemd-boot/rmc-boot.inc @@ -1,4 +1,4 @@ -DEPENDS_append_intel-x86-common = " rmc" +DEPENDS_append_intel-x86-common = " rmc rmc-efi" EXTRA_OEMAKE_append_intel-x86-common = ' EFI_LDFLAGS="-L${STAGING_DIR_HOST}/usr/lib" EFI_CFLAGS="-I${STAGING_INCDIR}/rmc -DRMC_EFI"' -- 2.13.2 -- _______________________________________________ meta-intel mailing list meta-intel@yoctoproject.org https://lists.yoctoproject.org/listinfo/meta-intel