diff options
| -rw-r--r-- | recipes-extended/xen/README | 3 | ||||
| -rw-r--r-- | recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch | 49 | ||||
| -rw-r--r-- | recipes-extended/xen/xen-hypervisor.inc | 49 | ||||
| -rw-r--r-- | recipes-extended/xen/xen_4.14.bb | 1 | ||||
| -rw-r--r-- | recipes-extended/xen/xen_git.bb | 1 |
5 files changed, 73 insertions, 30 deletions
diff --git a/recipes-extended/xen/README b/recipes-extended/xen/README index 34e79774..f286bb54 100644 --- a/recipes-extended/xen/README +++ b/recipes-extended/xen/README | |||
| @@ -25,6 +25,9 @@ Select the config settings that you want and Save the file. If you save it to | |||
| 25 | the default ".config" file when prompted by menuconfig, you can find it in the | 25 | the default ".config" file when prompted by menuconfig, you can find it in the |
| 26 | 'xen' subdirectory of the build tree. | 26 | 'xen' subdirectory of the build tree. |
| 27 | 27 | ||
| 28 | Configuration fragments are also supported. To use them you need to list the | ||
| 29 | .cfg files in the SRC_URI. | ||
| 30 | |||
| 28 | security patches | 31 | security patches |
| 29 | ---------------- | 32 | ---------------- |
| 30 | 33 | ||
diff --git a/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch b/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch new file mode 100644 index 00000000..22b67c40 --- /dev/null +++ b/recipes-extended/xen/files/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | Upstream-Status: Xen: Inappropriate [oe specific, cross compile issue] | ||
| 2 | Upstream-Status: Kernel: Pending | ||
| 3 | Signed-off-by: Diego Sueiro <diego.sueiro@arm.com> | ||
| 4 | commit e6972e689a980ab28637e94e48c77eeace6abde5 | ||
| 5 | Author: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 6 | Date: Mon Jul 2 23:10:28 2018 -0400 | ||
| 7 | |||
| 8 | xen/kconfig,menuconfig,mconf-cfg: Allow specification of ncurses location | ||
| 9 | |||
| 10 | In some cross build environments such as the Yocto Project build | ||
| 11 | environment it provides an ncurses library that is compiled | ||
| 12 | differently than the host's version. This causes display corruption | ||
| 13 | problems when the host's curses includes are used instead of the | ||
| 14 | includes from the provided compiler are overridden. There is a second | ||
| 15 | case where there is no curses libraries at all on the host system and | ||
| 16 | menuconfig will just fail entirely. | ||
| 17 | |||
| 18 | The solution is simply to allow an override variable in | ||
| 19 | check-lxdialog.sh for environments such as the Yocto Project. Adding | ||
| 20 | a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing | ||
| 21 | compiling and linking against the right headers and libraries. | ||
| 22 | |||
| 23 | Change-Id: Ibe8dfafc90655e3be2671dbbb0cb7f5631fc4d44 | ||
| 24 | Signed-off-by: Jason Wessel <jason.wessel@windriver.com> | ||
| 25 | cc: Michal Marek <mmarek@suse.cz> | ||
| 26 | cc: linux-kbuild@vger.kernel.org | ||
| 27 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 28 | |||
| 29 | diff --git a/xen/tools/kconfig/mconf-cfg.sh b/xen/tools/kconfig/mconf-cfg.sh | ||
| 30 | old mode 100755 | ||
| 31 | new mode 100644 | ||
| 32 | index c812872..65a9b9e | ||
| 33 | --- a/xen/tools/kconfig/mconf-cfg.sh | ||
| 34 | +++ b/xen/tools/kconfig/mconf-cfg.sh | ||
| 35 | @@ -4,6 +4,14 @@ | ||
| 36 | PKG="ncursesw" | ||
| 37 | PKG2="ncurses" | ||
| 38 | |||
| 39 | +if [ "$CROSS_CURSES_LIB" != "" ]; then | ||
| 40 | + echo libs=\'$CROSS_CURSES_LIB\' | ||
| 41 | + if [ x"$CROSS_CURSES_INC" != x ]; then | ||
| 42 | + echo cflags=\'$CROSS_CURSES_INC\' | ||
| 43 | + fi | ||
| 44 | + exit 0 | ||
| 45 | +fi | ||
| 46 | + | ||
| 47 | if [ -n "$(command -v pkg-config)" ]; then | ||
| 48 | if pkg-config --exists $PKG; then | ||
| 49 | echo cflags=\"$(pkg-config --cflags $PKG)\" | ||
diff --git a/recipes-extended/xen/xen-hypervisor.inc b/recipes-extended/xen/xen-hypervisor.inc index c386917d..3bfee8ee 100644 --- a/recipes-extended/xen/xen-hypervisor.inc +++ b/recipes-extended/xen/xen-hypervisor.inc | |||
| @@ -9,7 +9,7 @@ DESCRIPTION = "The Xen hypervisor" | |||
| 9 | # The Xen hypervisor has a narrower compatible platform range than the Xen tools | 9 | # The Xen hypervisor has a narrower compatible platform range than the Xen tools |
| 10 | COMPATIBLE_HOST = '(x86_64.*).*-linux|aarch64.*-linux|arm-.*-linux-gnueabi' | 10 | COMPATIBLE_HOST = '(x86_64.*).*-linux|aarch64.*-linux|arm-.*-linux-gnueabi' |
| 11 | 11 | ||
| 12 | inherit deploy python3native | 12 | inherit deploy python3native cml1 |
| 13 | 13 | ||
| 14 | PACKAGES = " \ | 14 | PACKAGES = " \ |
| 15 | ${PN} \ | 15 | ${PN} \ |
| @@ -34,6 +34,18 @@ FILES_${PN}-efi = " \ | |||
| 34 | 34 | ||
| 35 | do_configure() { | 35 | do_configure() { |
| 36 | do_configure_common | 36 | do_configure_common |
| 37 | |||
| 38 | # Handle the config fragments | ||
| 39 | cfgs="${@' '.join(find_cfgs(d))}" | ||
| 40 | if [ -n "${cfgs}" ]; then | ||
| 41 | # If .config is not present generate one in order | ||
| 42 | # to use the merge_config.sh | ||
| 43 | if [ ! -f "${S}/xen/.config" ] ; then | ||
| 44 | oe_runmake -C ${S}/xen defconfig | ||
| 45 | fi | ||
| 46 | ${S}/xen/tools/kconfig/merge_config.sh -m -O \ | ||
| 47 | ${S}/xen ${S}/xen/.config "${cfgs}" | ||
| 48 | fi | ||
| 37 | } | 49 | } |
| 38 | 50 | ||
| 39 | do_compile() { | 51 | do_compile() { |
| @@ -77,35 +89,12 @@ do_deploy[depends] += "xen-tools:do_populate_sysroot" | |||
| 77 | do_deploy[depends] += "xen-tools:do_deploy" | 89 | do_deploy[depends] += "xen-tools:do_deploy" |
| 78 | 90 | ||
| 79 | # Enable use of menuconfig directly from bitbake and also within the devshell | 91 | # Enable use of menuconfig directly from bitbake and also within the devshell |
| 80 | OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS TERMINFO" | ||
| 81 | HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}" | ||
| 82 | HOSTLDFLAGS = "${BUILD_LDFLAGS}" | ||
| 83 | TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo" | ||
| 84 | do_devshell[depends] += "ncurses-native:do_populate_sysroot" | 92 | do_devshell[depends] += "ncurses-native:do_populate_sysroot" |
| 85 | 93 | ||
| 86 | KCONFIG_CONFIG_COMMAND ??= "menuconfig" | 94 | # Pass the native library path for kconfig build when running the do_menuconfig |
| 87 | python do_menuconfig() { | 95 | # task |
| 88 | import shutil | 96 | CROSS_CURSES_LIB += "-L${STAGING_LIBDIR_NATIVE}" |
| 89 | |||
| 90 | try: | ||
| 91 | mtime = os.path.getmtime("xen/.config") | ||
| 92 | shutil.copy("xen/.config", "xen/.config.orig") | ||
| 93 | except OSError: | ||
| 94 | mtime = 0 | ||
| 95 | 97 | ||
| 96 | oe_terminal("${SHELL} -c \"cd xen; XEN_CONFIG_EXPERT=y make %s; if [ \$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND'), | 98 | # Specify the root dir of the .config file for do_menuconfig and do_diffconfig |
| 97 | d.getVar('PN') + ' Configuration', d) | 99 | # tasks |
| 98 | 100 | KCONFIG_CONFIG_ROOTDIR = "${S}/xen" | |
| 99 | try: | ||
| 100 | newmtime = os.path.getmtime("xen/.config") | ||
| 101 | except OSError: | ||
| 102 | newmtime = 0 | ||
| 103 | |||
| 104 | if newmtime > mtime: | ||
| 105 | bb.note("Configuration changed, recompile will be forced") | ||
| 106 | bb.build.write_taint('do_compile', d) | ||
| 107 | } | ||
| 108 | do_menuconfig[depends] += "ncurses-native:do_populate_sysroot" | ||
| 109 | do_menuconfig[nostamp] = "1" | ||
| 110 | do_menuconfig[dirs] = "${B}" | ||
| 111 | addtask menuconfig after do_configure | ||
diff --git a/recipes-extended/xen/xen_4.14.bb b/recipes-extended/xen/xen_4.14.bb index 0413bee1..91e89883 100644 --- a/recipes-extended/xen/xen_4.14.bb +++ b/recipes-extended/xen/xen_4.14.bb | |||
| @@ -6,6 +6,7 @@ XEN_BRANCH ?= "stable-${XEN_REL}" | |||
| 6 | SRC_URI = " \ | 6 | SRC_URI = " \ |
| 7 | git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \ | 7 | git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \ |
| 8 | file://xen-arm64-implement-atomic-fetch-add.patch \ | 8 | file://xen-arm64-implement-atomic-fetch-add.patch \ |
| 9 | file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \ | ||
| 9 | " | 10 | " |
| 10 | 11 | ||
| 11 | LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5" | 12 | LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5" |
diff --git a/recipes-extended/xen/xen_git.bb b/recipes-extended/xen/xen_git.bb index 408bc3b3..57791fc4 100644 --- a/recipes-extended/xen/xen_git.bb +++ b/recipes-extended/xen/xen_git.bb | |||
| @@ -6,6 +6,7 @@ XEN_BRANCH ?= "master" | |||
| 6 | SRC_URI = " \ | 6 | SRC_URI = " \ |
| 7 | git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \ | 7 | git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \ |
| 8 | file://xen-arm64-implement-atomic-fetch-add.patch \ | 8 | file://xen-arm64-implement-atomic-fetch-add.patch \ |
| 9 | file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch \ | ||
| 9 | " | 10 | " |
| 10 | 11 | ||
| 11 | LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5" | 12 | LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5" |
