diff options
author | 2020-03-30 09:24:26 +0900 | |
---|---|---|
committer | 2020-03-30 09:24:26 +0900 | |
commit | 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch) | |
tree | b4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /external/meta-virtualization/recipes-extended/xen/stubdom.inc | |
parent | 706ad73eb02caf8532deaf5d38995bd258725cb8 (diff) |
agl-basesystem
Diffstat (limited to 'external/meta-virtualization/recipes-extended/xen/stubdom.inc')
-rw-r--r-- | external/meta-virtualization/recipes-extended/xen/stubdom.inc | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/external/meta-virtualization/recipes-extended/xen/stubdom.inc b/external/meta-virtualization/recipes-extended/xen/stubdom.inc new file mode 100644 index 00000000..bfc67527 --- /dev/null +++ b/external/meta-virtualization/recipes-extended/xen/stubdom.inc @@ -0,0 +1,152 @@ +# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +COMPATIBLE_HOST = '(x86_64.*).*-linux' + +require xen-arch.inc + +# many of the xen stubdom related recipes build and package static instead of shared libraries +EXCLUDE_FROM_SHLIBS = "1" + +# base set of dependencies to be used for xen stubdom recipes +DEPENDS += "\ + lwip \ + mini-os \ +" + +# unset EVERYTHING from the OE environment. +# Weird things happen when these are exported into the environment. +unset CFLAGS +unset BUILD_CFLAGS +unset TARGET_CFLAGS +unset CFLAGS_FOR_BUILD + +unset CPPFLAGS +unset BUILD_CPPFLAGS +unset TARGET_CPPFLAGS +unset CPPFLAGS_FOR_BUILD + +unset LDFLAGS +unset BUILD_LDFLAGS +unset TARGET_LDFLAGS +unset LDFLAGS_FOR_BUILD + +unset CXXFLAGS +unset TARGET_CXXFLAGS +unset BUILD_CXXFLAGS +unset CXXFLAGS_FOR_BUILD + +unset BUILD_CC +unset BUILD_CPP +unset BUILD_CXX +unset BUILD_LD +unset BUILD_AR +unset BUILD_AS +unset BUILD_CCLD +unset BUILD_FC +unset BUILD_RANLIB +unset BUILD_NM +unset BUILD_STRIP +unset BUILD_READELF +unset BUILD_OBJCOPY +unset BUILD_OBJDUMP +unset CC +unset CPP +unset CXX +unset LD +unset AR +unset AS +unset NM +unset RANLIB +unset STRIP +unset STRINGS +unset READELF +unset OBJCOPY +unset OBJDUMP +unset READELF +unset CCLD +unset FC + +# Provide support to build both 32-bit and 64-bit stubdoms +python () { + gnu_dict = { + 'x86_32': 'i686', + 'x86_64': 'x86_64', + } + + if d.expand('${XEN_TARGET_ARCH}') == 'x86_32': + d.setVar("GNU_TARGET_ARCH",gnu_dict[d.expand('${XEN_TARGET_ARCH}')]) + d.setVar("PACKAGE_ARCH","core2-32") + elif d.expand('${XEN_TARGET_ARCH}') == 'x86_64': + d.setVar("GNU_TARGET_ARCH",gnu_dict[d.expand('${XEN_TARGET_ARCH}')]) +} + +export GNU_TARGET_ARCH +export XEN_TARGET_ARCH="${@map_xen_arch(d.getVar('TARGET_ARCH'), d)}" +export XEN_COMPILE_ARCH="${@map_xen_arch(d.getVar('BUILD_ARCH'), d)}" + +LWIP_SRCDIR = "${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/lwip" +MINIOS_SRCDIR = "${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/mini-os" + +# Base set of CPPFLAGS, CFLAGS needed for each component used to build MiniOS-based stubdoms +# LDFLAGS are only used when building stubdoms, so only used in stubdom recipes +# Generic name given because each library uses DEF_, BUILD_, TARGET_, and xxxFLAGS differently +CPPFLAGS_INCLUDE_DIR = "-isystem ${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/${GNU_TARGET_ARCH}-xen-elf/include" + +STUBDOM_CPPFLAGS += "\ + -isystem ${MINIOS_SRCDIR}/include \ + -D__MINIOS__ \ + -DHAVE_LIBC \ + -isystem ${MINIOS_SRCDIR}/include/posix \ + -isystem ${MINIOS_SRCDIR}/include/xen \ + -isystem ${MINIOS_SRCDIR}/include/x86 \ + -isystem ${MINIOS_SRCDIR}/include/x86/${XEN_TARGET_ARCH} \ + -U __linux__ \ + -U __FreeBSD__ \ + -U __sun__ \ + -nostdinc \ + ${CPPFLAGS_INCLUDE_DIR} \ + -isystem ${LWIP_SRCDIR}/include \ + -isystem ${LWIP_SRCDIR}/include/ipv4 \ +" + +STUBDOM_CFLAGS += "\ + -mno-red-zone \ + -O1 \ + -fno-omit-frame-pointer \ + -m64 \ + -fno-reorder-blocks \ + -fno-asynchronous-unwind-tables \ + -DBUILD_ID \ + -fno-strict-aliasing \ + -std=gnu99 \ + -Wall \ + -Wstrict-prototypes \ + -Wdeclaration-after-statement \ + -Wno-unused-but-set-variable \ + -Wno-unused-local-typedefs \ + -fno-stack-protector \ + -fno-exceptions \ +" + +STUBDOM_LDFLAGS = "\ + -nostdlib \ + -L${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/${GNU_TARGET_ARCH}-xen-elf/lib \ +" + +# Need to redefine these for stubdom-related builds. It all starts because of +# the prefix used in newlib and then continues because we don't want to +# cross-contaminate stubdom-related recipes with headers and libraries found in +# the OE-defined locations +export prefix="/cross-root-${GNU_TARGET_ARCH}" +export includedir="${prefix}/${GNU_TARGET_ARCH}-xen-elf/include" +export libdir="${prefix}/${GNU_TARGET_ARCH}-xen-elf/lib" +export libexecdir="${libdir}" +export STAGING_INCDIR +export STAGING_LIBDIR + +# Typically defined in Xen and Minios .mk files that aren't sourced/read, +# defined to trigger some values and paths in Makefiles +export debug="y" +export stubdom="y" +export XEN_OS="MiniOS" |