diff options
Diffstat (limited to 'import-layers/meta-virtualization/recipes-extended')
101 files changed, 0 insertions, 9613 deletions
diff --git a/import-layers/meta-virtualization/recipes-extended/dev86/dev86_0.16.20.bb b/import-layers/meta-virtualization/recipes-extended/dev86/dev86_0.16.20.bb deleted file mode 100644 index 38dbf8d4b..000000000 --- a/import-layers/meta-virtualization/recipes-extended/dev86/dev86_0.16.20.bb +++ /dev/null @@ -1,38 +0,0 @@ -DESCRIPTION = "This is a cross development C compiler, assembler and linker environment for the production of 8086 executables (Optionally MSDOS COM)" -HOMEPAGE = "http://www.debath.co.uk/dev86/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -SECTION = "console/tools" -PR="r0" - -SRC_URI="http://v3.sk/~lkundrak/dev86/archive/Dev86src-${PV}.tar.gz" - -SRC_URI[md5sum] = "567cf460d132f9d8775dd95f9208e49a" -SRC_URI[sha256sum] = "61817a378c8c8ba65f36c6792d457a305dc4eedae8cdc8b6233bf2bb28e5fe8d" - -S = "${WORKDIR}/dev86-${PV}" - -BBCLASSEXTEND = "native" -EXTRA_OEMAKE = "VERSION=${PV} PREFIX=${prefix} DIST=${D}" - -do_compile() { - - oe_runmake make.fil - oe_runmake -f make.fil bcc86 as86 ld86 - -} - -do_install() { - - if [ "${prefix}"=="" ] ; then - export prefix=/usr - fi - - oe_runmake install-bcc - ln -s ../lib/bcc/bcc-cpp ${D}${prefix}/bin/bcc-cpp - ln -s ../lib/bcc/bcc-cc1 ${D}${prefix}/bin/bcc-cc1 - -} -COMPATIBLE_HOST = "(i.86|x86_64).*-linux" -FILES_${PN} += "${libdir}/bcc" -INSANE_SKIP_${PN} = "already-stripped" diff --git a/import-layers/meta-virtualization/recipes-extended/diod/diod_1.0.24.bb b/import-layers/meta-virtualization/recipes-extended/diod/diod_1.0.24.bb deleted file mode 100644 index a4d159ab7..000000000 --- a/import-layers/meta-virtualization/recipes-extended/diod/diod_1.0.24.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Diod is a user space server for the kernel v9fs client." -DESCRIPTION = "\ -Diod is a user space server for the kernel v9fs client (9p.ko, 9pnet.ko). \ -Although the kernel client supports several 9P variants, diod only supports \ -9P2000.L, and only in its feature-complete form, as it appeared in 2.6.38." -SECTION = "console/network" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" - -PV = "1.0.24+git${SRCPV}" -SRCREV = "0ea3fe3d829b5085307cd27a512708d99ef48199" -SRC_URI = "git://github.com/chaos/diod.git;protocol=git \ - file://diod \ - file://diod.conf \ - file://0001-build-allow-builds-to-work-with-separate-build-dir.patch \ - file://0002-auto.diod.in-remove-bashisms.patch \ - " -DEPENDS = "libcap ncurses tcp-wrappers lua" - -S = "${WORKDIR}/git" - -inherit autotools systemd - -do_install_append () { - # install our init based on start-stop-daemon - install -D -m 0755 ${WORKDIR}/diod ${D}${sysconfdir}/init.d/diod - # install a real(not commented) configuration file for diod - install -m 0644 ${WORKDIR}/diod.conf ${D}${sysconfdir}/diod.conf -} - -FILES_${PN} += "${systemd_unitdir}" diff --git a/import-layers/meta-virtualization/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch b/import-layers/meta-virtualization/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch deleted file mode 100644 index f40e0eb5d..000000000 --- a/import-layers/meta-virtualization/recipes-extended/diod/files/0001-build-allow-builds-to-work-with-separate-build-dir.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 43403468298ef4167baa5d84de2ee2eaf7f4007a Mon Sep 17 00:00:00 2001 -From: Mark Asselstine <mark.asselstine@windriver.com> -Date: Fri, 9 Jan 2015 18:34:04 +0000 -Subject: [PATCH 1/2] build: allow builds to work with separate build dir - -Remove assumptions in include paths that assume the build -is happening in the source directories. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> ---- - diod/Makefile.am | 2 +- - libdiod/Makefile.am | 2 +- - liblsd/Makefile.am | 2 +- - libnpclient/Makefile.am | 2 +- - scripts/Makefile.am | 6 +++--- - tests/kern/dbench/Makefile.am | 4 ++-- - utils/Makefile.am | 2 +- - 7 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/diod/Makefile.am b/diod/Makefile.am -index 7644be7..fdaf130 100644 ---- a/diod/Makefile.am -+++ b/diod/Makefile.am -@@ -1,7 +1,7 @@ - AM_CFLAGS = @GCCWARN@ - - AM_CPPFLAGS = \ -- -I../libnpfs -I../liblsd -I../libdiod -+ -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd -I$(srcdir)/../libdiod - - sbin_PROGRAMS = diod - -diff --git a/libdiod/Makefile.am b/libdiod/Makefile.am -index 4810e14..6905cdd 100644 ---- a/libdiod/Makefile.am -+++ b/libdiod/Makefile.am -@@ -1,7 +1,7 @@ - AM_CFLAGS = @GCCWARN@ - - AM_CPPFLAGS = \ -- -I../libnpfs -I../libnpclient -I../liblsd -+ -I$(srcdir)/../libnpfs -I$(srcdir)/../libnpclient -I$(srcdir)/../liblsd - - noinst_LIBRARIES = libdiod.a - -diff --git a/liblsd/Makefile.am b/liblsd/Makefile.am -index c3e5658..7e18bf8 100644 ---- a/liblsd/Makefile.am -+++ b/liblsd/Makefile.am -@@ -1,6 +1,6 @@ - AM_CFLAGS = @GCCWARN@ - --AM_CPPFLAGS = -I../libdiod -+AM_CPPFLAGS = -I$(srcdir)/../libdiod - - noinst_LIBRARIES = liblsd.a - -diff --git a/libnpclient/Makefile.am b/libnpclient/Makefile.am -index 5305df9..cbaf266 100644 ---- a/libnpclient/Makefile.am -+++ b/libnpclient/Makefile.am -@@ -1,7 +1,7 @@ - AM_CFLAGS = @GCCWARN@ - - AM_CPPFLAGS = \ -- -I../libnpfs -+ -I$(srcdir)/../libnpfs - - noinst_LIBRARIES = libnpclient.a - -diff --git a/scripts/Makefile.am b/scripts/Makefile.am -index 51c24a3..2aba728 100644 ---- a/scripts/Makefile.am -+++ b/scripts/Makefile.am -@@ -1,9 +1,9 @@ --systemddir=$(sysconfdir)/systemd/system -+systemddir=/lib/systemd/system - - install-data-local: -- $(top_srcdir)/config/install-sh -m 755 $(srcdir)/auto.diod \ -+ $(top_srcdir)/config/install-sh -m 755 ./auto.diod \ - $(DESTDIR)$(sysconfdir)/auto.diod -- $(top_srcdir)/config/install-sh -m 755 $(srcdir)/diod.service \ -+ $(top_srcdir)/config/install-sh -m 644 ./diod.service \ - $(DESTDIR)$(systemddir)/diod.service - - uninstall-local: -diff --git a/tests/kern/dbench/Makefile.am b/tests/kern/dbench/Makefile.am -index e0cdefa..1704f9f 100644 ---- a/tests/kern/dbench/Makefile.am -+++ b/tests/kern/dbench/Makefile.am -@@ -2,7 +2,7 @@ AM_CFLAGS = -w - - # VERSION=4.00 - --AM_CPPFLAGS = -DDATADIR=\"$(X_DATADIR)\" -+AM_CPPFLAGS = -I. -DDATADIR=\"$(X_DATADIR)\" - - LDADD = $(LIBPOPT) - -@@ -25,6 +25,6 @@ BUILT_SOURCES = proto.h - CLEANFILES = proto.h - - proto.h: $(dbench_SOURCES) mkproto.pl -- perl mkproto.pl $(dbench_SOURCES) > proto.h -+ $(srcdir)/mkproto.pl $(patsubst %,$(srcdir),$(dbench_SOURCES)) > proto.h - - EXTRA_DIST = mkproto.pl -diff --git a/utils/Makefile.am b/utils/Makefile.am -index 169b6c4..91d571d 100644 ---- a/utils/Makefile.am -+++ b/utils/Makefile.am -@@ -1,7 +1,7 @@ - AM_CFLAGS = @GCCWARN@ - - AM_CPPFLAGS = \ -- -I../libnpfs -I../liblsd -I../libdiod -I../libnpclient -+ -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd -I$(srcdir)/../libdiod -I$(srcdir)/../libnpclient - - sbin_PROGRAMS = diodmount diodcat dtop diodload diodls diodshowmount dioddate - --- -2.11.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch b/import-layers/meta-virtualization/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch deleted file mode 100644 index 65d6ff6b7..000000000 --- a/import-layers/meta-virtualization/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5a9e09dc5de833db11607530351cd87cecbfd17e Mon Sep 17 00:00:00 2001 -From: Roy Li <rongqing.li@windriver.com> -Date: Thu, 22 Jun 2017 06:32:30 +0000 -Subject: [PATCH 2/2] auto.diod.in: remove bashisms - -Upstream-Status: Pending - -Signed-off-by: Roy Li <rongqing.li@windriver.com> ---- - scripts/auto.diod.in | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/scripts/auto.diod.in b/scripts/auto.diod.in -index f63e004..4d5fc3a 100755 ---- a/scripts/auto.diod.in -+++ b/scripts/auto.diod.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # auto.diod - executable automounter map for diod file systems - # -@@ -41,15 +41,15 @@ dcatopts="${DIOD_TIMEOUT:+-t $DIOD_TIMEOUT}" - for server in $DIOD_SERVERS; do - $DIOD_DIODCAT -s $server $dcatopts exports | awk '{print $1}' |\ - while read path; do -- if [ "$path" == "/" ]; then -- if [ "$key" == "ROOT" ]; then -+ if [ "$path" = "/" ]; then -+ if [ "$key" = "ROOT" ]; then - echo "$prefix $server:$path" - exit 0 - fi -- elif [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \ -- || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \ -- || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \ -- || [ "$key" == "$(basename $path)" ]; then -+ elif [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \ -+ || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \ -+ || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \ -+ || [ "$key" = "$(basename $path)" ]; then - echo "$prefix $server:$path" - exit 0 - fi --- -2.11.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/diod/files/diod b/import-layers/meta-virtualization/recipes-extended/diod/files/diod deleted file mode 100644 index cd0bf9872..000000000 --- a/import-layers/meta-virtualization/recipes-extended/diod/files/diod +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# -# chkconfig: 35 20 80 -# description: Distributed Input Output Daemon -# - -# Get function from functions library -. /etc/init.d/functions - -BASE=diod -PIDFILE=/var/run/$BASE.pid -PID=`test -f $PIDFILE && cat $PIDFILE` -DIOD_BIN=/usr/sbin/$BASE -DIOD_CONF=/etc/$BASE.conf -DIOD_OPTS="-c $DIOD_CONF" -DIOD="$DIOD_BIN $DIOD_OPTS" -RETVAL=0 - -# Start the service $BASE -start() -{ - # Force creation of the log directory even on a tmpfs /var/log. - mkdir -p /var/log/diod - - start-stop-daemon --stop --test --quiet --pidfile $PIDFILE - status=$? - if [ $status -eq 0 ]; then - echo "diod service is already running with pid $PID" - exit 1 - else - echo -n "Starting $BASE:" - start-stop-daemon --start --pidfile $PIDFILE \ - --exec $DIOD_BIN -- $DIOD_OPTS - RETVAL=$? - echo - [ $RETVAL -ne 0 ] && exit $RETVAL - fi -} - -# Stop the service $BASE -stop() -{ - echo -n "Stopping $BASE:" - start-stop-daemon --stop --test --quiet --pidfile $PIDFILE - status=$? - if [ $status -eq 0 ]; then - start-stop-daemon --stop --quiet --pidfile $PIDFILE - [ -w $PIDFILE ] && rm -f $PIDFILE - else - start-stop-daemon --stop --quiet --name $BASE - fi -} - - -### service arguments ### -case $1 in - start) - start - ;; - stop) - stop - ;; - status) - status $BASE - ;; - restart | force-reload) - $0 stop - $0 start - ;; - *) - echo "Usage: $0 {start|stop|status|restart}." - exit 1 -esac - -exit 0 diff --git a/import-layers/meta-virtualization/recipes-extended/diod/files/diod.conf b/import-layers/meta-virtualization/recipes-extended/diod/files/diod.conf deleted file mode 100644 index e97743a0c..000000000 --- a/import-layers/meta-virtualization/recipes-extended/diod/files/diod.conf +++ /dev/null @@ -1,15 +0,0 @@ --- --- /etc/diod.conf - config file for diod distributed I/O daemon --- --- NOTE: This config file is a lua script that diod runs, then extracts --- the value of certain globally defined variables. See diod.conf(5). - -listen = { "0.0.0.0:564" } -nwthreads = 16 -auth_required = 1 -logdest = "syslog:daemon:err" - -exports = { "/g/g0", "/g/g10" } - -allsquash = 0 -squashuser = "nobody" diff --git a/import-layers/meta-virtualization/recipes-extended/hyperstart/hyperstart_git.bb b/import-layers/meta-virtualization/recipes-extended/hyperstart/hyperstart_git.bb deleted file mode 100644 index 029747722..000000000 --- a/import-layers/meta-virtualization/recipes-extended/hyperstart/hyperstart_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "The tiny Init service for HyperContainer" -DESCRIPTION = "The init Task for HyperContainer" - -LICENSE = "Apache-2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc" - -inherit autotools-brokensep - -SRC_URI = "git://github.com/hyperhq/hyperstart.git" - -SRCREV = "ad48a3230836f59ada163659cde151a37522068b" -PV = "v0.2+git${SRCREV}" - -S = "${WORKDIR}/git" - -CACHED_CONFIGUREVARS = "ac_cv_file__usr_include_linux_vm_sockets_h=true" - -do_install() { - install -d ${D}/var/lib/hyper/ - - install -m644 ${S}/build/hyper-initrd.img ${D}/var/lib/hyper/ - install -m644 ${S}/build/arch/x86_64/kernel ${D}/var/lib/hyper/ -} - -FILES_${PN} += "/var/lib/hyper" diff --git a/import-layers/meta-virtualization/recipes-extended/iasl/iasl/Make-CC-definition-conditional.patch b/import-layers/meta-virtualization/recipes-extended/iasl/iasl/Make-CC-definition-conditional.patch deleted file mode 100644 index f69a36c63..000000000 --- a/import-layers/meta-virtualization/recipes-extended/iasl/iasl/Make-CC-definition-conditional.patch +++ /dev/null @@ -1,29 +0,0 @@ -[PATCH] Make CC definition conditional - -Upstream-Status: pending - -By hardcoding CC's definition to gcc, make this packages unable to -cross-compile. the -e options of make can not override the CC since -it is not defined in Makefile, but in Makefile.config - -Signed-off-by: Roy.Li <rongqing.li@windriver.com> ---- - generate/unix/Makefile.config | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config -index 8d41399..72d597d 100644 ---- a/generate/unix/Makefile.config -+++ b/generate/unix/Makefile.config -@@ -35,7 +35,7 @@ - .SUFFIXES : - PROGS = acpibin acpidump acpiexamples acpiexec acpihelp acpinames acpisrc acpixtract iasl - HOST ?= _CYGWIN --CC = gcc -+CC ?= gcc - - # - # Common defines --- -1.9.1 - diff --git a/import-layers/meta-virtualization/recipes-extended/iasl/iasl/iasl.1 b/import-layers/meta-virtualization/recipes-extended/iasl/iasl/iasl.1 deleted file mode 100644 index 000a3b812..000000000 --- a/import-layers/meta-virtualization/recipes-extended/iasl/iasl/iasl.1 +++ /dev/null @@ -1,135 +0,0 @@ -.\" First parameter, NAME, should be all caps -.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection -.\" other parameters are allowed: see man(7), man(1) -.TH IASL 1 "October 14, 2005" -.\" Please adjust this date whenever revising the manpage. -.\" -.\" Some roff macros, for reference: -.\" .nh disable hyphenation -.\" .hy enable hyphenation -.\" .ad l left justify -.\" .ad b justify to both left and right margins -.\" .nf disable filling -.\" .fi enable filling -.\" .br insert line break -.\" .sp <n> insert n+1 empty lines -.\" for manpage-specific macros, see man(7) -.SH NAME -iasl \- ACPI Source Language compiler/decompiler -.SH SYNOPSIS -.B iasl -.RI [ options ] -.RI [ "input file" ] -.SH DESCRIPTION -This manual page documents briefly the -.B iasl -command. The option list is taken from the iasl interactive help. -.PP -.\" TeX users may be more comfortable with the \fB<whatever>\fP and -.\" \fI<whatever>\fP escape sequences to invode bold face and italics, -.\" respectively. -.B iasl -is an ASL compiler and decompiler. - -.SH OPTIONS - -.PP -.SS General Output -.TP -.B \-p <prefix> -Specify filename prefix for all output files (including .aml) -.TP -.B \-vi -Less verbose errors and warnings for use with IDEs -.TP -.B \-vo -Enable optimization comments -.TP -.B \-vr -Disable remarks -.TP -.B \-vs -Disable signon - -.PP -.SS AML Output Files -.TP -.B \-s<a|c> -Create AML in assembler or C source file (*.asm or *.c) -.TP -.B \-i<a|c> -Create assembler or C include file (*.inc or *.h) -.TP -.B \-t<a|c> -Create AML in assembler or C hex table (*.hex) - -.PP -.SS AML Code Generation -.TP -.B \-oa -Disable all optimizations (compatibility mode) -.TP -.B \-of -Disable constant folding -.TP -.B \-oi -Disable integer optimization to Zero/One/Ones -.TP -.B \-on -Disable named reference string optimization -.TP -.B \-r<Revision> -Override table header Revision (1-255) - -.PP -.SS Listings -.TP -.B \-l -Create mixed listing file (ASL source and AML) (*.lst) -.TP -.B \-ln -Create namespace file (*.nsp) -.TP -.B \-ls -Create combined source file (expanded includes) (*.src) - -.PP -.SS AML Disassembler -.TP -.B \-d [file] -Disassemble AML to ASL source code file (*.dsl) -.TP -.B \-dc [file] -Disassemble AML and immediately compile it -.br -(Obtain DSDT from current system if no input file) -.TP -.B \-e -Generate External() statements for unresolved symbols -.TP -.B \-g -Get ACPI tables and write to files (*.dat) - -.PP -.SS Miscellaneous -.TP -.B \-a -Verify source file is entirely ASCII text (0x00-0x7F) - -.PP -.SS Help -.TP -.B \-h -Additional help and compiler debug options -.TP -.B \-hc -Display operators allowed in constant expressions -.TP -.B \-hr -Display ACPI reserved method names - -.SH AUTHOR -iasl was written by Robert Moore <robert.moore@intel.com>. -.PP -This manual page was written by Mattia Dongili <malattia@debian.org>, -for the Debian project (but may be used by others). diff --git a/import-layers/meta-virtualization/recipes-extended/iasl/iasl_20160527.bb b/import-layers/meta-virtualization/recipes-extended/iasl/iasl_20160527.bb deleted file mode 100644 index 62e83c477..000000000 --- a/import-layers/meta-virtualization/recipes-extended/iasl/iasl_20160527.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "Intel ASL compiler/decompiler" -DESCRIPTION = "This is a cross development C compiler, assembler and linker environment for the production of 8086 executables (Optionally MSDOS COM)" -HOMEPAGE = "http://www.acpica.org/" -LICENSE = "Intel-ACPI" -LIC_FILES_CHKSUM = "file://source/compiler/aslcompiler.h;beginline=7;endline=114;md5=09f82edcd148ab4c8aa554bc3e9d0676" -SECTION = "console/tools" - -DEPENDS = "bison-native flex-native" - -SRC_URI = "https://www.acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz \ - file://iasl.1 \ - file://Make-CC-definition-conditional.patch \ -" - -SRC_URI[md5sum] = "be677fc358de9dadc036e1ea678a101b" -SRC_URI[sha256sum] = "6b681732624de1eb58b2bcf1c7ef0744ba14ed35fcaa534d4421574782fbb848" - -S = "${WORKDIR}/acpica-unix-${PV}/" - -BBCLASSEXTEND = "native" -CFLAGS += "-D_LINUX -DACPI_ASL_COMPILER -I../include -I../compiler" - -COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux" - -# By setting NOOPT we suppress forcing -O2 and setting _FORTIFY_SOURCE=2. Let the -# optimization and security cflags set them. -# -do_compile() { - oe_runmake iasl NOOPT=TRUE NOFORTIFY=TRUE -} - -do_install() { - install -d ${D}${bindir} ${D}${mandir}/man1 - install -m 0755 ${S}/generate/unix/bin/iasl ${D}${bindir} - install -m 0644 ${WORKDIR}/iasl.1 ${D}${mandir}/man1 -} diff --git a/import-layers/meta-virtualization/recipes-extended/images/cloud-image-compute.bb b/import-layers/meta-virtualization/recipes-extended/images/cloud-image-compute.bb deleted file mode 100644 index 197624f92..000000000 --- a/import-layers/meta-virtualization/recipes-extended/images/cloud-image-compute.bb +++ /dev/null @@ -1,14 +0,0 @@ -IMAGE_FEATURES += "ssh-server-openssh" -EXTRA_IMAGE_FEATURES = "tools-debug debug-tweaks" - -IMAGE_INSTALL = "\ - ${CORE_IMAGE_BASE_INSTALL} \ - packagegroup-core-basic \ - openvswitch \ - libvirt \ - openflow \ - " - -inherit core-image - -IMAGE_FSTYPES = "tar.gz" diff --git a/import-layers/meta-virtualization/recipes-extended/images/cloud-image-controller.bb b/import-layers/meta-virtualization/recipes-extended/images/cloud-image-controller.bb deleted file mode 100644 index c816545f7..000000000 --- a/import-layers/meta-virtualization/recipes-extended/images/cloud-image-controller.bb +++ /dev/null @@ -1,32 +0,0 @@ -IMAGE_FEATURES += "ssh-server-openssh package-management" -EXTRA_IMAGE_FEATURES = "tools-debug debug-tweaks" - -IMAGE_INSTALL = "\ - ${CORE_IMAGE_BASE_INSTALL} \ - packagegroup-core-basic \ - openvswitch \ - openvswitch-controller \ - openvswitch-switch \ - openvswitch-brcompat \ - criu \ - libvirt \ - libvirt-libvirtd \ - libvirt-python \ - libvirt-virsh \ - openflow \ - qemu \ - kernel-modules \ - dhcp-client \ - perl-modules \ - grub \ - mysql5 \ - python-twisted \ - python-lxml \ - " - -inherit core-image - -IMAGE_FSTYPES = "wic.vmdk tar.gz" - -# Ensure extra space for guest images -#IMAGE_ROOTFS_EXTRA_SPACE = "41943040" diff --git a/import-layers/meta-virtualization/recipes-extended/images/cloud-image-guest.bb b/import-layers/meta-virtualization/recipes-extended/images/cloud-image-guest.bb deleted file mode 100644 index 2957506d4..000000000 --- a/import-layers/meta-virtualization/recipes-extended/images/cloud-image-guest.bb +++ /dev/null @@ -1,16 +0,0 @@ -IMAGE_FEATURES += "ssh-server-openssh package-management" -EXTRA_IMAGE_FEATURES = "tools-debug debug-tweaks" - -IMAGE_INSTALL = "\ - ${CORE_IMAGE_BASE_INSTALL} \ - packagegroup-core-basic \ - openflow \ - qemu \ - kernel-modules \ - tcpdump \ - dhcp-client \ - " - -inherit core-image - -IMAGE_FSTYPES += "wic.vmdk" diff --git a/import-layers/meta-virtualization/recipes-extended/images/kvm-image-minimal.bb b/import-layers/meta-virtualization/recipes-extended/images/kvm-image-minimal.bb deleted file mode 100644 index b28cc309c..000000000 --- a/import-layers/meta-virtualization/recipes-extended/images/kvm-image-minimal.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "A minimal kvm image" - -IMAGE_INSTALL = " \ - packagegroup-core-boot \ - qemu \ - libvirt \ - libvirt-libvirtd \ - libvirt-virsh \ - kernel-module-kvm \ - kernel-module-kvm-intel \ - kernel-module-kvm-amd \ - " - -IMAGE_FEATURES += "ssh-server-openssh" - -IMAGE_LINGUAS = " " - -LICENSE = "MIT" - -inherit core-image - -IMAGE_ROOTFS_SIZE = "8192" diff --git a/import-layers/meta-virtualization/recipes-extended/images/xen-guest-image-minimal.bb b/import-layers/meta-virtualization/recipes-extended/images/xen-guest-image-minimal.bb deleted file mode 100644 index d311eaef9..000000000 --- a/import-layers/meta-virtualization/recipes-extended/images/xen-guest-image-minimal.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "A Xen guest image." - -inherit core-image distro_features_check - -IMAGE_INSTALL += " \ - packagegroup-core-boot \ - ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'kernel-module-xen-acpi-processor', '', d)} \ - " - -IMAGE_INSTALL += "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-fbdev', '', d)}" - -# Install xf86-video-vesa on x86 platforms. -IMAGE_INSTALL_append_x86-64 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}" -IMAGE_INSTALL_append_x86 = "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' xf86-video-vesa', '', d)}" - -REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('IMAGE_FEATURES', 'x11', ' x11', '', d)} xen" - -LICENSE = "MIT" - -# Send console messages to xen console -APPEND += "console=hvc0" diff --git a/import-layers/meta-virtualization/recipes-extended/images/xen-image-minimal.bb b/import-layers/meta-virtualization/recipes-extended/images/xen-image-minimal.bb deleted file mode 100644 index c39d37826..000000000 --- a/import-layers/meta-virtualization/recipes-extended/images/xen-image-minimal.bb +++ /dev/null @@ -1,66 +0,0 @@ -DESCRIPTION = "A minimal xen image" - -INITRD_IMAGE = "core-image-minimal-initramfs" - -IMAGE_INSTALL += " \ - packagegroup-core-boot \ - packagegroup-core-ssh-openssh \ - ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'kernel-module-xen-acpi-processor', '', d)} \ - kernel-module-xen-blkback \ - kernel-module-xen-gntalloc \ - kernel-module-xen-gntdev \ - kernel-module-xen-netback \ - ${@bb.utils.contains('MACHINE_FEATURES', 'pci', "${XEN_PCIBACK_MODULE}", '', d)} \ - kernel-module-xen-wdt \ - xen-base \ - qemu \ - " - -# Linux kernel option CONFIG_XEN_PCIDEV_BACKEND depends on X86 -XEN_PCIBACK_MODULE = "" -XEN_PCIBACK_MODULE_x86 = "kernel-module-xen-pciback" -XEN_PCIBACK_MODULE_x86-64 = "kernel-module-xen-pciback" - -LICENSE = "MIT" - -inherit core-image - -do_check_xen_state() { - if [ "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' yes', 'no', d)}" = "no" ]; then - die "DISTRO_FEATURES does not contain 'xen'" - fi -} - -addtask check_xen_state before do_rootfs - -syslinux_iso_populate_append() { - install -m 0444 ${STAGING_DATADIR}/syslinux/libcom32.c32 ${ISODIR}${ISOLINUXDIR} - install -m 0444 ${STAGING_DATADIR}/syslinux/mboot.c32 ${ISODIR}${ISOLINUXDIR} -} - -syslinux_hddimg_populate_append() { - install -m 0444 ${STAGING_DATADIR}/syslinux/libcom32.c32 ${HDDDIR}${SYSLINUXDIR} - install -m 0444 ${STAGING_DATADIR}/syslinux/mboot.c32 ${HDDDIR}${SYSLINUXDIR} -} - -grubefi_populate_append() { - install -m 0644 ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.gz ${DEST}${EFIDIR}/xen.gz -} - -syslinux_populate_append() { - install -m 0644 ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.gz ${DEST}/xen.gz -} - -SYSLINUX_XEN_ARGS ?= "loglvl=all guest_loglvl=all console=com1,vga com1=115200,8n1" -SYSLINUX_KERNEL_ARGS ?= "ramdisk_size=32768 root=/dev/ram0 rw console=hvc0 earlyprintk=xen console=tty0 panic=10 LABEL=boot debugshell=5" - -build_syslinux_cfg () { - echo "ALLOWOPTIONS 1" > ${SYSLINUX_CFG} - echo "DEFAULT boot" >> ${SYSLINUX_CFG} - echo "TIMEOUT 10" >> ${SYSLINUX_CFG} - echo "PROMPT 1" >> ${SYSLINUX_CFG} - echo "LABEL boot" >> ${SYSLINUX_CFG} - echo " KERNEL mboot.c32" >> ${SYSLINUX_CFG} - echo " APPEND /xen.gz ${SYSLINUX_XEN_ARGS} --- /vmlinuz ${SYSLINUX_KERNEL_ARGS} --- /initrd" >> ${SYSLINUX_CFG} -} - diff --git a/import-layers/meta-virtualization/recipes-extended/iptables/iptables-meta-virtualization.inc b/import-layers/meta-virtualization/recipes-extended/iptables/iptables-meta-virtualization.inc deleted file mode 100644 index 8fd521c94..000000000 --- a/import-layers/meta-virtualization/recipes-extended/iptables/iptables-meta-virtualization.inc +++ /dev/null @@ -1,19 +0,0 @@ -RRECOMMENDS_${PN} += "kernel-module-ip6-tables \ - kernel-module-ip-tables \ - kernel-module-ip6table-filter \ - kernel-module-iptable-filter \ - kernel-module-ip6table-raw \ - kernel-module-iptable-raw \ - kernel-module-ip6table-nat \ - kernel-module-iptable-nat \ - kernel-module-ip6table-mangle \ - kernel-module-iptable-magle \ - kernel-module-ip6table-security \ - kernel-module-iptable-security \ - kernel-module-ipt-reject \ - kernel-module-iptable-mangle \ - kernel-module-xt-checksum \ - kernel-module-xt-conntrack \ - kernel-module-xt-state \ - kernel-module-xt-tcpudp \ - " diff --git a/import-layers/meta-virtualization/recipes-extended/iptables/iptables_1.%.bbappend b/import-layers/meta-virtualization/recipes-extended/iptables/iptables_1.%.bbappend deleted file mode 100644 index 9a15e60c5..000000000 --- a/import-layers/meta-virtualization/recipes-extended/iptables/iptables_1.%.bbappend +++ /dev/null @@ -1 +0,0 @@ -require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${BPN}-meta-virtualization.inc', '', d)} diff --git a/import-layers/meta-virtualization/recipes-extended/ipxe/ipxe_git.bb b/import-layers/meta-virtualization/recipes-extended/ipxe/ipxe_git.bb deleted file mode 100644 index c0c8a7b78..000000000 --- a/import-layers/meta-virtualization/recipes-extended/ipxe/ipxe_git.bb +++ /dev/null @@ -1,31 +0,0 @@ -DESCRIPTION = "Open source network boot firmware" -HOMEPAGE = "http://ipxe.org" -LICENSE = "GPLv2" -DEPENDS = "binutils-native perl-native syslinux mtools-native cdrtools-native" -LIC_FILES_CHKSUM = "file://../COPYING;md5=8ca43cbc842c2336e835926c2166c28b" - -SRCREV = "8c43891db4eb131d019360ccfb619f235b17eb58" -PV = "gitr${SRCPV}" -PR = "r0" - -SRC_URI = "git://git.ipxe.org/ipxe.git;protocol=https" - -FILES_${PN} = "/usr/share/firmware/*.rom" - -EXTRA_OEMAKE = "NO_WERROR=1" -#PARALLEL_MAKE="" - -S = "${WORKDIR}/git/src" - -do_configure() { - sed -i s#^ISOLINUX_BIN[\ \\t]*=.*#ISOLINUX_BIN\ =\ ${STAGING_DIR_TARGET}/usr/lib/syslinux/isolinux.bin# arch/i386/Makefile -} - -do_compile() { - oe_runmake -} - -do_install() { - install -d ${D}/usr/share/firmware - install ${S}/bin/*.rom ${D}/usr/share/firmware/ -} diff --git a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance.inc b/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance.inc deleted file mode 100644 index 53275d121..000000000 --- a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance.inc +++ /dev/null @@ -1,47 +0,0 @@ -# -# Copyright (C) 2013 Wind River Systems, Inc. -# -SUMMARY = "IRQ allocation daemon" -DESCRIPTION = "A daemon to balance interrupts across multiple CPUs, \ -which can lead to better performance and IO balance on SMP systems." - -HOMEPAGE = "http://code.google.com/p/irqbalance/" -BUGTRACKER = "http://code.google.com/p/irqbalance/issues/list" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://irqbalance.c;beginline=6;endline=8;md5=b94e153694672307b503b1bc87dc9e24 \ - " - -DEPENDS = "glib-2.0" - -INITSCRIPT_NAME = "irqbalanced" -INITSCRIPT_PARAMS = "defaults" - -inherit autotools update-rc.d pkgconfig systemd - -SYSTEMD_PACKAGES = "irqbalance" -SYSTEMD_SERVICE_irqbalance = "irqbalanced.service" - -EXTRA_OECONF = "--program-transform-name= \ - " - -# let the recipes or appends define options -# -PACKAGECONFIG ?= "" - -# enable,disable,depends,rdepends -# -PACKAGECONFIG[numa] = "--enable-numa,--disable-numa,numactl," -PACKAGECONFIG[libcap-ng] = "--with-libcap-ng,--without-libcap-ng,libcap-ng," - -do_install () { - oe_runmake 'DESTDIR=${D}' install - install -d ${D}${sysconfdir}/init.d - cat ${S}/irqbalance.init | sed -e's,/usr/sbin,${sbindir},g' > ${D}${sysconfdir}/init.d/irqbalanced - chmod 755 ${D}${sysconfdir}/init.d/irqbalanced - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/irqbalanced.service ${D}${systemd_unitdir}/system - sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/irqbalanced.service -} diff --git a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/add-initscript.patch b/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/add-initscript.patch deleted file mode 100644 index b0e608e66..000000000 --- a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/add-initscript.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 80c45eecc193c6c13430ddeb40b9b0fd1841ceee Mon Sep 17 00:00:00 2001 -From: Mark Asselstine <mark.asselstine@windriver.com> -Date: Thu, 14 Mar 2013 23:31:38 -0700 -Subject: [PATCH] irqbalance: add basic init script - -The upstream irqbalance release package does not contain an -init script so we create a basic one here. - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> - ---- - irqbalance.init | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - create mode 100644 irqbalance.init - -diff --git a/irqbalance.init b/irqbalance.init -new file mode 100644 -index 0000000..d12d62c ---- /dev/null -+++ b/irqbalance.init -@@ -0,0 +1,35 @@ -+#!/bin/sh -+# -+# Copyright (c) 2012 Wind River Systems, Inc. -+# -+### BEGIN INIT INFO -+# Provides: irqbalance -+# Required-Start: -+# Required-Stop: -+# Default-Start: 2 3 4 5 -+# Default-Stop: 0 1 6 -+# Short-Description: IRQ allocation daemon -+### END INIT INFO -+ -+case "$1" in -+ start) -+ echo -n "Starting irqbalance: " -+ start-stop-daemon -S -b -n irqbalance -a /usr/sbin/irqbalance -+ echo "done" -+ ;; -+ stop) -+ echo -n "Shutting down irqbalance: " -+ start-stop-daemon -K -n irqbalance -+ echo "done" -+ ;; -+ restart) -+ $0 stop -+ $0 start -+ ;; -+ *) -+ echo "Usage: $0 {start | stop | restart}" >&2 -+ exit 1 -+ ;; -+esac -+ -+exit 0 diff --git a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/fix-configure-libcap-ng.patch b/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/fix-configure-libcap-ng.patch deleted file mode 100644 index fb22d7a2f..000000000 --- a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/fix-configure-libcap-ng.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 20a1b2ff2e6d80924824983c363c80f66e05c0d0 Mon Sep 17 00:00:00 2001 -From: Ming Liu <ming.liu@windriver.com> -Date: Sun, 6 Sep 2015 14:43:24 +0800 -Subject: [PATCH] grasp withval for libcap-ng - -Upstream-Status: Pending - -Signed-off-by: Ming Liu <ming.liu@windriver.com> - ---- - configure.ac | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 38a1bee..95f1488 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -62,7 +62,10 @@ AS_IF( - ]) - - AC_ARG_WITH([libcap-ng], -- AS_HELP_STRING([libcap-ng], [Add libcap-ng-support @<:@default=auto@:>@])) -+ [AS_HELP_STRING([libcap-ng], [Add libcap-ng-support @<:@default=auto@:>@])], -+ [libcap_ng=$withval], -+ [libcap_ng=$withval] -+) - - AS_IF( - [test "x$libcap_ng" != "xno"], diff --git a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch b/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch deleted file mode 100644 index ec01448fc..000000000 --- a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/irqbalance-Add-status-and-reload-commands.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 9a16da2628cc4fddf37fe0368b4f6424270f0b2d Mon Sep 17 00:00:00 2001 -From: Yang Shi <yang.shi@windriver.com> -Date: Mon, 26 Aug 2013 10:58:02 -0700 -Subject: [PATCH] irqbalance: Add status and reload commands - -Add status and reload commands for irqbalanced init script - -Signed-off-by: Yang Shi <yang.shi@windriver.com> - ---- - irqbalance.init | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/irqbalance.init b/irqbalance.init -index d12d62c..f58bf55 100644 ---- a/irqbalance.init -+++ b/irqbalance.init -@@ -1,6 +1,6 @@ - #!/bin/sh - # --# Copyright (c) 2012 Wind River Systems, Inc. -+# Copyright (c) 2013 Wind River Systems, Inc. - # - ### BEGIN INIT INFO - # Provides: irqbalance -@@ -11,6 +11,8 @@ - # Short-Description: IRQ allocation daemon - ### END INIT INFO - -+. /etc/init.d/functions -+ - case "$1" in - start) - echo -n "Starting irqbalance: " -@@ -22,12 +24,16 @@ case "$1" in - start-stop-daemon -K -n irqbalance - echo "done" - ;; -- restart) -+ restart|reload) - $0 stop - $0 start - ;; -+ status) -+ status irqbalance -+ echo "done" -+ ;; - *) -- echo "Usage: $0 {start | stop | restart}" >&2 -+ echo "Usage: $0 {start | stop | restart | reload | status}" >&2 - exit 1 - ;; - esac diff --git a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/irqbalanced.service b/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/irqbalanced.service deleted file mode 100644 index 5b284faa6..000000000 --- a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance/irqbalanced.service +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=irqbalance daemon -After=syslog.target - -[Service] -ExecStart=@SBINDIR@/irqbalance --foreground - -[Install] -WantedBy=multi-user.target diff --git a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance_1.3.0.bb b/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance_1.3.0.bb deleted file mode 100644 index 5581a8b53..000000000 --- a/import-layers/meta-virtualization/recipes-extended/irqbalance/irqbalance_1.3.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (C) 2015 Wind River Systems, Inc. -# - -require irqbalance.inc - -SRC_URI[md5sum] = "53ee393adcfbc8e5ab23cbbd920df687" -SRC_URI[sha256sum] = "41c2c0842d8fb24240d8069b389cd8d1669625a40009a17ad886967845dc6e43" - -SRC_URI = "https://github.com/Irqbalance/irqbalance/archive/v${PV}.tar.gz;downloadfilename=irqbalance-${PV}.tar.gz \ - file://add-initscript.patch \ - file://irqbalance-Add-status-and-reload-commands.patch \ - file://fix-configure-libcap-ng.patch \ - file://irqbalanced.service \ - " diff --git a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0001-Avoid-pointers-for-address-of-packed-members.patch b/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0001-Avoid-pointers-for-address-of-packed-members.patch deleted file mode 100644 index 863e86a88..000000000 --- a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0001-Avoid-pointers-for-address-of-packed-members.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2e22df7c24dadf5e16004cd832cabca76a699d4d Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 21 Mar 2017 23:32:39 -0700 -Subject: [PATCH] Avoid pointers for address of packed members - -Fixes Clang warning due to -Waddress-of-packed-member - -virtio/blk.c:161:37: error: taking address of packed member 'geometry' of class or structure 'virtio_blk_config' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member] - struct virtio_blk_geometry *geo = &conf->geometry; - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - virtio/blk.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/virtio/blk.c b/virtio/blk.c -index c485e4f..1f7365d 100644 ---- a/virtio/blk.c -+++ b/virtio/blk.c -@@ -158,7 +158,6 @@ static void set_guest_features(struct kvm *kvm, void *dev, u32 features) - { - struct blk_dev *bdev = dev; - struct virtio_blk_config *conf = &bdev->blk_config; -- struct virtio_blk_geometry *geo = &conf->geometry; - - bdev->features = features; - -@@ -167,7 +166,7 @@ static void set_guest_features(struct kvm *kvm, void *dev, u32 features) - conf->seg_max = virtio_host_to_guest_u32(&bdev->vdev, conf->seg_max); - - /* Geometry */ -- geo->cylinders = virtio_host_to_guest_u16(&bdev->vdev, geo->cylinders); -+ conf->geometry.cylinders = virtio_host_to_guest_u16(&bdev->vdev, conf->geometry.cylinders); - - conf->blk_size = virtio_host_to_guest_u32(&bdev->vdev, conf->blk_size); - conf->min_io_size = virtio_host_to_guest_u16(&bdev->vdev, conf->min_io_size); --- -2.12.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch b/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch deleted file mode 100644 index 63911fc27..000000000 --- a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0001-kvmtool-9p-fixed-compilation-error.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bcd954ffdb9383030e02d356b51e09e4e2a7105a Mon Sep 17 00:00:00 2001 -From: Dariusz Pelowski <dariusz.pelowski@gmail.com> -Date: Sun, 5 Nov 2017 12:39:52 +0100 -Subject: [PATCH 1/2] kvmtool: 9p: fixed compilation error - -makedev is defined in sys/sysmacros.h - -Signed-off-by: Dariusz Pelowski <dariusz.pelowski@gmail.com> ---- - virtio/9p.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/virtio/9p.c b/virtio/9p.c -index 6acbfdd..1dee2c2 100644 ---- a/virtio/9p.c -+++ b/virtio/9p.c -@@ -15,6 +15,7 @@ - #include <string.h> - #include <errno.h> - #include <sys/vfs.h> -+#include <sys/sysmacros.h> - - #include <linux/virtio_ring.h> - #include <linux/virtio_9p.h> --- -2.15.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch b/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch deleted file mode 100644 index 262531caa..000000000 --- a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/0002-kvmtool-add-EXTRA_CFLAGS-variable.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 977a4d41012d1814f5a5330cacc2e4944de387cc Mon Sep 17 00:00:00 2001 -From: Dariusz Pelowski <dariusz.pelowski@gmail.com> -Date: Sun, 5 Nov 2017 12:39:21 +0100 -Subject: [PATCH 2/2] kvmtool: add EXTRA_CFLAGS variable - -to avoid CFLAGS overriding introduce new EXTRA_CFLAGS variable -for setting via command argument - -Signed-off-by: Dariusz Pelowski <dariusz.pelowski@gmail.com> ---- - Makefile | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Makefile b/Makefile -index 64a0a16..bca1b26 100644 ---- a/Makefile -+++ b/Makefile -@@ -2,6 +2,8 @@ - # Define WERROR=0 to disable -Werror. - # - -+CFLAGS += $(EXTRA_CFLAGS) -+ - ifeq ($(strip $(V)),) - E = @echo - Q = @ --- -2.15.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/external-crosscompiler.patch b/import-layers/meta-virtualization/recipes-extended/kvmtool/files/external-crosscompiler.patch deleted file mode 100644 index 75cef3b19..000000000 --- a/import-layers/meta-virtualization/recipes-extended/kvmtool/files/external-crosscompiler.patch +++ /dev/null @@ -1,31 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -This allows OpenEmbedded to pass in cross compiler configuration using -the default envirnment variables. It is required so that kvmtool can -be linked against the cross-compiled libfdt library. - -diff --git a/Makefile b/Makefile -index 1f0196f..8bfb068 100644 ---- a/Makefile -+++ b/Makefile -@@ -14,11 +14,6 @@ export E Q - include config/utilities.mak - include config/feature-tests.mak - --CC := $(CROSS_COMPILE)gcc --CFLAGS := --LD := $(CROSS_COMPILE)ld --LDFLAGS := -- - FIND := find - CSCOPE := cscope - TAGS := ctags -@@ -297,7 +292,7 @@ $(warning No static libc found. Skipping guest init) - endif - - ifeq (y,$(ARCH_WANT_LIBFDT)) -- ifneq ($(call try-build,$(SOURCE_LIBFDT),$(CFLAGS),-lfdt),y) -+ ifneq ($(call try-build,$(SOURCE_LIBFDT),$(CPPFLAGS) $(CFLAGS),-lfdt),y) - $(error No libfdt found. Please install libfdt-dev package) - else - CFLAGS_DYNOPT += -DCONFIG_HAS_LIBFDT diff --git a/import-layers/meta-virtualization/recipes-extended/kvmtool/kvmtool.bb b/import-layers/meta-virtualization/recipes-extended/kvmtool/kvmtool.bb deleted file mode 100644 index 33fec3118..000000000 --- a/import-layers/meta-virtualization/recipes-extended/kvmtool/kvmtool.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Native Linux KVM tool" -DESCRIPTION = "kvmtool is a lightweight tool for hosting KVM guests." - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067" - -DEPENDS = "dtc libaio zlib" -do_configure[depends] += "virtual/kernel:do_shared_workdir" - -inherit kernel-arch - -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git \ - file://external-crosscompiler.patch \ - file://0001-Avoid-pointers-for-address-of-packed-members.patch \ - file://0001-kvmtool-9p-fixed-compilation-error.patch \ - file://0002-kvmtool-add-EXTRA_CFLAGS-variable.patch \ - " - -SRCREV = "3fea89a924511f9f8fe05a892098fad77c1eca0d" -PV = "3.18.0+git${SRCREV}" - -S = "${WORKDIR}/git" - -EXTRA_OEMAKE='V=1 EXTRA_CFLAGS="-I${STAGING_KERNEL_DIR}/arch/${ARCH}/include -I${STAGING_KERNEL_BUILDDIR}/arch/${ARCH}/include/generated/"' - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${S}/lkvm ${D}${bindir}/ -} diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-Added-configure-variable-for-placing-systemd-untis-l.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-Added-configure-variable-for-placing-systemd-untis-l.patch deleted file mode 100644 index a64739c38..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-Added-configure-variable-for-placing-systemd-untis-l.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 531178d7fbb5d4b3404766cfd0fc999398cccd58 Mon Sep 17 00:00:00 2001 -From: Amarnath Valluri <amarnath.valluri@intel.com> -Date: Wed, 8 Feb 2017 18:39:48 +0200 -Subject: [PATCH] Added configure variable for placing systemd untis location - -Upstream-Status: Pending - -Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> ---- - configure.ac | 3 +++ - daemon/Makefile.am | 1 - - tools/Makefile.am | 1 - - 3 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 0e5b8e3..5a6408c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2687,6 +2687,9 @@ AC_DEFINE_UNQUOTED([isbase64],[libvirt_gl_isbase64],[Hack to avoid symbol clash] - AC_DEFINE_UNQUOTED([base64_encode],[libvirt_gl_base64_encode],[Hack to avoid symbol clash]) - AC_DEFINE_UNQUOTED([base64_encode_alloc],[libvirt_gl_base64_encode_alloc],[Hack to avoid symbol clash]) - -+AC_ARG_VAR(SYSTEMD_UNIT_DIR, 'location for systemd units, defautls to /lib/systemd/system') -+AS_IF([test "x$SYSTEMD_UNIT_DIR" = "x"], [SYSTEMD_UNIT_DIR="/lib/systemd/system"]) -+ - AC_CONFIG_FILES([run], - [chmod +x,-w run]) - AC_CONFIG_FILES([\ -diff --git a/daemon/Makefile.am b/daemon/Makefile.am -index edb75e8..2ab42a6 100644 ---- a/daemon/Makefile.am -+++ b/daemon/Makefile.am -@@ -449,7 +449,6 @@ endif ! LIBVIRT_INIT_SCRIPT_UPSTART - - if LIBVIRT_INIT_SCRIPT_SYSTEMD - --SYSTEMD_UNIT_DIR = /lib/systemd/system - BUILT_SOURCES += libvirtd.service - - install-init-systemd: install-sysconfig libvirtd.service -diff --git a/tools/Makefile.am b/tools/Makefile.am -index 27ecbf1..8cefe1a 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -380,7 +380,6 @@ libvirt-guests.init: libvirt-guests.init.in libvirt-guests.sh - - - EXTRA_DIST += libvirt-guests.service.in --SYSTEMD_UNIT_DIR = /lib/systemd/system - - if LIBVIRT_INIT_SCRIPT_SYSTEMD - install-systemd: libvirt-guests.service install-sysconfig libvirt-guests.sh --- -2.7.4 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-qemu-Let-empty-default-VNC-password-work-as-document.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-qemu-Let-empty-default-VNC-password-work-as-document.patch deleted file mode 100644 index 1d13dd36b..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-qemu-Let-empty-default-VNC-password-work-as-document.patch +++ /dev/null @@ -1,81 +0,0 @@ -Upstream-Status: Backport - -Backport patch to fix CVE-2016-5008 from: - -https://libvirt.org/git/?p=libvirt.git;a=commit;h=f32441c69bf450d6ac593c3acd621c37e120cdaf - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -From f32441c69bf450d6ac593c3acd621c37e120cdaf Mon Sep 17 00:00:00 2001 -From: Jiri Denemark <jdenemar@redhat.com> -Date: Tue, 28 Jun 2016 14:39:58 +0200 -Subject: [PATCH] qemu: Let empty default VNC password work as documented - -CVE-2016-5008 - -Setting an empty graphics password is documented as a way to disable -VNC/SPICE access, but QEMU does not always behaves like that. VNC would -happily accept the empty password. Let's enforce the behavior by setting -password expiration to "now". - -https://bugzilla.redhat.com/show_bug.cgi?id=1180092 - -Signed-off-by: Jiri Denemark <jdenemar@redhat.com> -(cherry picked from commit bb848feec0f3f10e92dd8e5231ae7aa89b5598f3) ---- - src/qemu/qemu_hotplug.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c -index 5f12d77..fda28b0 100644 ---- a/src/qemu/qemu_hotplug.c -+++ b/src/qemu/qemu_hotplug.c -@@ -3547,6 +3547,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver, - time_t now = time(NULL); - char expire_time [64]; - const char *connected = NULL; -+ const char *password; - int ret = -1; - virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); - -@@ -3554,16 +3555,14 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver, - ret = 0; - goto cleanup; - } -+ password = auth->passwd ? auth->passwd : defaultPasswd; - - if (auth->connected) - connected = virDomainGraphicsAuthConnectedTypeToString(auth->connected); - - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) - goto cleanup; -- ret = qemuMonitorSetPassword(priv->mon, -- type, -- auth->passwd ? auth->passwd : defaultPasswd, -- connected); -+ ret = qemuMonitorSetPassword(priv->mon, type, password, connected); - - if (ret == -2) { - if (type != VIR_DOMAIN_GRAPHICS_TYPE_VNC) { -@@ -3571,14 +3570,15 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver, - _("Graphics password only supported for VNC")); - ret = -1; - } else { -- ret = qemuMonitorSetVNCPassword(priv->mon, -- auth->passwd ? auth->passwd : defaultPasswd); -+ ret = qemuMonitorSetVNCPassword(priv->mon, password); - } - } - if (ret != 0) - goto end_job; - -- if (auth->expires) { -+ if (password[0] == '\0') { -+ snprintf(expire_time, sizeof(expire_time), "now"); -+ } else if (auth->expires) { - time_t lifetime = auth->validTo - now; - if (lifetime <= 0) - snprintf(expire_time, sizeof(expire_time), "now"); --- -2.9.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-to-fix-build-error.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-to-fix-build-error.patch deleted file mode 100644 index 089ee330e..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/0001-to-fix-build-error.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 8353dc1e642011199c3b3ba057d51d8768e4cd54 Mon Sep 17 00:00:00 2001 -From: Lei Maohui <leimaohui@cn.fujitsu.com> -Date: Fri, 31 Jul 2015 03:17:07 +0900 -Subject: [PATCH] to fix build error - -The error likes as following - -| Generating internals/command.html.tmp -| /bin/sh: line 3: internals/command.html.tmp: No such file or directory -| rm: Generating internals/locking.html.tmp -| cannot remove `internals/command.html.tmp': No such file or directory -| make[3]: *** [internals/command.html.tmp] Error 1 -| make[3]: *** Waiting for unfinished jobs.... - -Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> -[ywei: rebased to libvirt-1.3.2] -Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com> ---- - docs/Makefile.am | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/docs/Makefile.am b/docs/Makefile.am -index 1b4353b..c199551 100644 ---- a/docs/Makefile.am -+++ b/docs/Makefile.am -@@ -164,7 +164,7 @@ EXTRA_DIST= \ - todo.pl hvsupport.pl todo.cfg-example \ - $(schema_DATA) - --acl_generated = aclperms.htmlinc -+acl.html:: $(srcdir)/aclperms.htmlinc - - $(srcdir)/aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \ - $(srcdir)/genaclperms.pl Makefile.am -@@ -221,7 +221,7 @@ $(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \ - convert -rotate 90 $< $@ - - %.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \ -- sitemap.html.in $(acl_generated) -+ sitemap.html.in - @if [ -x $(XSLTPROC) ] ; then \ - echo "Generating $@"; \ - name=`echo $@ | sed -e 's/.tmp//'`; \ --- -1.9.1 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/Makefiles-Add-more-XDR_CFLAGS-as-needed.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/Makefiles-Add-more-XDR_CFLAGS-as-needed.patch deleted file mode 100644 index 826cdd0a6..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/Makefiles-Add-more-XDR_CFLAGS-as-needed.patch +++ /dev/null @@ -1,62 +0,0 @@ -From dcfc263db9e69e5381cb511c51836271dec577a3 Mon Sep 17 00:00:00 2001 -From: Mark Asselstine <mark.asselstine@windriver.com> -Date: Thu, 10 May 2018 13:27:47 -0400 -Subject: [PATCH] Makefiles: Add more $XDR_CFLAGS as needed - -When building with libtirpc instead of libc-xdr the include search -path needs to be used. In several places this was missing and it was -only looking in /usr/include and failing. - -Upstream-Status: Inappropriate [old release] - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> ---- - src/Makefile.am | 5 +++-- - tests/Makefile.am | 1 + - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index e9ce941..38114b7 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1157,7 +1157,7 @@ libvirt_la_BUILT_LIBADD += libvirt_driver.la - libvirt_driver_la_SOURCES = $(DRIVER_SOURCES) - - libvirt_driver_la_CFLAGS = \ -- $(GNUTLS_CFLAGS) $(CURL_CFLAGS) \ -+ $(GNUTLS_CFLAGS) $(CURL_CFLAGS) $(XDR_CFLAGS) \ - -I$(srcdir)/conf $(AM_CFLAGS) - libvirt_driver_la_LIBADD = \ - $(GNUTLS_LIBS) $(CURL_LIBS) $(DLOPEN_LIBS) -@@ -1348,6 +1348,7 @@ endif ! WITH_DRIVER_MODULES - - libvirt_driver_qemu_impl_la_CFLAGS = \ - $(GNUTLS_CFLAGS) \ -+ $(XDR_CFLAGS) \ - $(LIBNL_CFLAGS) \ - -I$(srcdir)/access \ - -I$(srcdir)/conf \ -@@ -2306,7 +2307,7 @@ libvirt_lxc_la_LDFLAGS = \ - $(CYGWIN_EXTRA_LDFLAGS) \ - $(MINGW_EXTRA_LDFLAGS) \ - $(NULL) --libvirt_lxc_la_CFLAGS = $(AM_CFLAGS) -+libvirt_lxc_la_CFLAGS = $(AM_CFLAGS) $(XDR_CFLAGS) - libvirt_lxc_la_LIBADD = libvirt.la $(CYGWIN_EXTRA_LIBADD) - - # Since virt-login-shell will be setuid, we must do everything -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 2f8b9eb..aec9a3e 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -48,6 +48,7 @@ AM_CFLAGS = \ - $(APPARMOR_CFLAGS) \ - $(YAJL_CFLAGS) \ - $(COVERAGE_CFLAGS) \ -+ $(XDR_CFLAGS) \ - $(WARN_CFLAGS) - - AM_LDFLAGS = \ --- -2.7.4 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch deleted file mode 100644 index edbadb63e..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-1.3.5/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch +++ /dev/null @@ -1,36 +0,0 @@ -From f10477f0fe5e4b7487a4a41faa216d10cd2bc7c3 Mon Sep 17 00:00:00 2001 -From: Mark Asselstine <mark.asselstine@windriver.com> -Date: Thu, 10 May 2018 12:05:04 -0400 -Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot - -We want to avoid host contamination and use the sysroot as the base -directory for our search so add the '=' the the '-I' when searching -for libtirpc's rpc.h header. - -Upstream-Status: Inappropriate [old release] - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 5a6408c..6c19f6d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -705,10 +705,10 @@ if test x"$with_remote" = x"yes" || test x"$with_libvirtd" = x"yes"; then - dnl check for cygwin's variation in xdr function names - AC_CHECK_FUNCS([xdr_u_int64_t],[],[],[#include <rpc/xdr.h>]) - -- dnl Cygwin/recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h> -+ dnl Cygwin/recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h> - old_CFLAGS=$CFLAGS - AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [ -- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do -+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do - if test x"$add_CFLAGS" = xmissing; then - lv_cv_xdr_cflags=missing; break - fi --- -2.7.4 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-python.inc b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-python.inc deleted file mode 100644 index 15aa8044f..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt-python.inc +++ /dev/null @@ -1,55 +0,0 @@ -inherit pythonnative python-dir - -export STAGING_INCDIR -export STAGING_LIBDIR -export BUILD_SYS -export HOST_SYS - -RDEPENDS_${PN}-python += "python" -PACKAGECONFIG_${PN}-python[xen] = ",,,xen-python" - -PACKAGES += "${PN}-python-staticdev ${PN}-python-dev ${PN}-python-dbg ${PN}-python" - -FILES_${PN}-python-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-python-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" -FILES_${PN}-python-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/" -FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*" - -SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python" -SRC_URI += "file://libvirt_api_xml_path.patch;patchdir=../libvirt-python-${PV}" - -SRC_URI[libvirt_python.md5sum] = "4dbd7ef9ee9c4dea5887b5b31eb04529" -SRC_URI[libvirt_python.sha256sum] = "a0508a57637fd18a3584fb9d2322fb172f65708c9db16e0438a70eb0f36fa5c2" - -export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml" -export LIBVIRT_CFLAGS = "-I${S}/include" -export LIBVIRT_LIBS = "-L${B}/src/.libs -lvirt -ldl" -export LDFLAGS="-L${B}/src/.libs" - -LIBVIRT_INSTALL_ARGS = "--root=${D} \ - --prefix=${prefix} \ - --install-lib=${PYTHON_SITEPACKAGES_DIR} \ - --install-data=${datadir}" - -python __anonymous () { - pkgconfig = d.getVar('PACKAGECONFIG') - if ('python') in pkgconfig.split(): - d.setVar('LIBVIRT_PYTHON_ENABLE', '1') - else: - d.setVar('LIBVIRT_PYTHON_ENABLE', '0') -} - -do_compile_append() { - if [ "${LIBVIRT_PYTHON_ENABLE}" = "1" ]; then - cd ${WORKDIR}/${BPN}-python-${PV} && \ - ${STAGING_BINDIR_NATIVE}/python-native/python setup.py build - fi -} - -do_install_append() { - if [ "${LIBVIRT_PYTHON_ENABLE}" = "1" ]; then - cd ${WORKDIR}/${BPN}-python-${PV} && \ - ${STAGING_BINDIR_NATIVE}/python-native/python setup.py install \ - --install-lib=${D}/${PYTHON_SITEPACKAGES_DIR} ${LIBVIRT_INSTALL_ARGS} - fi -} diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-nsslinktest-also-build-virAtomic.h.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-nsslinktest-also-build-virAtomic.h.patch deleted file mode 100644 index 6ab1c4e5c..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-nsslinktest-also-build-virAtomic.h.patch +++ /dev/null @@ -1,40 +0,0 @@ -Upstream-Status: Submitted [http://www.redhat.com/archives/libvir-list/2016-August/msg00389.html] - -When build for architecture that don't use gcc atomic ops but pthread, -it fails to build for arm: - -| ../tools/nss/.libs/libnss_libvirt_impl.a(libvirt_nss_la-virobject.o): In function `virClassNew': -| /buildarea2/kkang/builds/qemuarm-Aug03/bitbake_build/tmp/work/armv5e-wrs-linux-gnueabi/libvirt/1.3.5-r0/build/src/../../libvirt-1.3.5/src/util/virobject.c:153: undefined reference to `virAtomicLock' -| ../tools/nss/.libs/libnss_libvirt_impl.a(libvirt_nss_la-virobject.o): In function `virObjectNew': -| /buildarea2/kkang/builds/qemuarm-Aug03/bitbake_build/tmp/work/armv5e-wrs-linux-gnueabi/libvirt/1.3.5-r0/build/src/../../libvirt-1.3.5/src/util/virobject.c:205: undefined reference to `virAtomicLock' -| ../tools/nss/.libs/libnss_libvirt_impl.a(libvirt_nss_la-virobject.o): In function `virObjectUnref': -| /buildarea2/kkang/builds/qemuarm-Aug03/bitbake_build/tmp/work/armv5e-wrs-linux-gnueabi/libvirt/1.3.5-r0/build/src/../../libvirt-1.3.5/src/util/virobject.c:277: undefined reference to `virAtomicLock' -| ../tools/nss/.libs/libnss_libvirt_impl.a(libvirt_nss_la-virobject.o): In function `virObjectRef': -| /buildarea2/kkang/builds/qemuarm-Aug03/bitbake_build/tmp/work/armv5e-wrs-linux-gnueabi/libvirt/1.3.5-r0/build/src/../../libvirt-1.3.5/src/util/virobject.c:298: undefined reference to `virAtomicLock' -| collect2: error: ld returned 1 exit status - -It is similar with: - -http://libvirt.org/git/?p=libvirt.git;a=commit;h=12dc729 - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- - src/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 12b66c2..6e55972 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -2989,6 +2989,8 @@ noinst_LTLIBRARIES += libvirt-nss.la - libvirt_nss_la_SOURCES = \ - util/viralloc.c \ - util/viralloc.h \ -+ util/viratomic.c \ -+ util/viratomic.h \ - util/virbitmap.c \ - util/virbitmap.h \ - util/virbuffer.c \ --- -2.9.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch deleted file mode 100644 index 217bdbc5b..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch +++ /dev/null @@ -1,28 +0,0 @@ -From ffc71da15c3da068f85d16617b6e0c0175fc0110 Mon Sep 17 00:00:00 2001 -From: He Zhe <zhe.he@windriver.com> -Date: Tue, 23 Aug 2016 02:28:47 -0400 -Subject: [PATCH] ptest: Remove Windows-1252 check from esxutilstest - -Currently we use iconv from glibc-locale and it does not support -Windows-1252 and we don't need support windows character encoding. - -Signed-off-by: He Zhe <zhe.he@windriver.com> ---- - tests/esxutilstest.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/tests/esxutilstest.c b/tests/esxutilstest.c -index 44bdc84..3223de3 100644 ---- a/tests/esxutilstest.c -+++ b/tests/esxutilstest.c -@@ -258,7 +258,6 @@ mymain(void) - DO_TEST(ParseDatastorePath); - DO_TEST(ConvertDateTimeToCalendarTime); - DO_TEST(EscapeDatastoreItem); -- DO_TEST(ConvertWindows1252ToUTF8); - - return result == 0 ? EXIT_SUCCESS : EXIT_FAILURE; - } --- -2.8.1 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-ptest-add-missing-test_helper-files.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-ptest-add-missing-test_helper-files.patch deleted file mode 100644 index b4f1e2730..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/0001-ptest-add-missing-test_helper-files.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e625a42caca492fe7d52b70bbbf83ae4d99cb15e Mon Sep 17 00:00:00 2001 -From: He Zhe <zhe.he@windriver.com> -Date: Tue, 23 Aug 2016 02:16:20 -0400 -Subject: [PATCH] ptest: add missing test_helper files - -Signed-off-by: He Zhe <zhe.he@windriver.com> ---- - tests/Makefile.am | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 1c85656..2f8b9eb 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1422,8 +1422,10 @@ install-ptest: - @(for file in $(PTESTS); do \ - if [ -f .libs/$$file ]; then \ - install .libs/$$file $(DEST_DIR)/tests; \ -- else \ -+ elif [ -f $(srcdir)/$$file ]; then \ - install $(srcdir)/$$file $(DEST_DIR)/tests; \ -+ else \ -+ install $(builddir)/$$file $(DEST_DIR)/tests; \ - fi; \ - done;) - @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;) --- -2.8.1 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/Revert-build-add-prefix-to-SYSTEMD_UNIT_DIR.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/Revert-build-add-prefix-to-SYSTEMD_UNIT_DIR.patch deleted file mode 100644 index 02ddf68eb..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/Revert-build-add-prefix-to-SYSTEMD_UNIT_DIR.patch +++ /dev/null @@ -1,70 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Update context for version 1.3.5. - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -From dd915e7f70e676aea93f750c75d16ce646e71e4b Mon Sep 17 00:00:00 2001 -From: Mark Asselstine <mark.asselstine@windriver.com> -Date: Wed, 9 Sep 2015 11:52:44 -0400 -Subject: [PATCH] Revert "build: add $(prefix) to SYSTEMD_UNIT_DIR" - -This reverts upstream commit 00e9d6071b2450659ce01bc984f64ecb5d7ba62d -with minor context changes to allow it to apply. - -Yocto based builds use /lib/systemd/system for systemd unit files and -since upstream has chosen to use a mechanism for setting -SYSTEMD_UNIT_DIR which is not flexible we have to resort to reverting -this upstream commit to avoid having ${prefix} added to the path. - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> -[ywei: rebased to libvirt-1.3.2] -Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com> ---- - daemon/Makefile.am | 2 +- - src/Makefile.am | 2 +- - tools/Makefile.am | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/daemon/Makefile.am b/daemon/Makefile.am -index 2dbe81b..41ea2db 100644 ---- a/daemon/Makefile.am -+++ b/daemon/Makefile.am -@@ -449,7 +449,7 @@ endif ! LIBVIRT_INIT_SCRIPT_UPSTART - - if LIBVIRT_INIT_SCRIPT_SYSTEMD - --SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system -+SYSTEMD_UNIT_DIR = /lib/systemd/system - BUILT_SOURCES += libvirtd.service - - install-init-systemd: install-sysconfig libvirtd.service -diff --git a/src/Makefile.am b/src/Makefile.am -index a316b4d..d271291 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -2633,7 +2633,7 @@ EXTRA_DIST += \ - if WITH_LIBVIRTD - if LIBVIRT_INIT_SCRIPT_SYSTEMD - --SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system -+SYSTEMD_UNIT_DIR = /lib/systemd/system - - BUILT_SOURCES += virtlockd.service virtlockd.socket \ - virtlogd.service virtlogd.socket -diff --git a/tools/Makefile.am b/tools/Makefile.am -index b3227a7..0e58f73 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -380,7 +380,7 @@ libvirt-guests.init: libvirt-guests.init.in libvirt-guests.sh - - - EXTRA_DIST += libvirt-guests.service.in --SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system -+SYSTEMD_UNIT_DIR = /lib/systemd/system - - if LIBVIRT_INIT_SCRIPT_SYSTEMD - install-systemd: libvirt-guests.service install-sysconfig libvirt-guests.sh --- -1.9.1 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/dnsmasq.conf b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/dnsmasq.conf deleted file mode 100644 index a7c305986..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/dnsmasq.conf +++ /dev/null @@ -1,2 +0,0 @@ -bind-interfaces -except-interface=virbr0 diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/install-missing-file.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/install-missing-file.patch deleted file mode 100644 index ecd4a87ba..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/install-missing-file.patch +++ /dev/null @@ -1,52 +0,0 @@ -Upstream-Status: Inapproriate - -This patch is for ptest, so it is inapproriate to send to upstream. - -Update context for 1.3.5. - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -From 0780181a3285511f166487a54ebc231fc657edfe Mon Sep 17 00:00:00 2001 -From: Catalin Enache <catalin.enache@windriver.com> -Date: Mon, 25 Jul 2016 16:38:51 +0300 -Subject: [PATCH] Install missing conf file - -openvzutilstest.conf file is needed by openvzutilstest test. - -Signed-off-by: Catalin Enache <catalin.enache@windriver.com> ---- - tests/Makefile.am | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 02e0dd8..187fbca 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -170,6 +170,7 @@ EXTRA_DIST = \ - xml2vmxdata - - test_helpers = commandhelper ssh virconftest -+test_misc = - test_programs = virshtest sockettest \ - nodeinfotest virbuftest \ - commandtest seclabeltest \ -@@ -259,6 +260,7 @@ endif WITH_LXC - - if WITH_OPENVZ - test_programs += openvzutilstest -+test_misc += openvzutilstest.conf - endif WITH_OPENVZ - - if WITH_ESX -@@ -1293,7 +1295,7 @@ endif ! WITH_CIL - - buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers) - --PTESTS = $(TESTS) $(test_helpers) test-lib.sh schematestutils.sh -+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh schematestutils.sh - - install-ptest: - list='$(TESTS) $(test_helpers) test-lib.sh schematestutils.sh' --- -2.7.4 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch deleted file mode 100644 index 558d5ef65..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch +++ /dev/null @@ -1,63 +0,0 @@ -From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001 -From: Bogdan Purcareata <bogdan.purcareata@freescale.com> -Date: Fri, 24 May 2013 16:46:00 +0300 -Subject: [PATCH] Fix thread safety in LXC callback handling - -Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com> ---- - src/lxc/lxc_process.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c -index aaa81a7..0eadc67 100644 ---- a/src/lxc/lxc_process.c -+++ b/src/lxc/lxc_process.c -@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED - virLXCProtocolExitStatus status, - virDomainObjPtr vm) - { -+ virLXCDriverPtr driver = lxc_driver; - virLXCDomainObjPrivatePtr priv = vm->privateData; - -+ lxcDriverLock(driver); -+ virObjectLock(vm); -+ lxcDriverUnlock(driver); -+ - switch (status) { - case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN: - priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN; -@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED - } - VIR_DEBUG("Domain shutoff reason %d (from status %d)", - priv->stopReason, status); -+ -+ virObjectUnlock(vm); - } - - /* XXX a little evil */ -@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED - pid_t initpid, - virDomainObjPtr vm) - { -- virLXCDomainObjPrivatePtr priv = vm->privateData; -+ virLXCDriverPtr driver = lxc_driver; -+ virLXCDomainObjPrivatePtr priv; -+ -+ lxcDriverLock(driver); -+ virObjectLock(vm); -+ lxcDriverUnlock(driver); -+ -+ priv = vm->privateData; - priv->initpid = initpid; - virDomainAuditInit(vm, initpid); - - if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0) - VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name); -+ -+ virObjectUnlock(vm); - } - - static virLXCMonitorCallbacks monitorCallbacks = { --- -1.7.11.7 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch deleted file mode 100644 index 65b046eea..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 3e271f6db12ffe34843428ec2f0bca7a8fe3aa65 Mon Sep 17 00:00:00 2001 -From: Bruce Ashfield <bruce.ashfield@windriver.com> -Date: Wed, 8 Apr 2015 13:03:03 -0400 -Subject: [PATCH] libvirt: use pkg-config to locate libcap - -libvirt wants to use pcap-config to locate the exisence and location -of libpcap. oe-core stubs this script and replaces it with pkg-config, -which can lead to the host pcap-config triggering and either breaking -the build or introducing host contamination. - -To fix this issue, we patch configure to use 'pkg-config libcap' to -locate the correct libraries. - -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ---- - configure.ac | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f37047599b76..5f9b84363b96 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1553,7 +1553,7 @@ fi - AM_CONDITIONAL([HAVE_NUMAD], [test "$with_numad" != "no"]) - - dnl pcap lib --LIBPCAP_CONFIG="pcap-config" -+LIBPCAP_CONFIG="pkg-config libpcap" - LIBPCAP_CFLAGS="" - LIBPCAP_LIBS="" - LIBPCAP_FOUND="no" -@@ -1563,8 +1563,8 @@ AC_ARG_WITH([libpcap], [AS_HELP_STRING([--with-libpcap=@<:@PFX@:>@], - if test "$with_qemu" = "yes"; then - case $with_libpcap in - no) LIBPCAP_CONFIG= ;; -- ''|yes) LIBPCAP_CONFIG="pcap-config" ;; -- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;; -+ ''|yes) LIBPCAP_CONFIG="pkg-config libpcap" ;; -+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;; - esac - AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [ - AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED ) --- -2.1.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt_api_xml_path.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt_api_xml_path.patch deleted file mode 100644 index 3c2622c72..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirt_api_xml_path.patch +++ /dev/null @@ -1,85 +0,0 @@ -Adding support for LIBVIRT_CFLAGS and LIBVIRT_LIBS - -Signed-off-by: Amy Fong <amy.fong@windriver.com> - - -Adding a support for LIBVIRT_API_PATH evironment variable, which can -control where the script should look for the 'libvirt-api.xml' file. -This allows building libvirt-python against different libvirt than the -one installed in the system. This may be used for example in autotest -or by packagers without the need to install libvirt into the system. - -Signed-off-by: Martin Kletzander <mkletzan redhat com> -[ywei: rebased to 1.3.2] -Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com> ---- - setup.py | 25 ++++++++++++++++++++++--- - 1 file changed, 22 insertions(+), 3 deletions(-) - -Index: libvirt-python-1.2.4/setup.py -=================================================================== ---- libvirt-python-1.2.4.orig/setup.py -+++ libvirt-python-1.2.4/setup.py -@@ -40,13 +40,7 @@ - "libvirt"]) - - def have_libvirt_lxc(): -- try: -- spawn([get_pkgcfg(), -- "--atleast-version=%s" % MIN_LIBVIRT_LXC, -- "libvirt"]) -- return True -- except DistutilsExecError: -- return False -+ return True - - def get_pkgconfig_data(args, mod, required=True): - """Run pkg-config to and return content associated with it""" -@@ -68,7 +62,17 @@ - """Check with pkg-config that libvirt is present and extract - the API XML file paths we need from it""" - -- libvirt_api = get_pkgconfig_data(["--variable", "libvirt_api"], "libvirt") -+ libvirt_api = os.getenv("LIBVIRT_API_PATH") -+ -+ if libvirt_api: -+ if not libvirt_api.endswith("-api.xml"): -+ raise ValueError("Invalid path '%s' for API XML" % libvirt_api) -+ if not os.path.exists(libvirt_api): -+ raise ValueError("API XML '%s' does not exist, " -+ "have you built libvirt?" % libvirt_api) -+ else: -+ libvirt_api = get_pkgconfig_data(["--variable", "libvirt_api"], -+ "libvirt") - - offset = libvirt_api.index("-api.xml") - libvirt_qemu_api = libvirt_api[0:offset] + "-qemu-api.xml" -@@ -88,8 +92,17 @@ - - c_modules = [] - py_modules = [] -- ldflags = get_pkgconfig_data(["--libs-only-L"], "libvirt", False).split() -- cflags = get_pkgconfig_data(["--cflags"], "libvirt", False).split() -+ libvirt_cflags = os.getenv("LIBVIRT_CFLAGS") -+ if libvirt_cflags: -+ cflags = libvirt_cflags.split() -+ else: -+ cflags = get_pkgconfig_data(["--cflags"], "libvirt", False).split() -+ -+ libvirt_libs = os.getenv("LIBVIRT_LIBS") -+ if libvirt_libs: -+ ldflags = libvirt_libs.split() -+ else: -+ ldflags = get_pkgconfig_data(["--libs-only-L"], "libvirt", False).split() - - module = Extension('libvirtmod', - sources = ['libvirt-override.c', 'build/libvirt.c', 'typewrappers.c', 'libvirt-utils.c'], -@@ -138,7 +151,7 @@ - class my_build(build): - - def run(self): -- check_minimum_libvirt_version() -+# check_minimum_libvirt_version() - apis = get_api_xml_files() - - self.spawn([sys.executable, "generator.py", "libvirt", apis[0]]) diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirtd.conf b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirtd.conf deleted file mode 100644 index c0462b47b..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirtd.conf +++ /dev/null @@ -1,393 +0,0 @@ -# Master libvirt daemon configuration file -# -# For further information consult http://libvirt.org/format.html -# -# NOTE: the tests/daemon-conf regression test script requires -# that each "PARAMETER = VALUE" line in this file have the parameter -# name just after a leading "#". - -################################################################# -# -# Network connectivity controls -# - -# Flag listening for secure TLS connections on the public TCP/IP port. -# NB, must pass the --listen flag to the libvirtd process for this to -# have any effect. -# -# It is necessary to setup a CA and issue server certificates before -# using this capability. -# -# This is enabled by default, uncomment this to disable it -listen_tls = 0 - -# Listen for unencrypted TCP connections on the public TCP/IP port. -# NB, must pass the --listen flag to the libvirtd process for this to -# have any effect. -# -# Using the TCP socket requires SASL authentication by default. Only -# SASL mechanisms which support data encryption are allowed. This is -# DIGEST_MD5 and GSSAPI (Kerberos5) -# -# This is disabled by default, uncomment this to enable it. -listen_tcp = 1 - - - -# Override the port for accepting secure TLS connections -# This can be a port number, or service name -# -#tls_port = "16514" - -# Override the port for accepting insecure TCP connections -# This can be a port number, or service name -# -#tcp_port = "16509" - - -# Override the default configuration which binds to all network -# interfaces. This can be a numeric IPv4/6 address, or hostname -# -#listen_addr = "192.168.0.1" - - -# Flag toggling mDNS advertizement of the libvirt service. -# -# Alternatively can disable for all services on a host by -# stopping the Avahi daemon -# -# This is enabled by default, uncomment this to disable it -#mdns_adv = 0 - -# Override the default mDNS advertizement name. This must be -# unique on the immediate broadcast network. -# -# The default is "Virtualization Host HOSTNAME", where HOSTNAME -# is subsituted for the short hostname of the machine (without domain) -# -#mdns_name = "Virtualization Host Joe Demo" - - -################################################################# -# -# UNIX socket access controls -# - -# Set the UNIX domain socket group ownership. This can be used to -# allow a 'trusted' set of users access to management capabilities -# without becoming root. -# -# This is restricted to 'root' by default. -#unix_sock_group = "libvirt" - -# Set the UNIX socket permissions for the R/O socket. This is used -# for monitoring VM status only -# -# Default allows any user. If setting group ownership may want to -# restrict this to: -#unix_sock_ro_perms = "0777" - -# Set the UNIX socket permissions for the R/W socket. This is used -# for full management of VMs -# -# Default allows only root. If PolicyKit is enabled on the socket, -# the default will change to allow everyone (eg, 0777) -# -# If not using PolicyKit and setting group ownership for access -# control then you may want to relax this to: -#unix_sock_rw_perms = "0770" - -# Set the name of the directory in which sockets will be found/created. -#unix_sock_dir = "/var/run/libvirt" - -################################################################# -# -# Authentication. -# -# - none: do not perform auth checks. If you can connect to the -# socket you are allowed. This is suitable if there are -# restrictions on connecting to the socket (eg, UNIX -# socket permissions), or if there is a lower layer in -# the network providing auth (eg, TLS/x509 certificates) -# -# - sasl: use SASL infrastructure. The actual auth scheme is then -# controlled from /etc/sasl2/libvirt.conf. For the TCP -# socket only GSSAPI & DIGEST-MD5 mechanisms will be used. -# For non-TCP or TLS sockets, any scheme is allowed. -# -# - polkit: use PolicyKit to authenticate. This is only suitable -# for use on the UNIX sockets. The default policy will -# require a user to supply their own password to gain -# full read/write access (aka sudo like), while anyone -# is allowed read/only access. -# -# Set an authentication scheme for UNIX read-only sockets -# By default socket permissions allow anyone to connect -# -# To restrict monitoring of domains you may wish to enable -# an authentication mechanism here -#auth_unix_ro = "none" - -# Set an authentication scheme for UNIX read-write sockets -# By default socket permissions only allow root. If PolicyKit -# support was compiled into libvirt, the default will be to -# use 'polkit' auth. -# -# If the unix_sock_rw_perms are changed you may wish to enable -# an authentication mechanism here -#auth_unix_rw = "none" - -# Change the authentication scheme for TCP sockets. -# -# If you don't enable SASL, then all TCP traffic is cleartext. -# Don't do this outside of a dev/test scenario. For real world -# use, always enable SASL and use the GSSAPI or DIGEST-MD5 -# mechanism in /etc/sasl2/libvirt.conf -#auth_tcp = "sasl" - -# Change the authentication scheme for TLS sockets. -# -# TLS sockets already have encryption provided by the TLS -# layer, and limited authentication is done by certificates -# -# It is possible to make use of any SASL authentication -# mechanism as well, by using 'sasl' for this option -#auth_tls = "none" - - - -################################################################# -# -# TLS x509 certificate configuration -# - - -# Override the default server key file path -# -#key_file = "/etc/pki/libvirt/private/serverkey.pem" - -# Override the default server certificate file path -# -#cert_file = "/etc/pki/libvirt/servercert.pem" - -# Override the default CA certificate path -# -#ca_file = "/etc/pki/CA/cacert.pem" - -# Specify a certificate revocation list. -# -# Defaults to not using a CRL, uncomment to enable it -#crl_file = "/etc/pki/CA/crl.pem" - - - -################################################################# -# -# Authorization controls -# - - -# Flag to disable verification of our own server certificates -# -# When libvirtd starts it performs some sanity checks against -# its own certificates. -# -# Default is to always run sanity checks. Uncommenting this -# will disable sanity checks which is not a good idea -#tls_no_sanity_certificate = 1 - -# Flag to disable verification of client certificates -# -# Client certificate verification is the primary authentication mechanism. -# Any client which does not present a certificate signed by the CA -# will be rejected. -# -# Default is to always verify. Uncommenting this will disable -# verification - make sure an IP whitelist is set -#tls_no_verify_certificate = 1 - - -# A whitelist of allowed x509 Distinguished Names -# This list may contain wildcards such as -# -# "C=GB,ST=London,L=London,O=Red Hat,CN=*" -# -# See the POSIX fnmatch function for the format of the wildcards. -# -# NB If this is an empty list, no client can connect, so comment out -# entirely rather than using empty list to disable these checks -# -# By default, no DN's are checked -#tls_allowed_dn_list = ["DN1", "DN2"] - - -# A whitelist of allowed SASL usernames. The format for usernames -# depends on the SASL authentication mechanism. Kerberos usernames -# look like username@REALM -# -# This list may contain wildcards such as -# -# "*@EXAMPLE.COM" -# -# See the POSIX fnmatch function for the format of the wildcards. -# -# NB If this is an empty list, no client can connect, so comment out -# entirely rather than using empty list to disable these checks -# -# By default, no Username's are checked -#sasl_allowed_username_list = ["joe@EXAMPLE.COM", "fred@EXAMPLE.COM" ] - - - -################################################################# -# -# Processing controls -# - -# The maximum number of concurrent client connections to allow -# over all sockets combined. -#max_clients = 20 - - -# The minimum limit sets the number of workers to start up -# initially. If the number of active clients exceeds this, -# then more threads are spawned, upto max_workers limit. -# Typically you'd want max_workers to equal maximum number -# of clients allowed -#min_workers = 5 -#max_workers = 20 - - -# The number of priority workers. If all workers from above -# pool will stuck, some calls marked as high priority -# (notably domainDestroy) can be executed in this pool. -#prio_workers = 5 - -# Total global limit on concurrent RPC calls. Should be -# at least as large as max_workers. Beyond this, RPC requests -# will be read into memory and queued. This directly impact -# memory usage, currently each request requires 256 KB of -# memory. So by default upto 5 MB of memory is used -# -# XXX this isn't actually enforced yet, only the per-client -# limit is used so far -#max_requests = 20 - -# Limit on concurrent requests from a single client -# connection. To avoid one client monopolizing the server -# this should be a small fraction of the global max_requests -# and max_workers parameter -#max_client_requests = 5 - -################################################################# -# -# Logging controls -# - -# Logging level: 4 errors, 3 warnings, 2 information, 1 debug -# basically 1 will log everything possible -#log_level = 3 - -# Logging filters: -# A filter allows to select a different logging level for a given category -# of logs -# The format for a filter is: -# x:name -# where name is a match string e.g. remote or qemu -# the x prefix is the minimal level where matching messages should be logged -# 1: DEBUG -# 2: INFO -# 3: WARNING -# 4: ERROR -# -# Multiple filter can be defined in a single @filters, they just need to be -# separated by spaces. -# -# e.g: -# log_filters="3:remote 4:event" -# to only get warning or errors from the remote layer and only errors from -# the event layer. - -# Logging outputs: -# An output is one of the places to save logging information -# The format for an output can be: -# x:stderr -# output goes to stderr -# x:syslog:name -# use syslog for the output and use the given name as the ident -# x:file:file_path -# output to a file, with the given filepath -# In all case the x prefix is the minimal level, acting as a filter -# 1: DEBUG -# 2: INFO -# 3: WARNING -# 4: ERROR -# -# Multiple output can be defined, they just need to be separated by spaces. -# e.g.: -# log_outputs="3:syslog:libvirtd" -# to log all warnings and errors to syslog under the libvirtd ident - -# Log debug buffer size: default 64 -# The daemon keeps an internal debug log buffer which will be dumped in case -# of crash or upon receiving a SIGUSR2 signal. This setting allows to override -# the default buffer size in kilobytes. -# If value is 0 or less the debug log buffer is deactivated -#log_buffer_size = 64 - - -################################################################## -# -# Auditing -# -# This setting allows usage of the auditing subsystem to be altered: -# -# audit_level == 0 -> disable all auditing -# audit_level == 1 -> enable auditing, only if enabled on host (default) -# audit_level == 2 -> enable auditing, and exit if disabled on host -# -#audit_level = 2 -# -# If set to 1, then audit messages will also be sent -# via libvirt logging infrastructure. Defaults to 0 -# -#audit_logging = 1 - -################################################################### -# UUID of the host: -# Provide the UUID of the host here in case the command -# 'dmidecode -s system-uuid' does not provide a valid uuid. In case -# 'dmidecode' does not provide a valid UUID and none is provided here, a -# temporary UUID will be generated. -# Keep the format of the example UUID below. UUID must not have all digits -# be the same. - -# NB This default all-zeros UUID will not work. Replace -# it with the output of the 'uuidgen' command and then -# uncomment this entry -#host_uuid = "00000000-0000-0000-0000-000000000000" - -################################################################### -# Keepalive protocol: -# This allows libvirtd to detect broken client connections or even -# dead client. A keepalive message is sent to a client after -# keepalive_interval seconds of inactivity to check if the client is -# still responding; keepalive_count is a maximum number of keepalive -# messages that are allowed to be sent to the client without getting -# any response before the connection is considered broken. In other -# words, the connection is automatically closed approximately after -# keepalive_interval * (keepalive_count + 1) seconds since the last -# message received from the client. If keepalive_interval is set to -# -1, libvirtd will never send keepalive requests; however clients -# can still send them and the deamon will send responses. When -# keepalive_count is set to 0, connections will be automatically -# closed after keepalive_interval seconds of inactivity without -# sending any keepalive messages. -# -#keepalive_interval = 5 -#keepalive_count = 5 -# -# If set to 1, libvirtd will refuse to talk to clients that do not -# support keepalive protocol. Defaults to 0. -# -#keepalive_required = 1 diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirtd.sh b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirtd.sh deleted file mode 100755 index 29dbf3917..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/libvirtd.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: libvirtd -# Required-Start: $local_fs $network dbus -# Required-Stop: $local_fs $network dbus -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -### END INIT INFO - -if [ -f /lib/lsb/init-functions ] -then - . /lib/lsb/init-functions -else - # int log_begin_message (char *message) - log_begin_msg () { - if [ -z "$1" ]; then - return 1 - fi - echo " * $@" - } - - # int log_end_message (int exitstatus) - log_end_msg () { - - # If no arguments were passed, return - [ -z "$1" ] && return 1 - - # Only do the fancy stuff if we have an appropriate terminal - # and if /usr is already mounted - TPUT=/usr/bin/tput - EXPR=/usr/bin/expr - if [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1; then - COLS=`$TPUT cols` - if [ -n "$COLS" ]; then - COL=`$EXPR $COLS - 7` - else - COL=73 - fi - UP=`$TPUT cuu1` - END=`$TPUT hpa $COL` - START=`$TPUT hpa 0` - RED=`$TPUT setaf 1` - NORMAL=`$TPUT op` - if [ $1 -eq 0 ]; then - echo "$UP$END[ ok ]" - else - echo -e "$UP$START $RED*$NORMAL$END[${RED}fail${NORMAL}]" - fi - else - if [ $1 -eq 0 ]; then - echo " ...done." - else - echo " ...fail!" - fi - fi - return $1 - } - - log_warning_msg () { - if log_use_fancy_output; then - YELLOW=`$TPUT setaf 3` - NORMAL=`$TPUT op` - echo "$YELLOW*$NORMAL $@" - else - echo "$@" - fi - } - -fi - -case "$1" in - start) - if [ -e /var/run/libvirtd.pid ]; then - if [ -d /proc/$(cat /var/run/libvirtd.pid) ]; then - echo "virtualization library already started; not starting." - else - echo "Removing stale PID file /var/run/libvirtd.pid." - rm -f /var/run/libvirtd.pid - fi - fi - log_begin_msg "Starting virtualization library daemon: libvirtd" - if [ ! -e /var/run/libvirtd.pid ]; then - start-stop-daemon -K -x /usr/bin/dnsmasq --pidfile /var/run/libvirt/network/default.pid - fi - start-stop-daemon --start --quiet --pidfile /var/run/libvirtd.pid --exec /usr/sbin/libvirtd -- --daemon --listen - log_end_msg $? - ;; - stop) - log_begin_msg "Stopping virtualization library daemon: libvirtd" - start-stop-daemon --stop --quiet --retry 3 --exec /usr/sbin/libvirtd --pidfile /var/run/libvirtd.pid - log_end_msg $? - rm -f /var/run/libvirtd.pid - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; -esac diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch deleted file mode 100644 index 3cf9e8392..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com> -Date: Thu, 11 Apr 2013 11:37:25 +0200 -Subject: [PATCH] qemu: fix crash in qemuOpen - -commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam -git://libvirt.org/libvirt.git - -If the path part of connection URI is not present, cfg is used -unitialized. - -https://bugzilla.redhat.com/show_bug.cgi?id=950855 ---- - src/qemu/qemu_driver.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c -index 2c0d7d1..0d41e39 100644 ---- a/src/qemu/qemu_driver.c -+++ b/src/qemu/qemu_driver.c -@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn, - goto cleanup; - } - -+ cfg = virQEMUDriverGetConfig(qemu_driver); - if (conn->uri->path == NULL) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("no QEMU URI path given, try %s"), -@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn, - goto cleanup; - } - -- cfg = virQEMUDriverGetConfig(qemu_driver); - if (cfg->privileged) { - if (STRNEQ(conn->uri->path, "/system") && - STRNEQ(conn->uri->path, "/session")) { --- -1.7.1 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/run-ptest b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/run-ptest deleted file mode 100644 index a434b186f..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/run-ptest +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -make -C tests -k check-TESTS diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/runptest.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/runptest.patch deleted file mode 100644 index b7609a81a..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/runptest.patch +++ /dev/null @@ -1,117 +0,0 @@ -Update context for 1.3.5. - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -Add 'install-ptest' rule. -Change TESTS_ENVIRONMENT to allow running outside build dir. - -Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com> -Upstream-status: Pending ---- -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 0c4ad3c..bb4e31a 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -33,11 +33,13 @@ INCLUDES = \ - -I$(top_srcdir)/src/conf \ - $(GETTEXT_CPPFLAGS) - -+PTEST_DIR ?= $(libdir)/libvirt/ptest -+ - AM_CFLAGS = \ -- -Dabs_builddir="\"$(abs_builddir)\"" \ -- -Dabs_topbuilddir="\"$(abs_topbuilddir)\"" \ -- -Dabs_srcdir="\"$(abs_srcdir)\"" \ -- -Dabs_topsrcdir="\"$(abs_topsrcdir)\"" \ -+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \ -+ -Dabs_topbuilddir="\"$(PTEST_DIR)\"" \ -+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \ -+ -Dabs_topsrcdir="\"$(PTEST_DIR)\"" \ - $(LIBXML_CFLAGS) \ - $(LIBNL_CFLAGS) \ - $(GNUTLS_CFLAGS) \ -@@ -62,7 +64,7 @@ QEMULIB_LDFLAGS = \ - - if WITH_DRIVER_MODULES - INCLUDES += \ -- -DTEST_DRIVER_DIR=\"$(top_builddir)/src/.libs\" -+ -DTEST_DRIVER_DIR=\"$(PTEST_DIR)/src/.libs\" - endif WITH_DRIVER_MODULES - - PROBES_O = -@@ -483,17 +485,15 @@ TESTS = $(test_programs) \ - # Also, BSD sh doesn't like 'a=b b=$$a', so we can't use an - # intermediate shell variable, but must do all the expansion in make - --lv_abs_top_builddir=$(shell cd '$(top_builddir)' && pwd) -- - VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT) - TESTS_ENVIRONMENT = \ -- abs_top_builddir=$(lv_abs_top_builddir) \ -- abs_top_srcdir=`cd '$(top_srcdir)'; pwd` \ -- abs_builddir=$(abs_builddir) \ -- abs_srcdir=$(abs_srcdir) \ -- CONFIG_HEADER="$(lv_abs_top_builddir)/config.h" \ -+ abs_top_builddir="$(PTEST_DIR)" \ -+ abs_top_srcdir="$(PTEST_DIR)" \ -+ abs_builddir="$(PTEST_DIR)/tests" \ -+ abs_srcdir="$(PTEST_DIR)/tests" \ -+ CONFIG_HEADER="$(PTEST_DIR)/config.h" \ - SHELL="$(SHELL)" \ -- LIBVIRT_DRIVER_DIR="$(lv_abs_top_builddir)/src/.libs" \ -+ LIBVIRT_DRIVER_DIR="$(PTEST_DIR)/src/.libs" \ - LIBVIRT_AUTOSTART=0 \ - LC_ALL=C \ - VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \ -@@ -1388,5 +1388,51 @@ else ! WITH_CIL - EXTRA_DIST += objectlocking.ml - endif ! WITH_CIL - -+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers) -+ -+PTESTS = $(TESTS) $(test_helpers) test-lib.sh schematestutils.sh -+ -+install-ptest: -+ list='$(TESTS) $(test_helpers) test-lib.sh schematestutils.sh' -+ install -d $(DEST_DIR)/tools -+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \ -+ install * $(DEST_DIR)/tools) -+ install -d $(DEST_DIR)/src/network -+ cp ../src/network/*.xml $(DEST_DIR)/src/network -+ install -d $(DEST_DIR)/src/cpu -+ cp ../src/cpu/*.xml $(DEST_DIR)/src/cpu -+ install ../src/libvirt_iohelper $(DEST_DIR)/src -+ install -D ../daemon/libvirtd $(DEST_DIR)/daemon/libvirtd -+ install -D ../daemon/libvirtd.conf $(DEST_DIR)/daemon/libvirtd.conf -+ @(if [ -d ../daemon/.libs ] ; then cd ../daemon/.libs; fi; \ -+ install * $(DEST_DIR)/daemon) -+ install -d $(DEST_DIR)/src/.libs -+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \ -+ install * $(DEST_DIR)/src/.libs) -+ install -d $(DEST_DIR)/docs/schemas -+ cp ../docs/schemas/*.rng $(DEST_DIR)/docs/schemas -+ cp -r ../build-aux $(DEST_DIR) -+ install -d $(DEST_DIR)/examples/xml -+ cp -r ../examples/xml/test $(DEST_DIR)/examples/xml -+ install -d $(DEST_DIR)/tests/.libs -+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \; -+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \; -+ @(for file in $(PTESTS); do \ -+ if [ -f .libs/$$file ]; then \ -+ install .libs/$$file $(DEST_DIR)/tests; \ -+ else \ -+ install $$file $(DEST_DIR)/tests; \ -+ fi; \ -+ done;) -+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;) -+ cp ../config.h $(DEST_DIR) -+ cp Makefile $(DEST_DIR)/tests -+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile -+ cp ../Makefile $(DEST_DIR) -+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile -+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile -+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile -+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile -+ - CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda *.cmi *.cmx \ - objectlocking-files.txt diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/tests-allow-separated-src-and-build-dirs.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/tests-allow-separated-src-and-build-dirs.patch deleted file mode 100644 index 3964865bf..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/tests-allow-separated-src-and-build-dirs.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 884b6e3724b75cd92766d5386455983e3557a286 Mon Sep 17 00:00:00 2001 -From: Mark Asselstine <mark.asselstine@windriver.com> -Date: Fri, 2 May 2014 13:45:05 -0400 -Subject: [PATCH] tests: allow separated src and build dirs - -Fixup Makefile.am to search for static files back in srcdir. - -Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> ---- - tests/Makefile.am | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 0da514b..b8d7c19 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -1006,22 +1006,22 @@ install-ptest: - @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \ - install * $(DEST_DIR)/tools) - install -d $(DEST_DIR)/src/network -- cp ../src/network/*.xml $(DEST_DIR)/src/network -+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network - install -d $(DEST_DIR)/src/cpu -- cp ../src/cpu/*.xml $(DEST_DIR)/src/cpu -+ cp $(top_srcdir)/src/cpu/*.xml $(DEST_DIR)/src/cpu - install ../src/libvirt_iohelper $(DEST_DIR)/src - install -D ../daemon/libvirtd $(DEST_DIR)/daemon/libvirtd -- install -D ../daemon/libvirtd.conf $(DEST_DIR)/daemon/libvirtd.conf -+ install -D $(top_srcdir)/daemon/libvirtd.conf $(DEST_DIR)/daemon/libvirtd.conf - @(if [ -d ../daemon/.libs ] ; then cd ../daemon/.libs; fi; \ - install * $(DEST_DIR)/daemon) - install -d $(DEST_DIR)/src/.libs - @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \ - install * $(DEST_DIR)/src/.libs) - install -d $(DEST_DIR)/docs/schemas -- cp ../docs/schemas/*.rng $(DEST_DIR)/docs/schemas -- cp -r ../build-aux $(DEST_DIR) -+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas -+ cp -r $(top_srcdir)/build-aux $(DEST_DIR) - install -d $(DEST_DIR)/examples/xml -- cp -r ../examples/xml/test $(DEST_DIR)/examples/xml -+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml - install -d $(DEST_DIR)/tests/.libs - find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \; - find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \; -@@ -1029,7 +1029,7 @@ install-ptest: - if [ -f .libs/$$file ]; then \ - install .libs/$$file $(DEST_DIR)/tests; \ - else \ -- install $$file $(DEST_DIR)/tests; \ -+ install $(srcdir)/$$file $(DEST_DIR)/tests; \ - fi; \ - done;) - @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;) --- -1.8.3.2 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch deleted file mode 100644 index a7fc727b7..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch +++ /dev/null @@ -1,89 +0,0 @@ -From a790bfe8fa7b24b68cb6f9a1b7205fda2c6d558e Mon Sep 17 00:00:00 2001 -From: Bruce Ashfield <bruce.ashfield@windriver.com> -Date: Fri, 2 Aug 2013 11:38:43 -0400 -Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is - enabled - -When gnu-tls is enabled for libvirt references to virNetTLSInit are -generated in libvirt. Any binaries linking against libvirt, must also -link against libvirt-net-rpc which provides the implementation. - -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> -[ywei: rebased to libvirt-1.3.2] -Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com> ---- - examples/Makefile.am | 19 +++++++++++++++++++ - tools/Makefile.am | 13 +++++++++++++ - 2 files changed, 32 insertions(+) - -diff --git a/examples/Makefile.am b/examples/Makefile.am -index 2adcefb..fff49d4 100644 ---- a/examples/Makefile.am -+++ b/examples/Makefile.am -@@ -39,6 +39,10 @@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir) \ - LDADD = $(STATIC_BINARIES) $(WARN_CFLAGS) $(COVERAGE_LDFLAGS) \ - $(top_builddir)/src/libvirt.la $(top_builddir)/gnulib/lib/libgnu.la - -+if WITH_GNUTLS -+LDADD += $(top_builddir)/src/libvirt-net-rpc.la -+endif -+ - noinst_PROGRAMS=dominfo/info1 dommigrate/dommigrate domsuspend/suspend \ - domtop/domtop hellolibvirt/hellolibvirt object-events/event-test \ - openauth/openauth rename/rename -@@ -52,6 +56,21 @@ object_events_event_test_SOURCES = object-events/event-test.c - openauth_openauth_SOURCES = openauth/openauth.c - rename_rename_SOURCES = rename/rename.c - -+if WITH_GNUTLS -+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \ -+ $(LDADD) \ -+ $(NULL) -+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \ -+ $(LDADD) \ -+ $(NULL) -+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \ -+ $(LDADD) \ -+ $(NULL) -+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \ -+ $(LDADD) \ -+ $(NULL) -+endif -+ - if WITH_APPARMOR_PROFILES - apparmordir = $(sysconfdir)/apparmor.d/ - apparmor_DATA = \ -diff --git a/tools/Makefile.am b/tools/Makefile.am -index 0be3567..b3227a7 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -169,6 +169,13 @@ virt_host_validate_LDADD = \ - ../gnulib/lib/libgnu.la \ - $(NULL) - -+if WITH_GNUTLS -+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \ -+ ../gnulib/lib/libgnu.la \ -+ $(NULL) -+endif -+ -+ - virt_host_validate_CFLAGS = \ - $(LIBXML_CFLAGS) \ - $(WARN_CFLAGS) \ -@@ -256,6 +263,12 @@ virt_admin_CFLAGS = \ - $(READLINE_CFLAGS) - BUILT_SOURCES = - -+if WITH_GNUTLS -+virsh_LDADD += ../src/libvirt-net-rpc.la \ -+ ../gnulib/lib/libgnu.la \ -+ $(NULL) -+endif -+ - if WITH_WIN_ICON - virsh_LDADD += virsh_win_icon.$(OBJEXT) - --- -1.9.1 - diff --git a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt_1.3.5.bb b/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt_1.3.5.bb deleted file mode 100644 index 35fd577eb..000000000 --- a/import-layers/meta-virtualization/recipes-extended/libvirt/libvirt_1.3.5.bb +++ /dev/null @@ -1,313 +0,0 @@ -DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux." -HOMEPAGE = "http://libvirt.org" -LICENSE = "LGPLv2.1+ & GPLv2+" -LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d" -SECTION = "console/tools" - -DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux e2fsprogs pm-utils \ - iptables dnsmasq readline libtasn1 libxslt-native acl libdevmapper libtirpc \ - ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'shadow-native', '', d)}" - -# libvirt-guests.sh needs gettext.sh -# -RDEPENDS_${PN} = "gettext-runtime" - -RDEPENDS_${PN}-ptest += "make gawk perl" - -RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd" -RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode" -RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode" - -#connman blocks the 53 port and libvirtd can't start its DNS service -RCONFLICTS_${PN}_libvirtd = "connman" - -SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.gz;name=libvirt \ - file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \ - file://libvirtd.sh \ - file://libvirtd.conf \ - file://dnsmasq.conf \ - file://runptest.patch \ - file://run-ptest \ - file://tests-allow-separated-src-and-build-dirs.patch \ - file://libvirt-use-pkg-config-to-locate-libcap.patch \ - file://0001-to-fix-build-error.patch \ - file://Revert-build-add-prefix-to-SYSTEMD_UNIT_DIR.patch \ - file://install-missing-file.patch \ - file://0001-nsslinktest-also-build-virAtomic.h.patch \ - file://0001-qemu-Let-empty-default-VNC-password-work-as-document.patch \ - file://0001-ptest-add-missing-test_helper-files.patch \ - file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \ - file://0001-Added-configure-variable-for-placing-systemd-untis-l.patch \ - file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \ - file://Makefiles-Add-more-XDR_CFLAGS-as-needed.patch \ - " - -SRC_URI[libvirt.md5sum] = "f9dc1e63d559eca50ae0ee798a4c6c6d" -SRC_URI[libvirt.sha256sum] = "93a23c44eb431da46c9458f95a66e29c9b98e37515d44b6be09e75b35ec94ac8" - -inherit autotools gettext update-rc.d pkgconfig ptest systemd - -CACHED_CONFIGUREVARS += "\ -ac_cv_path_XMLLINT=/usr/bin/xmllint \ -ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \ -ac_cv_path_AUGPARSE=/usr/bin/augparse \ -ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \ -ac_cv_path_BRCTL=/usr/sbin/brctl \ -ac_cv_path_TC=/sbin/tc \ -ac_cv_path_UDEVADM=/sbin/udevadm \ -ac_cv_path_MODPROBE=/sbin/modprobe \ -ac_cv_path_IP_PATH=/bin/ip \ -ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \ -ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \ -ac_cv_path_MOUNT=/bin/mount \ -ac_cv_path_UMOUNT=/bin/umount \ -ac_cv_path_MKFS=/usr/sbin/mkfs \ -ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \ -ac_cv_path_PVCREATE=/usr/sbin/pvcreate \ -ac_cv_path_VGCREATE=/usr/sbin/vgcreate \ -ac_cv_path_LVCREATE=/usr/sbin/lvcreate \ -ac_cv_path_PVREMOVE=/usr/sbin/pvremove \ -ac_cv_path_VGREMOVE=/usr/sbin/vgremove \ -ac_cv_path_LVREMOVE=/usr/sbin/lvremove \ -ac_cv_path_LVCHANGE=/usr/sbin/lvchange \ -ac_cv_path_VGCHANGE=/usr/sbin/vgchange \ -ac_cv_path_VGSCAN=/usr/sbin/vgscan \ -ac_cv_path_PVS=/usr/sbin/pvs \ -ac_cv_path_VGS=/usr/sbin/vgs \ -ac_cv_path_LVS=/usr/sbin/lvs \ -ac_cv_path_PARTED=/usr/sbin/parted \ -ac_cv_path_DMSETUP=/usr/sbin/dmsetup" - -# Ensure that libvirt uses polkit rather than policykit, whether the host has -# pkcheck installed or not, and ensure the path is correct per our config. -CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck" - -# Some other possible paths we are not yet setting -#ac_cv_path_RPCGEN= -#ac_cv_path_XSLTPROC= -#ac_cv_path_RADVD= -#ac_cv_path_UDEVSETTLE= -#ac_cv_path_EBTABLES_PATH= -#ac_cv_path_PKG_CONFIG= -#ac_cv_path_ac_pt_PKG_CONFIG -#ac_cv_path_POLKIT_AUTH= -#ac_cv_path_DTRACE= -#ac_cv_path_ISCSIADM= -#ac_cv_path_MSGFMT= -#ac_cv_path_GMSGFMT= -#ac_cv_path_XGETTEXT= -#ac_cv_path_MSGMERGE= -#ac_cv_path_SCRUB= -#ac_cv_path_PYTHON= - -ALLOW_EMPTY_${PN} = "1" - -PACKAGES =+ "${PN}-libvirtd ${PN}-virsh" - -ALLOW_EMPTY_${PN}-libvirtd = "1" - -FILES_${PN}-libvirtd = " \ - ${sysconfdir}/init.d \ - ${sysconfdir}/sysctl.d \ - ${sysconfdir}/logrotate.d \ - ${sysconfdir}/libvirt/libvirtd.conf \ - /usr/lib/sysctl.d/60-libvirtd.conf \ - ${sbindir}/libvirtd \ - ${systemd_unitdir}/system/* \ - ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', '${libexecdir}/libvirt-guests.sh', d)} \ - " - -FILES_${PN}-virsh = "${bindir}/virsh" -FILES_${PN} += "${libdir}/libvirt/connection-driver \ - ${datadir}/augeas \ - ${@bb.utils.contains('PACKAGECONFIG', 'polkit', '${datadir}/polkit-1', '', d)} \ - " - -FILES_${PN}-dbg += "${libdir}/libvirt/connection-driver/.debug ${libdir}/libvirt/lock-driver/.debug" -FILES_${PN}-staticdev += "${libdir}/*.a ${libdir}/libvirt/connection-driver/*.a ${libdir}/libvirt/lock-driver/*.a" - -CONFFILES_${PN} += "${sysconfdir}/libvirt/libvirt.conf \ - ${sysconfdir}/libvirt/lxc.conf \ - ${sysconfdir}/libvirt/qemu-lockd.conf \ - ${sysconfdir}/libvirt/qemu.conf \ - ${sysconfdir}/libvirt/virt-login-shell.conf \ - ${sysconfdir}/libvirt/virtlockd.conf" - -CONFFILES_${PN}-libvirtd = "${sysconfdir}/logrotate.d/libvirt ${sysconfdir}/logrotate.d/libvirt.lxc \ - ${sysconfdir}/logrotate.d/libvirt.qemu ${sysconfdir}/logrotate.d/libvirt.uml \ - ${sysconfdir}/libvirt/libvirtd.conf \ - /usr/lib/sysctl.d/libvirtd.conf" - -INITSCRIPT_PACKAGES = "${PN}-libvirtd" -INITSCRIPT_NAME_${PN}-libvirtd = "libvirtd" -INITSCRIPT_PARAMS_${PN}-libvirtd = "defaults 72" - -SYSTEMD_PACKAGES = "${PN}-libvirtd" -SYSTEMD_SERVICE_${PN}-libvirtd = " \ - libvirtd.service \ - virtlockd.service \ - libvirt-guests.service \ - virtlockd.socket \ - " - - -PRIVATE_LIBS_${PN}-ptest = " \ - libvirt-lxc.so.0 \ - libvirt.so.0 \ - libvirt-qemu.so.0 \ - lockd.so \ - libvirt_driver_secret.so \ - libvirt_driver_nodedev.so \ - libvirt_driver_vbox.so \ - libvirt_driver_interface.so \ - libvirt_driver_uml.so \ - libvirt_driver_network.so \ - libvirt_driver_nwfilter.so \ - libvirt_driver_qemu.so \ - libvirt_driver_storage.so \ - libvirt_driver_lxc.so \ - " - -# xen-minimal config -#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd" - -# full config -PACKAGECONFIG ??= "qemu yajl uml openvz vmware vbox esx iproute2 lxc test \ - remote macvtap libvirtd netcf udev python ebtables \ - ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'xen libxl xen-inotify', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'polkit', '', d)} \ - " - -# enable,disable,depends,rdepends -# -PACKAGECONFIG[qemu] = "--with-qemu,--without-qemu,qemu," -PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl" -PACKAGECONFIG[xen] = "--with-xen,--without-xen,xen," -PACKAGECONFIG[xenapi] = "--with-xenapi,--without-xenapi,," -PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,libxl," -PACKAGECONFIG[xen-inotify] = "--with-xen-inotify,--without-xen-inotify,xen," -PACKAGECONFIG[uml] = "--with-uml, --without-uml,," -PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,," -PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,," -PACKAGECONFIG[phyp] = "--with-phyp,--without-phyp,," -PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,," -PACKAGECONFIG[esx] = "--with-esx,--without-esx,," -PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,," -PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit" -PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc," -PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,," -PACKAGECONFIG[remote] = "--with-remote,--without-remote,," -PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl" -PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,," -PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf" -PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,," -PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess," -PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux," -PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables" -PACKAGECONFIG[python] = ",,python," -PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl" -PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2" -PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl," -PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse," -PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit," -PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng," -PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil," - -# Enable the Python tool support -require libvirt-python.inc - -do_install_append() { - install -d ${D}/etc/init.d - install -d ${D}/etc/libvirt - install -d ${D}/etc/dnsmasq.d - - install -m 0755 ${WORKDIR}/libvirtd.sh ${D}/etc/init.d/libvirtd - install -m 0644 ${WORKDIR}/libvirtd.conf ${D}/etc/libvirt/libvirtd.conf - - if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then - # This will wind up in the libvirtd package, but will NOT be invoked by default. - # - mv ${D}/${libexecdir}/libvirt-guests.sh ${D}/${sysconfdir}/init.d - fi - - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - # This variable is used by libvirtd.service to start libvirtd in the right mode - sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd - - # We can't use 'notify' when we don't support 'sd_notify' dbus capabilities. - sed -i -e 's/Type=notify/Type=forking/' \ - -e '/Type=forking/a PIDFile=${localstatedir}/run/libvirtd.pid' \ - ${D}/${systemd_unitdir}/system/libvirtd.service - fi - - # The /var/run/libvirt directories created by the Makefile - # are wiped out in volatile, we need to create these at boot. - rm -rf ${D}${localstatedir}/run - install -d ${D}${sysconfdir}/default/volatiles - echo "d root root 0755 ${localstatedir}/run/libvirt none" \ - > ${D}${sysconfdir}/default/volatiles/99_libvirt - echo "d root root 0755 ${localstatedir}/run/libvirt/lockd none" \ - >> ${D}${sysconfdir}/default/volatiles/99_libvirt - echo "d root root 0755 ${localstatedir}/run/libvirt/lxc none" \ - >> ${D}${sysconfdir}/default/volatiles/99_libvirt - echo "d root root 0755 ${localstatedir}/run/libvirt/network none" \ - >> ${D}${sysconfdir}/default/volatiles/99_libvirt - echo "d root root 0755 ${localstatedir}/run/libvirt/qemu none" \ - >> ${D}${sysconfdir}/default/volatiles/99_libvirt - - # Manually set permissions and ownership to match polkit recipe - if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then - install -d -m 0700 ${D}/${datadir}/polkit-1/rules.d - chown polkitd ${D}/${datadir}/polkit-1/rules.d - chgrp root ${D}/${datadir}/polkit-1/rules.d - else - rm -rf ${D}/${datadir}/polkit-1 - fi - - # Add hook support for libvirt - mkdir -p ${D}/etc/libvirt/hooks - - # Force the main dnsmasq instance to bind only to specified interfaces and - # to not bind to virbr0. Libvirt will run its own instance on this interface. - install -m 644 ${WORKDIR}/dnsmasq.conf ${D}/${sysconfdir}/dnsmasq.d/libvirt-daemon - - # remove .la references to our working diretory - for i in `find ${D}${libdir} -type f -name *.la`; do - sed -i -e 's#-L${B}/src/.libs##g' $i - done -} - -EXTRA_OECONF += " \ - --with-init-script=systemd \ - " - -EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}" - -do_compile_ptest() { - oe_runmake -C tests buildtest-TESTS -} - -do_install_ptest() { - oe_runmake -C tests install-ptest - - find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \; - - # remove .la files for ptest, they aren't required and can trigger QA errors - for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do - rm -f $i - done -} - -pkg_postinst_libvirt() { - if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then - /etc/init.d/populate-volatile.sh update - fi -} - -python () { - if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): - d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") -} diff --git a/import-layers/meta-virtualization/recipes-extended/seabios/seabios/hostcc.patch b/import-layers/meta-virtualization/recipes-extended/seabios/seabios/hostcc.patch deleted file mode 100644 index f665e1a38..000000000 --- a/import-layers/meta-virtualization/recipes-extended/seabios/seabios/hostcc.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -ur a/Makefile b/Makefile ---- a/Makefile 2015-02-02 22:02:58.651041951 -0500 -+++ b/Makefile 2015-02-02 23:08:13.884514003 -0500 -@@ -8,7 +8,7 @@ - OUT=out/ - - # Common command definitions --export HOSTCC := $(CC) -+export HOSTCC ?= $(CC) - export CONFIG_SHELL := sh - export KCONFIG_AUTOHEADER := autoconf.h - export KCONFIG_CONFIG := $(CURDIR)/.config -@@ -22,7 +22,7 @@ - OBJDUMP=$(CROSS_PREFIX)objdump - STRIP=$(CROSS_PREFIX)strip - PYTHON=python --CPP=cpp -+CPP=$(CROSS_PREFIX)cpp - IASL:=iasl - LD32BIT_FLAG:=-melf_i386 - diff --git a/import-layers/meta-virtualization/recipes-extended/seabios/seabios_1.9.1.bb b/import-layers/meta-virtualization/recipes-extended/seabios/seabios_1.9.1.bb deleted file mode 100644 index 144b13c35..000000000 --- a/import-layers/meta-virtualization/recipes-extended/seabios/seabios_1.9.1.bb +++ /dev/null @@ -1,43 +0,0 @@ -DESCRIPTION = "SeaBIOS" -HOMEPAGE = "http://www.coreboot.org/SeaBIOS" -LICENSE = "LGPLv3" -SECTION = "firmware" - -SRC_URI = " \ - https://code.coreboot.org/p/seabios/downloads/get/${PN}-${PV}.tar.gz \ - file://hostcc.patch \ - " - -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6 \ - " - -SRC_URI[md5sum] = "e21b6f3e54d492be837ef20d66617f81" -SRC_URI[sha256sum] = "8a2a562fe5cfd37fe8327cdc4a60accdfe441e235b29e6999fdeb442ba98d608" - -FILES_${PN} = "/usr/share/firmware" - -DEPENDS = "util-linux-native file-native bison-native flex-native gettext-native iasl-native python-native" - -TUNE_CCARGS = "" -EXTRA_OEMAKE += "HOSTCC='${BUILD_CC}'" -EXTRA_OEMAKE += "CROSS_PREFIX=${TARGET_PREFIX}" - -COMPATIBLE_HOST = "(i.86|x86_64).*-linux" - -do_configure() { - oe_runmake defconfig -} - -do_compile() { - unset CPP - unset CPPFLAGS - oe_runmake -} - -do_install() { - oe_runmake - install -d ${D}/usr/share/firmware - install -m 0644 out/bios.bin ${D}/usr/share/firmware/ -} - diff --git a/import-layers/meta-virtualization/recipes-extended/vgabios/biossums_0.7a.bb b/import-layers/meta-virtualization/recipes-extended/vgabios/biossums_0.7a.bb deleted file mode 100644 index e66bade7f..000000000 --- a/import-layers/meta-virtualization/recipes-extended/vgabios/biossums_0.7a.bb +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION = "biossums tool for building Plex86/Bochs LGPL VGABios" -HOMEPAGE = "http://www.nongnu.org/vgabios/" -LICENSE = "LGPLv2.1" -SECTION = "firmware" - -LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" - -SRC_URI = "http://savannah.gnu.org/download/vgabios/vgabios-${PV}.tgz" - -SRC_URI[md5sum] = "2c0fe5c0ca08082a9293e3a7b23dc900" -SRC_URI[sha256sum] = "9d24c33d4bfb7831e2069cf3644936a53ef3de21d467872b54ce2ea30881b865" - -BBCLASSEXTEND = "native" - -FILES_${PN} = "${bindir}/biossums" - -S = "${WORKDIR}/vgabios-${PV}" - -do_configure() { - # Don't override the compiler or its flags: - sed 's,^CC,DISABLED_CC,' -i Makefile - sed 's,^CFLAGS,DISABLED_CFLAGS,' -i Makefile - sed 's,^LDFLAGS,DISABLED_LDFLAGS,' -i Makefile - # Supply the C flags to the compiler: - sed 's,-o biossums,$(CFLAGS) -o biossums,' -i Makefile -} - -do_compile() { - # clean removes binaries distributed with source - oe_runmake clean - oe_runmake biossums -} - -do_install() { - mkdir -p "${D}${bindir}" - install -m 0755 biossums "${D}${bindir}" -} diff --git a/import-layers/meta-virtualization/recipes-extended/vgabios/vgabios_0.7a.bb b/import-layers/meta-virtualization/recipes-extended/vgabios/vgabios_0.7a.bb deleted file mode 100644 index 3394173c8..000000000 --- a/import-layers/meta-virtualization/recipes-extended/vgabios/vgabios_0.7a.bb +++ /dev/null @@ -1,33 +0,0 @@ -DESCRIPTION = "Plex86/Bochs LGPL VGABios" -HOMEPAGE = "http://www.nongnu.org/vgabios/" -LICENSE = "LGPLv2.1" -SECTION = "firmware" - -DEPENDS = "dev86-native biossums-native" - -LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" - -SRC_URI = "http://savannah.gnu.org/download/vgabios/${BPN}-${PV}.tgz" - -SRC_URI[md5sum] = "2c0fe5c0ca08082a9293e3a7b23dc900" -SRC_URI[sha256sum] = "9d24c33d4bfb7831e2069cf3644936a53ef3de21d467872b54ce2ea30881b865" - -PR = "r0" - -FILES_${PN} = "/usr/share/firmware/${PN}-${PV}*.bin" -FILES_${PN}-dbg = "/usr/share/firmware/${PN}-${PV}*.debug.bin" - -S = "${WORKDIR}/${PN}-${PV}" - -do_configure() { - # Override to use the native-built biossums tool: - sed 's,./biossums,biossums,' -i Makefile - sed 's,$(CC) -o biossums biossums.c,touch biossums,' -i Makefile -} - -do_install() { - install -d ${D}/usr/share/firmware - install -m 0644 VGABIOS-lgpl-latest.bin ${D}/usr/share/firmware/${PN}-${PV}.bin - install -m 0644 VGABIOS-lgpl-latest.cirrus.bin ${D}/usr/share/firmware/${PN}-${PV}.cirrus.bin -} - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/README b/import-layers/meta-virtualization/recipes-extended/xen/README deleted file mode 100644 index 3686530cf..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/README +++ /dev/null @@ -1,24 +0,0 @@ -Xen ---- - -For any issues with the xen recipes please make sure you CC cardoe@gentoo.org - -configuring the hypervisor --------------------------- - -Since 4.7.0 Xen supports using Kconfig to configure the hypervisor. Similarly -to how the recipe for busybox works, you can provide a .config as a defconfig -to override the default configuration of the hypervisor. The easiest way -for you to take advantage of this is to create a .config for Xen and then -copy it to your Yocto layer as 'defconfig' inside of -'recipes-extended/xen/files/' and then create a bbappend adding -'file://defconfig' to your SRC_URI. - -security patches ----------------- - -The base recipe does not include security fixes that the Xen community releases -as XSAs (http://xenbits.xen.org/xsa/). The easiest way to include those is to -drop patches in 'recipes-extened/xen/files' and create a bbappend adding those -patches to SRC_URI and they will be applied. Alternatively, you can override -the SRC_URI to a git repo you provide that contains the patches. diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch deleted file mode 100644 index ad9524a30..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch +++ /dev/null @@ -1,176 +0,0 @@ -From ad208b8b7e45fb2b7c572b86c61c26412609e82d Mon Sep 17 00:00:00 2001 -From: George Dunlap <george.dunlap@citrix.com> -Date: Fri, 10 Nov 2017 16:53:54 +0000 -Subject: [PATCH 1/2] p2m: Always check to see if removing a p2m entry actually - worked - -The PoD zero-check functions speculatively remove memory from the p2m, -then check to see if it's completely zeroed, before putting it in the -cache. - -Unfortunately, the p2m_set_entry() calls may fail if the underlying -pagetable structure needs to change and the domain has exhausted its -p2m memory pool: for instance, if we're removing a 2MiB region out of -a 1GiB entry (in the p2m_pod_zero_check_superpage() case), or a 4k -region out of a 2MiB or larger entry (in the p2m_pod_zero_check() -case); and the return value is not checked. - -The underlying mfn will then be added into the PoD cache, and at some -point mapped into another location in the p2m. If the guest -afterwards ballons out this memory, it will be freed to the hypervisor -and potentially reused by another domain, in spite of the fact that -the original domain still has writable mappings to it. - -There are several places where p2m_set_entry() shouldn't be able to -fail, as it is guaranteed to write an entry of the same order that -succeeded before. Add a backstop of crashing the domain just in case, -and an ASSERT_UNREACHABLE() to flag up the broken assumption on debug -builds. - -While we're here, use PAGE_ORDER_2M rather than a magic constant. - -This is part of XSA-247. - -Reported-by: George Dunlap <george.dunlap.com> -Signed-off-by: George Dunlap <george.dunlap@citrix.com> -Reviewed-by: Jan Beulich <jbeulich@suse.com> ---- -v4: -- Removed some training whitespace -v3: -- Reformat reset clause to be more compact -- Make sure to set map[i] = NULL when unmapping in case we need to bail -v2: -- Crash a domain if a p2m_set_entry we think cannot fail fails anyway. ---- - xen/arch/x86/mm/p2m-pod.c | 77 +++++++++++++++++++++++++++++++++++++---------- - 1 file changed, 61 insertions(+), 16 deletions(-) - -diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c -index 730a48f928..f2ed751892 100644 ---- a/xen/arch/x86/mm/p2m-pod.c -+++ b/xen/arch/x86/mm/p2m-pod.c -@@ -752,8 +752,10 @@ p2m_pod_zero_check_superpage(struct p2m_domain *p2m, unsigned long gfn) - } - - /* Try to remove the page, restoring old mapping if it fails. */ -- p2m_set_entry(p2m, gfn, INVALID_MFN, PAGE_ORDER_2M, -- p2m_populate_on_demand, p2m->default_access); -+ if ( p2m_set_entry(p2m, gfn, INVALID_MFN, PAGE_ORDER_2M, -+ p2m_populate_on_demand, p2m->default_access) ) -+ goto out; -+ - p2m_tlb_flush_sync(p2m); - - /* Make none of the MFNs are used elsewhere... for example, mapped -@@ -810,9 +812,18 @@ p2m_pod_zero_check_superpage(struct p2m_domain *p2m, unsigned long gfn) - ret = SUPERPAGE_PAGES; - - out_reset: -- if ( reset ) -- p2m_set_entry(p2m, gfn, mfn0, 9, type0, p2m->default_access); -- -+ /* -+ * This p2m_set_entry() call shouldn't be able to fail, since the same order -+ * on the same gfn succeeded above. If that turns out to be false, crashing -+ * the domain should be the safest way of making sure we don't leak memory. -+ */ -+ if ( reset && p2m_set_entry(p2m, gfn, mfn0, PAGE_ORDER_2M, -+ type0, p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ } -+ - out: - gfn_unlock(p2m, gfn, SUPERPAGE_ORDER); - return ret; -@@ -869,19 +880,30 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) - } - - /* Try to remove the page, restoring old mapping if it fails. */ -- p2m_set_entry(p2m, gfns[i], INVALID_MFN, PAGE_ORDER_4K, -- p2m_populate_on_demand, p2m->default_access); -+ if ( p2m_set_entry(p2m, gfns[i], INVALID_MFN, PAGE_ORDER_4K, -+ p2m_populate_on_demand, p2m->default_access) ) -+ goto skip; - - /* See if the page was successfully unmapped. (Allow one refcount - * for being allocated to a domain.) */ - if ( (mfn_to_page(mfns[i])->count_info & PGC_count_mask) > 1 ) - { -+ /* -+ * If the previous p2m_set_entry call succeeded, this one shouldn't -+ * be able to fail. If it does, crashing the domain should be safe. -+ */ -+ if ( p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -+ types[i], p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unmap; -+ } -+ -+ skip: - unmap_domain_page(map[i]); - map[i] = NULL; - -- p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -- types[i], p2m->default_access); -- - continue; - } - } -@@ -900,12 +922,25 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) - - unmap_domain_page(map[i]); - -- /* See comment in p2m_pod_zero_check_superpage() re gnttab -- * check timing. */ -- if ( j < PAGE_SIZE/sizeof(*map[i]) ) -+ map[i] = NULL; -+ -+ /* -+ * See comment in p2m_pod_zero_check_superpage() re gnttab -+ * check timing. -+ */ -+ if ( j < (PAGE_SIZE / sizeof(*map[i])) ) - { -- p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -- types[i], p2m->default_access); -+ /* -+ * If the previous p2m_set_entry call succeeded, this one shouldn't -+ * be able to fail. If it does, crashing the domain should be safe. -+ */ -+ if ( p2m_set_entry(p2m, gfns[i], mfns[i], PAGE_ORDER_4K, -+ types[i], p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unmap; -+ } - } - else - { -@@ -929,7 +964,17 @@ p2m_pod_zero_check(struct p2m_domain *p2m, unsigned long *gfns, int count) - p2m->pod.entry_count++; - } - } -- -+ -+ return; -+ -+out_unmap: -+ /* -+ * Something went wrong, probably crashing the domain. Unmap -+ * everything and return. -+ */ -+ for ( i = 0; i < count; i++ ) -+ if ( map[i] ) -+ unmap_domain_page(map[i]); - } - - #define POD_SWEEP_LIMIT 1024 --- -2.15.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch deleted file mode 100644 index 8c850bd7f..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch +++ /dev/null @@ -1,109 +0,0 @@ -From d4bc7833707351a5341a6bdf04c752a028d9560d Mon Sep 17 00:00:00 2001 -From: George Dunlap <george.dunlap@citrix.com> -Date: Fri, 10 Nov 2017 16:53:55 +0000 -Subject: [PATCH 2/2] p2m: Check return value of p2m_set_entry() when - decreasing reservation - -If the entire range specified to p2m_pod_decrease_reservation() is marked -populate-on-demand, then it will make a single p2m_set_entry() call, -reducing its PoD entry count. - -Unfortunately, in the right circumstances, this p2m_set_entry() call -may fail. It that case, repeated calls to decrease_reservation() may -cause p2m->pod.entry_count to fall below zero, potentially tripping -over BUG_ON()s to the contrary. - -Instead, check to see if the entry succeeded, and return false if not. -The caller will then call guest_remove_page() on the gfns, which will -return -EINVAL upon finding no valid memory there to return. - -Unfortunately if the order > 0, the entry may have partially changed. -A domain_crash() is probably the safest thing in that case. - -Other p2m_set_entry() calls in the same function should be fine, -because they are writing the entry at its current order. Nonetheless, -check the return value and crash if our assumption turns otu to be -wrong. - -This is part of XSA-247. - -Reported-by: George Dunlap <george.dunlap.com> -Signed-off-by: George Dunlap <george.dunlap@citrix.com> -Reviewed-by: Jan Beulich <jbeulich@suse.com> ---- -v2: Crash the domain if we're not sure it's safe (or if we think it -can't happen) ---- - xen/arch/x86/mm/p2m-pod.c | 42 +++++++++++++++++++++++++++++++++--------- - 1 file changed, 33 insertions(+), 9 deletions(-) - -diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c -index f2ed751892..473d6a6dbf 100644 ---- a/xen/arch/x86/mm/p2m-pod.c -+++ b/xen/arch/x86/mm/p2m-pod.c -@@ -555,11 +555,23 @@ p2m_pod_decrease_reservation(struct domain *d, - - if ( !nonpod ) - { -- /* All PoD: Mark the whole region invalid and tell caller -- * we're done. */ -- p2m_set_entry(p2m, gpfn, INVALID_MFN, order, p2m_invalid, -- p2m->default_access); -- p2m->pod.entry_count-=(1<<order); -+ /* -+ * All PoD: Mark the whole region invalid and tell caller -+ * we're done. -+ */ -+ if ( p2m_set_entry(p2m, gpfn, INVALID_MFN, order, p2m_invalid, -+ p2m->default_access) ) -+ { -+ /* -+ * If this fails, we can't tell how much of the range was changed. -+ * Best to crash the domain unless we're sure a partial change is -+ * impossible. -+ */ -+ if ( order != 0 ) -+ domain_crash(d); -+ goto out_unlock; -+ } -+ p2m->pod.entry_count -= 1UL << order; - BUG_ON(p2m->pod.entry_count < 0); - ret = 1; - goto out_entry_check; -@@ -600,8 +612,14 @@ p2m_pod_decrease_reservation(struct domain *d, - n = 1UL << cur_order; - if ( t == p2m_populate_on_demand ) - { -- p2m_set_entry(p2m, gpfn + i, INVALID_MFN, cur_order, -- p2m_invalid, p2m->default_access); -+ /* This shouldn't be able to fail */ -+ if ( p2m_set_entry(p2m, gpfn + i, INVALID_MFN, cur_order, -+ p2m_invalid, p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unlock; -+ } - p2m->pod.entry_count -= n; - BUG_ON(p2m->pod.entry_count < 0); - pod -= n; -@@ -622,8 +640,14 @@ p2m_pod_decrease_reservation(struct domain *d, - - page = mfn_to_page(mfn); - -- p2m_set_entry(p2m, gpfn + i, INVALID_MFN, cur_order, -- p2m_invalid, p2m->default_access); -+ /* This shouldn't be able to fail */ -+ if ( p2m_set_entry(p2m, gpfn + i, INVALID_MFN, cur_order, -+ p2m_invalid, p2m->default_access) ) -+ { -+ ASSERT_UNREACHABLE(); -+ domain_crash(d); -+ goto out_unlock; -+ } - p2m_tlb_flush_sync(p2m); - for ( j = 0; j < n; ++j ) - set_gpfn_from_mfn(mfn_x(mfn), INVALID_M2P_ENTRY); --- -2.15.0 - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/lwip.dhcp_create_request-hwaddr_len.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/lwip.dhcp_create_request-hwaddr_len.patch deleted file mode 100644 index 4bbf21a18..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/lwip.dhcp_create_request-hwaddr_len.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: src/core/dhcp.c -=================================================================== ---- a/src/core/dhcp.c -+++ b/src/core/dhcp.c -@@ -1356,7 +1358,7 @@ dhcp_create_request(struct netif *netif) - dhcp->msg_out->giaddr.addr = 0; - for (i = 0; i < DHCP_CHADDR_LEN; i++) { - /* copy netif hardware address, pad with zeroes */ -- dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/; -+ dhcp->msg_out->chaddr[i] = (i < (netif->hwaddr_len > NETIF_MAX_HWADDR_LEN ? NETIF_MAX_HWADDR_LEN : netif->hwaddr_len)) ? netif->hwaddr[i] : 0/* pad byte*/; - } - for (i = 0; i < DHCP_SNAME_LEN; i++) { - dhcp->msg_out->sname[i] = 0; diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/lwip.patch-cvs b/import-layers/meta-virtualization/recipes-extended/xen/files/lwip.patch-cvs deleted file mode 100644 index b2718778c..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/lwip.patch-cvs +++ /dev/null @@ -1,2398 +0,0 @@ -? .ChangeLog.swp -? ChangeLog -Index: CHANGELOG -=================================================================== -RCS file: /sources/lwip/lwip/CHANGELOG,v -retrieving revision 1.300 -retrieving revision 1.318 -diff -u -p -r1.300 -r1.318 ---- a/CHANGELOG 23 Mar 2008 13:49:39 -0000 1.300 -+++ b/CHANGELOG 14 Jul 2008 20:12:36 -0000 1.318 -@@ -19,9 +19,77 @@ HISTORY - - ++ New features: - -+ 2008-06-30 Simon Goldschmidt -+ * mem.c, opt.h, stats.h: fixed bug #21433: Calling mem_free/pbuf_free from -+ interrupt context isn't safe: LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT allows -+ mem_free to run between mem_malloc iterations. Added illegal counter for -+ mem stats. -+ -+ 2008-06-27 Simon Goldschmidt -+ * stats.h/.c, some other files: patch #6483: stats module improvement: -+ Added defines to display each module's statistic individually, added stats -+ defines for MEM, MEMP and SYS modules, removed (unused) rexmit counter. -+ -+ 2008-06-17 Simon Goldschmidt -+ * err.h: patch #6459: Made err_t overridable to use a more efficient type -+ (define LWIP_ERR_T in cc.h) -+ -+ 2008-06-17 Simon Goldschmidt -+ * slipif.c: patch #6480: Added a configuration option for slipif for symmetry -+ to loopif -+ -+ 2008-06-17 Simon Goldschmidt (patch by Luca Ceresoli) -+ * netif.c, loopif.c, ip.c, netif.h, loopif.h, opt.h: Checked in slightly -+ modified version of patch # 6370: Moved loopif code to netif.c so that -+ loopback traffic is supported on all netifs (all local IPs). -+ Added option to limit loopback packets for each netifs. -+ - - ++ Bugfixes: - -+ 2008-08-14 Simon Goldschmidt -+ * api_msg.c: fixed bug #23847: do_close_internal references freed memory (when -+ tcp_close returns != ERR_OK) -+ -+ 2008-07-08 Frédéric Bernon -+ * stats.h: Fix some build bugs introduced with patch #6483 (missing some parameters -+ in macros, mainly if MEM_STATS=0 and MEMP_STATS=0). -+ -+ 2008-06-24 Jonathan Larmour -+ * tcp_in.c: Fix for bug #23693 as suggested by Art R. Ensure cseg is unused -+ if tcp_seg_copy fails. -+ -+ 2008-06-17 Simon Goldschmidt -+ * inet_chksum.c: Checked in some ideas of patch #6460 (loop optimizations) -+ and created defines for swapping bytes and folding u32 to u16. -+ -+ 2008-05-30 Kieran Mansley -+ * tcp_in.c Remove redundant "if" statement, and use real rcv_wnd -+ rather than rcv_ann_wnd when deciding if packets are in-window. -+ Contributed by <arasmussen@consultant.datasys.swri.edu> -+ -+ 2008-05-30 Kieran Mansley -+ * mem.h: Fix BUG#23254. Change macro definition of mem_* to allow -+ passing as function pointers when MEM_LIBC_MALLOC is defined. -+ -+ 2008-05-09 Jonathan Larmour -+ * err.h, err.c, sockets.c: Fix bug #23119: Reorder timeout error code to -+ stop it being treated as a fatal error. -+ -+ 2008-04-15 Simon Goldschmidt -+ * dhcp.c: fixed bug #22804: dhcp_stop doesn't clear NETIF_FLAG_DHCP -+ (flag now cleared) -+ -+ 2008-03-27 Simon Goldschmidt -+ * mem.c, tcpip.c, tcpip.h, opt.h: fixed bug #21433 (Calling mem_free/pbuf_free -+ from interrupt context isn't safe): set LWIP_USE_HEAP_FROM_INTERRUPT to 1 -+ in lwipopts.h or use pbuf_free_callback(p)/mem_free_callback(m) to free pbufs -+ or heap memory from interrupt context -+ -+ 2008-03-26 Simon Goldschmidt -+ * tcp_in.c, tcp.c: fixed bug #22249: division by zero could occur if a remote -+ host sent a zero mss as TCP option. -+ - - (STABLE-1.3.0) - -Index: src/api/api_msg.c -=================================================================== -RCS file: /sources/lwip/lwip/src/api/api_msg.c,v -retrieving revision 1.102 -retrieving revision 1.104 -diff -u -p -r1.102 -r1.104 ---- a/src/api/api_msg.c 21 Mar 2008 16:23:14 -0000 1.102 -+++ b/src/api/api_msg.c 15 Jul 2008 11:18:58 -0000 1.104 -@@ -598,11 +598,16 @@ do_close_internal(struct netconn *conn) - LWIP_ASSERT("pcb already closed", (conn->pcb.tcp != NULL)); - - /* Set back some callback pointers */ -+ tcp_arg(conn->pcb.tcp, NULL); - if (conn->pcb.tcp->state == LISTEN) { -- tcp_arg(conn->pcb.tcp, NULL); - tcp_accept(conn->pcb.tcp, NULL); - } else { - tcp_recv(conn->pcb.tcp, NULL); -+ tcp_accept(conn->pcb.tcp, NULL); -+ /* some callbacks have to be reset if tcp_close is not successful */ -+ tcp_sent(conn->pcb.tcp, NULL); -+ tcp_poll(conn->pcb.tcp, NULL, 4); -+ tcp_err(conn->pcb.tcp, NULL); - } - /* Try to close the connection */ - err = tcp_close(conn->pcb.tcp); -@@ -610,11 +615,6 @@ do_close_internal(struct netconn *conn) - /* Closing succeeded */ - conn->state = NETCONN_NONE; - /* Set back some callback pointers as conn is going away */ -- tcp_err(conn->pcb.tcp, NULL); -- tcp_poll(conn->pcb.tcp, NULL, 4); -- tcp_sent(conn->pcb.tcp, NULL); -- tcp_recv(conn->pcb.tcp, NULL); -- tcp_arg(conn->pcb.tcp, NULL); - conn->pcb.tcp = NULL; - conn->err = ERR_OK; - /* Trigger select() in socket layer. This send should something else so the -@@ -623,6 +623,14 @@ do_close_internal(struct netconn *conn) - API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0); - /* wake up the application task */ - sys_sem_signal(conn->op_completed); -+ } else { -+ /* Closing failed, restore some of the callbacks */ -+ /* Closing of listen pcb will never fail! */ -+ LWIP_ASSERT("Closing a listen pcb may not fail!", (conn->pcb.tcp->state != LISTEN)); -+ tcp_sent(conn->pcb.tcp, sent_tcp); -+ tcp_poll(conn->pcb.tcp, poll_tcp, 4); -+ tcp_err(conn->pcb.tcp, err_tcp); -+ tcp_arg(conn->pcb.tcp, conn); - } - /* If closing didn't succeed, we get called again either - from poll_tcp or from sent_tcp */ -Index: src/api/err.c -=================================================================== -RCS file: /sources/lwip/lwip/src/api/err.c,v -retrieving revision 1.11 -retrieving revision 1.12 -diff -u -p -r1.11 -r1.12 ---- a/src/api/err.c 13 Dec 2007 23:06:50 -0000 1.11 -+++ b/src/api/err.c 9 May 2008 12:14:23 -0000 1.12 -@@ -44,17 +44,17 @@ static const char *err_strerr[] = { - "Ok.", /* ERR_OK 0 */ - "Out of memory error.", /* ERR_MEM -1 */ - "Buffer error.", /* ERR_BUF -2 */ -- "Routing problem.", /* ERR_RTE -3 */ -- "Connection aborted.", /* ERR_ABRT -4 */ -- "Connection reset.", /* ERR_RST -5 */ -- "Connection closed.", /* ERR_CLSD -6 */ -- "Not connected.", /* ERR_CONN -7 */ -- "Illegal value.", /* ERR_VAL -8 */ -- "Illegal argument.", /* ERR_ARG -9 */ -- "Address in use.", /* ERR_USE -10 */ -- "Low-level netif error.", /* ERR_IF -11 */ -- "Already connected.", /* ERR_ISCONN -12 */ -- "Timeout.", /* ERR_TIMEOUT -13 */ -+ "Timeout.", /* ERR_TIMEOUT -3 */ -+ "Routing problem.", /* ERR_RTE -4 */ -+ "Connection aborted.", /* ERR_ABRT -5 */ -+ "Connection reset.", /* ERR_RST -6 */ -+ "Connection closed.", /* ERR_CLSD -7 */ -+ "Not connected.", /* ERR_CONN -8 */ -+ "Illegal value.", /* ERR_VAL -9 */ -+ "Illegal argument.", /* ERR_ARG -10 */ -+ "Address in use.", /* ERR_USE -11 */ -+ "Low-level netif error.", /* ERR_IF -12 */ -+ "Already connected.", /* ERR_ISCONN -13 */ - "Operation in progress." /* ERR_INPROGRESS -14 */ - }; - -Index: src/api/netdb.c -=================================================================== -RCS file: /sources/lwip/lwip/src/api/netdb.c,v -retrieving revision 1.4 -retrieving revision 1.5 -diff -u -p -r1.4 -r1.5 ---- a/src/api/netdb.c 26 Jan 2008 16:11:39 -0000 1.4 -+++ b/src/api/netdb.c 16 Jul 2008 20:36:12 -0000 1.5 -@@ -326,7 +326,8 @@ lwip_getaddrinfo(const char *nodename, c - if (nodename != NULL) { - /* copy nodename to canonname if specified */ - size_t namelen = strlen(nodename); -- ai->ai_canonname = mem_malloc(namelen + 1); -+ LWIP_ASSERT("namelen is too long", (namelen + 1) <= (mem_size_t)-1); -+ ai->ai_canonname = mem_malloc((mem_size_t)(namelen + 1)); - if (ai->ai_canonname == NULL) { - goto memerr; - } -Index: src/api/sockets.c -=================================================================== -RCS file: /sources/lwip/lwip/src/api/sockets.c,v -retrieving revision 1.116 -retrieving revision 1.117 -diff -u -p -r1.116 -r1.117 ---- a/src/api/sockets.c 13 Mar 2008 20:03:57 -0000 1.116 -+++ b/src/api/sockets.c 9 May 2008 12:14:24 -0000 1.117 -@@ -128,17 +128,17 @@ static const int err_to_errno_table[] = - 0, /* ERR_OK 0 No error, everything OK. */ - ENOMEM, /* ERR_MEM -1 Out of memory error. */ - ENOBUFS, /* ERR_BUF -2 Buffer error. */ -- EHOSTUNREACH, /* ERR_RTE -3 Routing problem. */ -- ECONNABORTED, /* ERR_ABRT -4 Connection aborted. */ -- ECONNRESET, /* ERR_RST -5 Connection reset. */ -- ESHUTDOWN, /* ERR_CLSD -6 Connection closed. */ -- ENOTCONN, /* ERR_CONN -7 Not connected. */ -- EINVAL, /* ERR_VAL -8 Illegal value. */ -- EIO, /* ERR_ARG -9 Illegal argument. */ -- EADDRINUSE, /* ERR_USE -10 Address in use. */ -- -1, /* ERR_IF -11 Low-level netif error */ -- -1, /* ERR_ISCONN -12 Already connected. */ -- ETIMEDOUT, /* ERR_TIMEOUT -13 Timeout */ -+ ETIMEDOUT, /* ERR_TIMEOUT -3 Timeout */ -+ EHOSTUNREACH, /* ERR_RTE -4 Routing problem. */ -+ ECONNABORTED, /* ERR_ABRT -5 Connection aborted. */ -+ ECONNRESET, /* ERR_RST -6 Connection reset. */ -+ ESHUTDOWN, /* ERR_CLSD -7 Connection closed. */ -+ ENOTCONN, /* ERR_CONN -8 Not connected. */ -+ EINVAL, /* ERR_VAL -9 Illegal value. */ -+ EIO, /* ERR_ARG -10 Illegal argument. */ -+ EADDRINUSE, /* ERR_USE -11 Address in use. */ -+ -1, /* ERR_IF -12 Low-level netif error */ -+ -1, /* ERR_ISCONN -13 Already connected. */ - EINPROGRESS /* ERR_INPROGRESS -14 Operation in progress */ - }; - -Index: src/api/tcpip.c -=================================================================== -RCS file: /sources/lwip/lwip/src/api/tcpip.c,v -retrieving revision 1.70 -retrieving revision 1.73 -diff -u -p -r1.70 -r1.73 ---- a/src/api/tcpip.c 12 Jan 2008 11:52:22 -0000 1.70 -+++ b/src/api/tcpip.c 27 Jun 2008 20:34:51 -0000 1.73 -@@ -518,4 +518,42 @@ tcpip_init(void (* initfunc)(void *), vo - sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO); - } - -+/** -+ * Simple callback function used with tcpip_callback to free a pbuf -+ * (pbuf_free has a wrong signature for tcpip_callback) -+ * -+ * @param p The pbuf (chain) to be dereferenced. -+ */ -+static void -+pbuf_free_int(void *p) -+{ -+ struct pbuf *q = p; -+ pbuf_free(q); -+} -+ -+/** -+ * A simple wrapper function that allows you to free a pbuf from interrupt context. -+ * -+ * @param p The pbuf (chain) to be dereferenced. -+ * @return ERR_OK if callback could be enqueued, an err_t if not -+ */ -+err_t -+pbuf_free_callback(struct pbuf *p) -+{ -+ return tcpip_callback_with_block(pbuf_free_int, p, 0); -+} -+ -+/** -+ * A simple wrapper function that allows you to free heap memory from -+ * interrupt context. -+ * -+ * @param m the heap memory to free -+ * @return ERR_OK if callback could be enqueued, an err_t if not -+ */ -+err_t -+mem_free_callback(void *m) -+{ -+ return tcpip_callback_with_block(mem_free, m, 0); -+} -+ - #endif /* !NO_SYS */ -Index: src/core/dhcp.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/dhcp.c,v -retrieving revision 1.86 -retrieving revision 1.87 -diff -u -p -r1.86 -r1.87 ---- a/src/core/dhcp.c 4 Mar 2008 14:25:58 -0000 1.86 -+++ b/src/core/dhcp.c 15 Apr 2008 17:24:55 -0000 1.87 -@@ -568,6 +568,8 @@ dhcp_start(struct netif *netif) - LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG;); - dhcp = netif->dhcp; - LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); -+ /* Remove the flag that says this netif is handled by DHCP, -+ it is set when we succeeded starting. */ - netif->flags &= ~NETIF_FLAG_DHCP; - - /* no DHCP client attached yet? */ -@@ -609,6 +611,7 @@ dhcp_start(struct netif *netif) - dhcp_stop(netif); - return ERR_MEM; - } -+ /* Set the flag that says this netif is handled by DHCP. */ - netif->flags |= NETIF_FLAG_DHCP; - return result; - } -@@ -1063,6 +1066,8 @@ dhcp_stop(struct netif *netif) - { - struct dhcp *dhcp = netif->dhcp; - LWIP_ERROR("dhcp_stop: netif != NULL", (netif != NULL), return;); -+ /* Remove the flag that says this netif is handled by DHCP. */ -+ netif->flags &= ~NETIF_FLAG_DHCP; - - LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_stop()\n")); - /* netif is DHCP configured? */ -Index: src/core/mem.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/mem.c,v -retrieving revision 1.59 -retrieving revision 1.62 -diff -u -p -r1.59 -r1.62 ---- a/src/core/mem.c 4 Mar 2008 16:31:32 -0000 1.59 -+++ b/src/core/mem.c 30 Jun 2008 18:16:51 -0000 1.62 -@@ -177,9 +177,36 @@ static u8_t *ram; - static struct mem *ram_end; - /** pointer to the lowest free block, this is used for faster search */ - static struct mem *lfree; -+ - /** concurrent access protection */ - static sys_sem_t mem_sem; - -+#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+ -+static volatile u8_t mem_free_count; -+ -+/* Allow mem_free from other (e.g. interrupt) context */ -+#define LWIP_MEM_FREE_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_free) -+#define LWIP_MEM_FREE_PROTECT() SYS_ARCH_PROTECT(lev_free) -+#define LWIP_MEM_FREE_UNPROTECT() SYS_ARCH_UNPROTECT(lev_free) -+#define LWIP_MEM_ALLOC_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_alloc) -+#define LWIP_MEM_ALLOC_PROTECT() SYS_ARCH_PROTECT(lev_alloc) -+#define LWIP_MEM_ALLOC_UNPROTECT() SYS_ARCH_UNPROTECT(lev_alloc) -+ -+#else /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ -+ -+/* Protect the heap only by using a semaphore */ -+#define LWIP_MEM_FREE_DECL_PROTECT() -+#define LWIP_MEM_FREE_PROTECT() sys_arch_sem_wait(mem_sem, 0) -+#define LWIP_MEM_FREE_UNPROTECT() sys_sem_signal(mem_sem) -+/* mem_malloc is protected using semaphore AND LWIP_MEM_ALLOC_PROTECT */ -+#define LWIP_MEM_ALLOC_DECL_PROTECT() -+#define LWIP_MEM_ALLOC_PROTECT() -+#define LWIP_MEM_ALLOC_UNPROTECT() -+ -+#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ -+ -+ - /** - * "Plug holes" by combining adjacent empty struct mems. - * After this function is through, there should not exist -@@ -255,9 +282,7 @@ mem_init(void) - /* initialize the lowest-free pointer to the start of the heap */ - lfree = (struct mem *)ram; - --#if MEM_STATS -- lwip_stats.mem.avail = MEM_SIZE_ALIGNED; --#endif /* MEM_STATS */ -+ MEM_STATS_AVAIL(avail, MEM_SIZE_ALIGNED); - } - - /** -@@ -270,6 +295,7 @@ void - mem_free(void *rmem) - { - struct mem *mem; -+ LWIP_MEM_FREE_DECL_PROTECT(); - - if (rmem == NULL) { - LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_TRACE | 2, ("mem_free(p == NULL) was called.\n")); -@@ -277,20 +303,20 @@ mem_free(void *rmem) - } - LWIP_ASSERT("mem_free: sanity check alignment", (((mem_ptr_t)rmem) & (MEM_ALIGNMENT-1)) == 0); - -- /* protect the heap from concurrent access */ -- sys_arch_sem_wait(mem_sem, 0); -- - LWIP_ASSERT("mem_free: legal memory", (u8_t *)rmem >= (u8_t *)ram && - (u8_t *)rmem < (u8_t *)ram_end); - - if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) { -+ SYS_ARCH_DECL_PROTECT(lev); - LWIP_DEBUGF(MEM_DEBUG | 3, ("mem_free: illegal memory\n")); --#if MEM_STATS -- ++lwip_stats.mem.err; --#endif /* MEM_STATS */ -- sys_sem_signal(mem_sem); -+ /* protect mem stats from concurrent access */ -+ SYS_ARCH_PROTECT(lev); -+ MEM_STATS_INC(illegal); -+ SYS_ARCH_UNPROTECT(lev); - return; - } -+ /* protect the heap from concurrent access */ -+ LWIP_MEM_FREE_PROTECT(); - /* Get the corresponding struct mem ... */ - mem = (struct mem *)((u8_t *)rmem - SIZEOF_STRUCT_MEM); - /* ... which has to be in a used state ... */ -@@ -303,13 +329,14 @@ mem_free(void *rmem) - lfree = mem; - } - --#if MEM_STATS -- lwip_stats.mem.used -= mem->next - ((u8_t *)mem - ram); --#endif /* MEM_STATS */ -+ MEM_STATS_DEC_USED(used, mem->next - ((u8_t *)mem - ram)); - - /* finally, see if prev or next are free also */ - plug_holes(mem); -- sys_sem_signal(mem_sem); -+#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+ mem_free_count = 1; -+#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ -+ LWIP_MEM_FREE_UNPROTECT(); - } - - /** -@@ -321,6 +348,8 @@ mem_free(void *rmem) - * @param newsize required size after shrinking (needs to be smaller than or - * equal to the previous size) - * @return for compatibility reasons: is always == rmem, at the moment -+ * or NULL if newsize is > old size, in which case rmem is NOT touched -+ * or freed! - */ - void * - mem_realloc(void *rmem, mem_size_t newsize) -@@ -328,6 +357,8 @@ mem_realloc(void *rmem, mem_size_t newsi - mem_size_t size; - mem_size_t ptr, ptr2; - struct mem *mem, *mem2; -+ /* use the FREE_PROTECT here: it protects with sem OR SYS_ARCH_PROTECT */ -+ LWIP_MEM_FREE_DECL_PROTECT(); - - /* Expand the size of the allocated memory region so that we can - adjust for alignment. */ -@@ -346,7 +377,12 @@ mem_realloc(void *rmem, mem_size_t newsi - (u8_t *)rmem < (u8_t *)ram_end); - - if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) { -+ SYS_ARCH_DECL_PROTECT(lev); - LWIP_DEBUGF(MEM_DEBUG | 3, ("mem_realloc: illegal memory\n")); -+ /* protect mem stats from concurrent access */ -+ SYS_ARCH_PROTECT(lev); -+ MEM_STATS_INC(illegal); -+ SYS_ARCH_UNPROTECT(lev); - return rmem; - } - /* Get the corresponding struct mem ... */ -@@ -366,11 +402,9 @@ mem_realloc(void *rmem, mem_size_t newsi - } - - /* protect the heap from concurrent access */ -- sys_arch_sem_wait(mem_sem, 0); -+ LWIP_MEM_FREE_PROTECT(); - --#if MEM_STATS -- lwip_stats.mem.used -= (size - newsize); --#endif /* MEM_STATS */ -+ MEM_STATS_DEC_USED(used, (size - newsize)); - - mem2 = (struct mem *)&ram[mem->next]; - if(mem2->used == 0) { -@@ -426,7 +460,10 @@ mem_realloc(void *rmem, mem_size_t newsi - -> don't do anyhting. - -> the remaining space stays unused since it is too small - } */ -- sys_sem_signal(mem_sem); -+#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+ mem_free_count = 1; -+#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ -+ LWIP_MEM_FREE_UNPROTECT(); - return rmem; - } - -@@ -444,6 +481,10 @@ mem_malloc(mem_size_t size) - { - mem_size_t ptr, ptr2; - struct mem *mem, *mem2; -+#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+ u8_t local_mem_free_count = 0; -+#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ -+ LWIP_MEM_ALLOC_DECL_PROTECT(); - - if (size == 0) { - return NULL; -@@ -464,88 +505,101 @@ mem_malloc(mem_size_t size) - - /* protect the heap from concurrent access */ - sys_arch_sem_wait(mem_sem, 0); -+ LWIP_MEM_ALLOC_PROTECT(); -+#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+ /* run as long as a mem_free disturbed mem_malloc */ -+ do { -+ local_mem_free_count = 0; -+#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ -+ -+ /* Scan through the heap searching for a free block that is big enough, -+ * beginning with the lowest free block. -+ */ -+ for (ptr = (u8_t *)lfree - ram; ptr < MEM_SIZE_ALIGNED - size; -+ ptr = ((struct mem *)&ram[ptr])->next) { -+ mem = (struct mem *)&ram[ptr]; -+#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+ mem_free_count = 0; -+ LWIP_MEM_ALLOC_UNPROTECT(); -+ /* allow mem_free to run */ -+ LWIP_MEM_ALLOC_PROTECT(); -+ if (mem_free_count != 0) { -+ local_mem_free_count = mem_free_count; -+ } -+ mem_free_count = 0; -+#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ - -- /* Scan through the heap searching for a free block that is big enough, -- * beginning with the lowest free block. -- */ -- for (ptr = (u8_t *)lfree - ram; ptr < MEM_SIZE_ALIGNED - size; -- ptr = ((struct mem *)&ram[ptr])->next) { -- mem = (struct mem *)&ram[ptr]; -- -- if ((!mem->used) && -- (mem->next - (ptr + SIZEOF_STRUCT_MEM)) >= size) { -- /* mem is not used and at least perfect fit is possible: -- * mem->next - (ptr + SIZEOF_STRUCT_MEM) gives us the 'user data size' of mem */ -- -- if (mem->next - (ptr + SIZEOF_STRUCT_MEM) >= (size + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED)) { -- /* (in addition to the above, we test if another struct mem (SIZEOF_STRUCT_MEM) containing -- * at least MIN_SIZE_ALIGNED of data also fits in the 'user data space' of 'mem') -- * -> split large block, create empty remainder, -- * remainder must be large enough to contain MIN_SIZE_ALIGNED data: if -- * mem->next - (ptr + (2*SIZEOF_STRUCT_MEM)) == size, -- * struct mem would fit in but no data between mem2 and mem2->next -- * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty -- * region that couldn't hold data, but when mem->next gets freed, -- * the 2 regions would be combined, resulting in more free memory -- */ -- ptr2 = ptr + SIZEOF_STRUCT_MEM + size; -- /* create mem2 struct */ -- mem2 = (struct mem *)&ram[ptr2]; -- mem2->used = 0; -- mem2->next = mem->next; -- mem2->prev = ptr; -- /* and insert it between mem and mem->next */ -- mem->next = ptr2; -- mem->used = 1; -- -- if (mem2->next != MEM_SIZE_ALIGNED) { -- ((struct mem *)&ram[mem2->next])->prev = ptr2; -- } --#if MEM_STATS -- lwip_stats.mem.used += (size + SIZEOF_STRUCT_MEM); -- if (lwip_stats.mem.max < lwip_stats.mem.used) { -- lwip_stats.mem.max = lwip_stats.mem.used; -+ if ((!mem->used) && -+ (mem->next - (ptr + SIZEOF_STRUCT_MEM)) >= size) { -+ /* mem is not used and at least perfect fit is possible: -+ * mem->next - (ptr + SIZEOF_STRUCT_MEM) gives us the 'user data size' of mem */ -+ -+ if (mem->next - (ptr + SIZEOF_STRUCT_MEM) >= (size + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED)) { -+ /* (in addition to the above, we test if another struct mem (SIZEOF_STRUCT_MEM) containing -+ * at least MIN_SIZE_ALIGNED of data also fits in the 'user data space' of 'mem') -+ * -> split large block, create empty remainder, -+ * remainder must be large enough to contain MIN_SIZE_ALIGNED data: if -+ * mem->next - (ptr + (2*SIZEOF_STRUCT_MEM)) == size, -+ * struct mem would fit in but no data between mem2 and mem2->next -+ * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty -+ * region that couldn't hold data, but when mem->next gets freed, -+ * the 2 regions would be combined, resulting in more free memory -+ */ -+ ptr2 = ptr + SIZEOF_STRUCT_MEM + size; -+ /* create mem2 struct */ -+ mem2 = (struct mem *)&ram[ptr2]; -+ mem2->used = 0; -+ mem2->next = mem->next; -+ mem2->prev = ptr; -+ /* and insert it between mem and mem->next */ -+ mem->next = ptr2; -+ mem->used = 1; -+ -+ if (mem2->next != MEM_SIZE_ALIGNED) { -+ ((struct mem *)&ram[mem2->next])->prev = ptr2; -+ } -+ MEM_STATS_INC_USED(used, (size + SIZEOF_STRUCT_MEM)); -+ } else { -+ /* (a mem2 struct does no fit into the user data space of mem and mem->next will always -+ * be used at this point: if not we have 2 unused structs in a row, plug_holes should have -+ * take care of this). -+ * -> near fit or excact fit: do not split, no mem2 creation -+ * also can't move mem->next directly behind mem, since mem->next -+ * will always be used at this point! -+ */ -+ mem->used = 1; -+ MEM_STATS_INC_USED(used, mem->next - ((u8_t *)mem - ram)); - } --#endif /* MEM_STATS */ -- } else { -- /* (a mem2 struct does no fit into the user data space of mem and mem->next will always -- * be used at this point: if not we have 2 unused structs in a row, plug_holes should have -- * take care of this). -- * -> near fit or excact fit: do not split, no mem2 creation -- * also can't move mem->next directly behind mem, since mem->next -- * will always be used at this point! -- */ -- mem->used = 1; --#if MEM_STATS -- lwip_stats.mem.used += mem->next - ((u8_t *)mem - ram); -- if (lwip_stats.mem.max < lwip_stats.mem.used) { -- lwip_stats.mem.max = lwip_stats.mem.used; -- } --#endif /* MEM_STATS */ -- } - -- if (mem == lfree) { -- /* Find next free block after mem and update lowest free pointer */ -- while (lfree->used && lfree != ram_end) { -- lfree = (struct mem *)&ram[lfree->next]; -+ if (mem == lfree) { -+ /* Find next free block after mem and update lowest free pointer */ -+ while (lfree->used && lfree != ram_end) { -+ LWIP_MEM_ALLOC_UNPROTECT(); -+ /* prevent high interrupt latency... */ -+ LWIP_MEM_ALLOC_PROTECT(); -+ lfree = (struct mem *)&ram[lfree->next]; -+ } -+ LWIP_ASSERT("mem_malloc: !lfree->used", ((lfree == ram_end) || (!lfree->used))); - } -- LWIP_ASSERT("mem_malloc: !lfree->used", ((lfree == ram_end) || (!lfree->used))); -- } -- sys_sem_signal(mem_sem); -- LWIP_ASSERT("mem_malloc: allocated memory not above ram_end.", -- (mem_ptr_t)mem + SIZEOF_STRUCT_MEM + size <= (mem_ptr_t)ram_end); -- LWIP_ASSERT("mem_malloc: allocated memory properly aligned.", -- (unsigned long)((u8_t *)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0); -- LWIP_ASSERT("mem_malloc: sanity check alignment", -- (((mem_ptr_t)mem) & (MEM_ALIGNMENT-1)) == 0); -+ LWIP_MEM_ALLOC_UNPROTECT(); -+ sys_sem_signal(mem_sem); -+ LWIP_ASSERT("mem_malloc: allocated memory not above ram_end.", -+ (mem_ptr_t)mem + SIZEOF_STRUCT_MEM + size <= (mem_ptr_t)ram_end); -+ LWIP_ASSERT("mem_malloc: allocated memory properly aligned.", -+ (unsigned long)((u8_t *)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0); -+ LWIP_ASSERT("mem_malloc: sanity check alignment", -+ (((mem_ptr_t)mem) & (MEM_ALIGNMENT-1)) == 0); - -- return (u8_t *)mem + SIZEOF_STRUCT_MEM; -+ return (u8_t *)mem + SIZEOF_STRUCT_MEM; -+ } - } -- } -+#if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+ /* if we got interrupted by a mem_free, try again */ -+ } while(local_mem_free_count != 0); -+#endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ - LWIP_DEBUGF(MEM_DEBUG | 2, ("mem_malloc: could not allocate %"S16_F" bytes\n", (s16_t)size)); --#if MEM_STATS -- ++lwip_stats.mem.err; --#endif /* MEM_STATS */ -+ MEM_STATS_INC(err); -+ LWIP_MEM_ALLOC_UNPROTECT(); - sys_sem_signal(mem_sem); - return NULL; - } -Index: src/core/memp.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/memp.c,v -retrieving revision 1.55 -retrieving revision 1.56 -diff -u -p -r1.55 -r1.56 ---- a/src/core/memp.c 25 Nov 2007 10:43:28 -0000 1.55 -+++ b/src/core/memp.c 27 Jun 2008 18:37:54 -0000 1.56 -@@ -252,13 +252,12 @@ memp_init(void) - struct memp *memp; - u16_t i, j; - --#if MEMP_STATS - for (i = 0; i < MEMP_MAX; ++i) { -- lwip_stats.memp[i].used = lwip_stats.memp[i].max = -- lwip_stats.memp[i].err = 0; -- lwip_stats.memp[i].avail = memp_num[i]; -+ MEMP_STATS_AVAIL(used, i, 0); -+ MEMP_STATS_AVAIL(max, i, 0); -+ MEMP_STATS_AVAIL(err, i, 0); -+ MEMP_STATS_AVAIL(avail, i, memp_num[i]); - } --#endif /* MEMP_STATS */ - - memp = LWIP_MEM_ALIGN(memp_memory); - /* for every pool: */ -@@ -315,20 +314,13 @@ memp_malloc_fn(memp_t type, const char* - memp->file = file; - memp->line = line; - #endif /* MEMP_OVERFLOW_CHECK */ --#if MEMP_STATS -- ++lwip_stats.memp[type].used; -- if (lwip_stats.memp[type].used > lwip_stats.memp[type].max) { -- lwip_stats.memp[type].max = lwip_stats.memp[type].used; -- } --#endif /* MEMP_STATS */ -+ MEMP_STATS_INC_USED(used, type); - LWIP_ASSERT("memp_malloc: memp properly aligned", - ((mem_ptr_t)memp % MEM_ALIGNMENT) == 0); - memp = (struct memp*)((u8_t*)memp + MEMP_SIZE); - } else { - LWIP_DEBUGF(MEMP_DEBUG | 2, ("memp_malloc: out of memory in pool %s\n", memp_desc[type])); --#if MEMP_STATS -- ++lwip_stats.memp[type].err; --#endif /* MEMP_STATS */ -+ MEMP_STATS_INC(err, type); - } - - SYS_ARCH_UNPROTECT(old_level); -@@ -365,9 +357,7 @@ memp_free(memp_t type, void *mem) - #endif /* MEMP_OVERFLOW_CHECK >= 2 */ - #endif /* MEMP_OVERFLOW_CHECK */ - --#if MEMP_STATS -- lwip_stats.memp[type].used--; --#endif /* MEMP_STATS */ -+ MEMP_STATS_DEC(used, type); - - memp->next = memp_tab[type]; - memp_tab[type] = memp; -Index: src/core/netif.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/netif.c,v -retrieving revision 1.65 -retrieving revision 1.68 -diff -u -p -r1.65 -r1.68 ---- a/src/core/netif.c 9 Oct 2007 20:00:55 -0000 1.65 -+++ b/src/core/netif.c 19 Jun 2008 16:27:18 -0000 1.68 -@@ -45,6 +45,12 @@ - #include "lwip/snmp.h" - #include "lwip/igmp.h" - #include "netif/etharp.h" -+#if ENABLE_LOOPBACK -+#include "lwip/sys.h" -+#if LWIP_NETIF_LOOPBACK_MULTITHREADING -+#include "lwip/tcpip.h" -+#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ -+#endif /* ENABLE_LOOPBACK */ - - #if LWIP_NETIF_STATUS_CALLBACK - #define NETIF_STATUS_CALLBACK(n) { if (n->status_callback) (n->status_callback)(n); } -@@ -106,6 +112,10 @@ netif_add(struct netif *netif, struct ip - #if LWIP_IGMP - netif->igmp_mac_filter = NULL; - #endif /* LWIP_IGMP */ -+#if ENABLE_LOOPBACK -+ netif->loop_first = NULL; -+ netif->loop_last = NULL; -+#endif /* ENABLE_LOOPBACK */ - - /* remember netif specific state information data */ - netif->state = state; -@@ -114,6 +124,9 @@ netif_add(struct netif *netif, struct ip - #if LWIP_NETIF_HWADDRHINT - netif->addr_hint = NULL; - #endif /* LWIP_NETIF_HWADDRHINT*/ -+#if ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS -+ netif->loop_cnt_current = 0; -+#endif /* ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS */ - - netif_set_addr(netif, ipaddr, netmask, gw); - -@@ -493,7 +506,158 @@ u8_t netif_is_link_up(struct netif *neti - */ - void netif_set_link_callback(struct netif *netif, void (* link_callback)(struct netif *netif )) - { -- if ( netif ) -- netif->link_callback = link_callback; -+ if (netif) { -+ netif->link_callback = link_callback; -+ } - } - #endif /* LWIP_NETIF_LINK_CALLBACK */ -+ -+#if ENABLE_LOOPBACK -+/** -+ * Send an IP packet to be received on the same netif (loopif-like). -+ * The pbuf is simply copied and handed back to netif->input. -+ * In multithreaded mode, this is done directly since netif->input must put -+ * the packet on a queue. -+ * In callback mode, the packet is put on an internal queue and is fed to -+ * netif->input by netif_poll(). -+ * -+ * @param netif the lwip network interface structure -+ * @param p the (IP) packet to 'send' -+ * @param ipaddr the ip address to send the packet to (not used) -+ * @return ERR_OK if the packet has been sent -+ * ERR_MEM if the pbuf used to copy the packet couldn't be allocated -+ */ -+err_t -+netif_loop_output(struct netif *netif, struct pbuf *p, -+ struct ip_addr *ipaddr) -+{ -+ struct pbuf *r; -+ err_t err; -+ struct pbuf *last; -+#if LWIP_LOOPBACK_MAX_PBUFS -+ u8_t clen = 0; -+#endif /* LWIP_LOOPBACK_MAX_PBUFS */ -+ SYS_ARCH_DECL_PROTECT(lev); -+ LWIP_UNUSED_ARG(ipaddr); -+ -+ /* Allocate a new pbuf */ -+ r = pbuf_alloc(PBUF_LINK, p->tot_len, PBUF_RAM); -+ if (r == NULL) { -+ return ERR_MEM; -+ } -+#if LWIP_LOOPBACK_MAX_PBUFS -+ clen = pbuf_clen(r); -+ /* check for overflow or too many pbuf on queue */ -+ if(((netif->loop_cnt_current + clen) < netif->loop_cnt_current) || -+ ((netif->loop_cnt_current + clen) > LWIP_LOOPBACK_MAX_PBUFS)) { -+ pbuf_free(r); -+ r = NULL; -+ return ERR_MEM; -+ } -+ netif->loop_cnt_current += clen; -+#endif /* LWIP_LOOPBACK_MAX_PBUFS */ -+ -+ /* Copy the whole pbuf queue p into the single pbuf r */ -+ if ((err = pbuf_copy(r, p)) != ERR_OK) { -+ pbuf_free(r); -+ r = NULL; -+ return err; -+ } -+ -+ /* Put the packet on a linked list which gets emptied through calling -+ netif_poll(). */ -+ -+ /* let last point to the last pbuf in chain r */ -+ for (last = r; last->next != NULL; last = last->next); -+ -+ SYS_ARCH_PROTECT(lev); -+ if(netif->loop_first != NULL) { -+ LWIP_ASSERT("if first != NULL, last must also be != NULL", netif->loop_last != NULL); -+ netif->loop_last->next = r; -+ netif->loop_last = last; -+ } else { -+ netif->loop_first = r; -+ netif->loop_last = last; -+ } -+ SYS_ARCH_UNPROTECT(lev); -+ -+#if LWIP_NETIF_LOOPBACK_MULTITHREADING -+ /* For multithreading environment, schedule a call to netif_poll */ -+ tcpip_callback(netif_poll, netif); -+#endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ -+ -+ return ERR_OK; -+} -+ -+/** -+ * Call netif_poll() in the main loop of your application. This is to prevent -+ * reentering non-reentrant functions like tcp_input(). Packets passed to -+ * netif_loop_output() are put on a list that is passed to netif->input() by -+ * netif_poll(). -+ */ -+void -+netif_poll(struct netif *netif) -+{ -+ struct pbuf *in; -+ SYS_ARCH_DECL_PROTECT(lev); -+ -+ do { -+ /* Get a packet from the list. With SYS_LIGHTWEIGHT_PROT=1, this is protected */ -+ SYS_ARCH_PROTECT(lev); -+ in = netif->loop_first; -+ if(in != NULL) { -+ struct pbuf *in_end = in; -+#if LWIP_LOOPBACK_MAX_PBUFS -+ u8_t clen = pbuf_clen(in); -+ /* adjust the number of pbufs on queue */ -+ LWIP_ASSERT("netif->loop_cnt_current underflow", -+ ((netif->loop_cnt_current - clen) < netif->loop_cnt_current)); -+ netif->loop_cnt_current -= clen; -+#endif /* LWIP_LOOPBACK_MAX_PBUFS */ -+ while(in_end->len != in_end->tot_len) { -+ LWIP_ASSERT("bogus pbuf: len != tot_len but next == NULL!", in_end->next != NULL); -+ in_end = in_end->next; -+ } -+ /* 'in_end' now points to the last pbuf from 'in' */ -+ if(in_end == netif->loop_last) { -+ /* this was the last pbuf in the list */ -+ netif->loop_first = netif->loop_last = NULL; -+ } else { -+ /* pop the pbuf off the list */ -+ netif->loop_first = in_end->next; -+ LWIP_ASSERT("should not be null since first != last!", netif->loop_first != NULL); -+ } -+ /* De-queue the pbuf from its successors on the 'loop_' list. */ -+ in_end->next = NULL; -+ } -+ SYS_ARCH_UNPROTECT(lev); -+ -+ if(in != NULL) { -+ /* loopback packets are always IP packets! */ -+ if(ip_input(in, netif) != ERR_OK) { -+ pbuf_free(in); -+ } -+ /* Don't reference the packet any more! */ -+ in = NULL; -+ } -+ /* go on while there is a packet on the list */ -+ } while(netif->loop_first != NULL); -+} -+ -+#if !LWIP_NETIF_LOOPBACK_MULTITHREADING -+/** -+ * Calls netif_poll() for every netif on the netif_list. -+ */ -+void -+netif_poll_all(void) -+{ -+ struct netif *netif = netif_list; -+ /* loop through netifs */ -+ while (netif != NULL) { -+ netif_poll(netif); -+ /* proceed to next network interface */ -+ netif = netif->next; -+ } -+} -+#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ -+#endif /* ENABLE_LOOPBACK */ -Index: src/core/pbuf.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/pbuf.c,v -retrieving revision 1.127 -retrieving revision 1.128 -diff -u -p -r1.127 -r1.128 ---- a/src/core/pbuf.c 4 Mar 2008 16:37:46 -0000 1.127 -+++ b/src/core/pbuf.c 1 Apr 2008 19:05:40 -0000 1.128 -@@ -667,8 +667,8 @@ pbuf_dechain(struct pbuf *p) - * - * @note Only one packet is copied, no packet queue! - * -- * @param p_to pbuf source of the copy -- * @param p_from pbuf destination of the copy -+ * @param p_to pbuf destination of the copy -+ * @param p_from pbuf source of the copy - * - * @return ERR_OK if pbuf was copied - * ERR_ARG if one of the pbufs is NULL or p_to is not big -Index: src/core/stats.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/stats.c,v -retrieving revision 1.27 -retrieving revision 1.28 -diff -u -p -r1.27 -r1.28 ---- a/src/core/stats.c 4 Mar 2008 16:31:32 -0000 1.27 -+++ b/src/core/stats.c 27 Jun 2008 18:37:54 -0000 1.28 -@@ -54,7 +54,6 @@ stats_display_proto(struct stats_proto * - { - LWIP_PLATFORM_DIAG(("\n%s\n\t", name)); - LWIP_PLATFORM_DIAG(("xmit: %"STAT_COUNTER_F"\n\t", proto->xmit)); -- LWIP_PLATFORM_DIAG(("rexmit: %"STAT_COUNTER_F"\n\t", proto->rexmit)); - LWIP_PLATFORM_DIAG(("recv: %"STAT_COUNTER_F"\n\t", proto->recv)); - LWIP_PLATFORM_DIAG(("fw: %"STAT_COUNTER_F"\n\t", proto->fw)); - LWIP_PLATFORM_DIAG(("drop: %"STAT_COUNTER_F"\n\t", proto->drop)); -@@ -68,6 +67,7 @@ stats_display_proto(struct stats_proto * - LWIP_PLATFORM_DIAG(("cachehit: %"STAT_COUNTER_F"\n", proto->cachehit)); - } - -+#if IGMP_STATS - void - stats_display_igmp(struct stats_igmp *igmp) - { -@@ -82,7 +82,9 @@ stats_display_igmp(struct stats_igmp *ig - LWIP_PLATFORM_DIAG(("report_rxed: %"STAT_COUNTER_F"\n\t", igmp->report_rxed)); - LWIP_PLATFORM_DIAG(("group_query_rxed: %"STAT_COUNTER_F"\n", igmp->group_query_rxed)); - } -+#endif /* IGMP_STATS */ - -+#if MEM_STATS || MEMP_STATS - void - stats_display_mem(struct stats_mem *mem, char *name) - { -@@ -93,48 +95,53 @@ stats_display_mem(struct stats_mem *mem, - LWIP_PLATFORM_DIAG(("err: %"U32_F"\n", (u32_t)mem->err)); - } - -+#if MEMP_STATS - void --stats_display(void) -+stats_display_memp(struct stats_mem *mem, int index) - { --#if MEMP_STATS -- s16_t i; - char * memp_names[] = { - #define LWIP_MEMPOOL(name,num,size,desc) desc, - #include "lwip/memp_std.h" - }; --#endif --#if LINK_STATS -- stats_display_proto(&lwip_stats.link, "LINK"); --#endif --#if ETHARP_STATS -- stats_display_proto(&lwip_stats.etharp, "ETHARP"); --#endif --#if IPFRAG_STATS -- stats_display_proto(&lwip_stats.ip_frag, "IP_FRAG"); --#endif --#if IP_STATS -- stats_display_proto(&lwip_stats.ip, "IP"); --#endif --#if ICMP_STATS -- stats_display_proto(&lwip_stats.icmp, "ICMP"); --#endif --#if IGMP_STATS -- stats_display_igmp(&lwip_stats.igmp); --#endif --#if UDP_STATS -- stats_display_proto(&lwip_stats.udp, "UDP"); --#endif --#if TCP_STATS -- stats_display_proto(&lwip_stats.tcp, "TCP"); --#endif --#if MEM_STATS -- stats_display_mem(&lwip_stats.mem, "HEAP"); --#endif --#if MEMP_STATS -+ if(index < MEMP_MAX) { -+ stats_display_mem(mem, memp_names[index]); -+ } -+} -+#endif /* MEMP_STATS */ -+#endif /* MEM_STATS || MEMP_STATS */ -+ -+#if SYS_STATS -+void -+stats_display_sys(struct stats_sys *sys) -+{ -+ LWIP_PLATFORM_DIAG(("\nSYS\n\t")); -+ LWIP_PLATFORM_DIAG(("sem.used: %"U32_F"\n\t", (u32_t)sys->sem.used)); -+ LWIP_PLATFORM_DIAG(("sem.max: %"U32_F"\n\t", (u32_t)sys->sem.max)); -+ LWIP_PLATFORM_DIAG(("sem.err: %"U32_F"\n\t", (u32_t)sys->sem.err)); -+ LWIP_PLATFORM_DIAG(("mbox.used: %"U32_F"\n\t", (u32_t)sys->mbox.used)); -+ LWIP_PLATFORM_DIAG(("mbox.max: %"U32_F"\n\t", (u32_t)sys->mbox.max)); -+ LWIP_PLATFORM_DIAG(("mbox.err: %"U32_F"\n\t", (u32_t)sys->mbox.err)); -+} -+#endif /* SYS_STATS */ -+ -+void -+stats_display(void) -+{ -+ s16_t i; -+ -+ LINK_STATS_DISPLAY(); -+ ETHARP_STATS_DISPLAY(); -+ IPFRAG_STATS_DISPLAY(); -+ IP_STATS_DISPLAY(); -+ IGMP_STATS_DISPLAY(); -+ ICMP_STATS_DISPLAY(); -+ UDP_STATS_DISPLAY(); -+ TCP_STATS_DISPLAY(); -+ MEM_STATS_DISPLAY(); - for (i = 0; i < MEMP_MAX; i++) { -- stats_display_mem(&lwip_stats.memp[i], memp_names[i]); -+ MEMP_STATS_DISPLAY(i); - } --#endif -+ SYS_STATS_DISPLAY(); - } - #endif /* LWIP_STATS_DISPLAY */ - -Index: src/core/sys.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/sys.c,v -retrieving revision 1.32 -retrieving revision 1.33 -diff -u -p -r1.32 -r1.33 ---- a/src/core/sys.c 25 Nov 2007 13:57:05 -0000 1.32 -+++ b/src/core/sys.c 16 Jul 2008 20:36:12 -0000 1.33 -@@ -65,7 +65,7 @@ struct sswt_cb - void - sys_mbox_fetch(sys_mbox_t mbox, void **msg) - { -- u32_t time; -+ u32_t time_needed; - struct sys_timeouts *timeouts; - struct sys_timeo *tmptimeout; - sys_timeout_handler h; -@@ -76,18 +76,18 @@ sys_mbox_fetch(sys_mbox_t mbox, void **m - - if (!timeouts || !timeouts->next) { - UNLOCK_TCPIP_CORE(); -- time = sys_arch_mbox_fetch(mbox, msg, 0); -+ time_needed = sys_arch_mbox_fetch(mbox, msg, 0); - LOCK_TCPIP_CORE(); - } else { - if (timeouts->next->time > 0) { - UNLOCK_TCPIP_CORE(); -- time = sys_arch_mbox_fetch(mbox, msg, timeouts->next->time); -+ time_needed = sys_arch_mbox_fetch(mbox, msg, timeouts->next->time); - LOCK_TCPIP_CORE(); - } else { -- time = SYS_ARCH_TIMEOUT; -+ time_needed = SYS_ARCH_TIMEOUT; - } - -- if (time == SYS_ARCH_TIMEOUT) { -+ if (time_needed == SYS_ARCH_TIMEOUT) { - /* If time == SYS_ARCH_TIMEOUT, a timeout occured before a message - could be fetched. We should now call the timeout handler and - deallocate the memory allocated for the timeout. */ -@@ -107,8 +107,8 @@ sys_mbox_fetch(sys_mbox_t mbox, void **m - /* If time != SYS_ARCH_TIMEOUT, a message was received before the timeout - occured. The time variable is set to the number of - milliseconds we waited for the message. */ -- if (time < timeouts->next->time) { -- timeouts->next->time -= time; -+ if (time_needed < timeouts->next->time) { -+ timeouts->next->time -= time_needed; - } else { - timeouts->next->time = 0; - } -@@ -125,7 +125,7 @@ sys_mbox_fetch(sys_mbox_t mbox, void **m - void - sys_sem_wait(sys_sem_t sem) - { -- u32_t time; -+ u32_t time_needed; - struct sys_timeouts *timeouts; - struct sys_timeo *tmptimeout; - sys_timeout_handler h; -@@ -139,12 +139,12 @@ sys_sem_wait(sys_sem_t sem) - sys_arch_sem_wait(sem, 0); - } else { - if (timeouts->next->time > 0) { -- time = sys_arch_sem_wait(sem, timeouts->next->time); -+ time_needed = sys_arch_sem_wait(sem, timeouts->next->time); - } else { -- time = SYS_ARCH_TIMEOUT; -+ time_needed = SYS_ARCH_TIMEOUT; - } - -- if (time == SYS_ARCH_TIMEOUT) { -+ if (time_needed == SYS_ARCH_TIMEOUT) { - /* If time == SYS_ARCH_TIMEOUT, a timeout occured before a message - could be fetched. We should now call the timeout handler and - deallocate the memory allocated for the timeout. */ -@@ -164,8 +164,8 @@ sys_sem_wait(sys_sem_t sem) - /* If time != SYS_ARCH_TIMEOUT, a message was received before the timeout - occured. The time variable is set to the number of - milliseconds we waited for the message. */ -- if (time < timeouts->next->time) { -- timeouts->next->time -= time; -+ if (time_needed < timeouts->next->time) { -+ timeouts->next->time -= time_needed; - } else { - timeouts->next->time = 0; - } -Index: src/core/tcp.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/tcp.c,v -retrieving revision 1.85 -retrieving revision 1.86 -diff -u -p -r1.85 -r1.86 ---- a/src/core/tcp.c 22 Jan 2008 21:15:15 -0000 1.85 -+++ b/src/core/tcp.c 26 Mar 2008 11:57:13 -0000 1.86 -@@ -509,7 +509,8 @@ tcp_connect(struct tcp_pcb *pcb, struct - pcb->rcv_wnd = TCP_WND; - pcb->rcv_ann_wnd = TCP_WND; - pcb->snd_wnd = TCP_WND; -- /* The send MSS is updated when an MSS option is received. */ -+ /* As initial send MSS, we use TCP_MSS but limit it to 536. -+ The send MSS is updated when an MSS option is received. */ - pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS; - #if TCP_CALCULATE_EFF_SEND_MSS - pcb->mss = tcp_eff_send_mss(pcb->mss, ipaddr); -@@ -991,7 +992,8 @@ tcp_alloc(u8_t prio) - pcb->rcv_ann_wnd = TCP_WND; - pcb->tos = 0; - pcb->ttl = TCP_TTL; -- /* The send MSS is updated when an MSS option is received. */ -+ /* As initial send MSS, we use TCP_MSS but limit it to 536. -+ The send MSS is updated when an MSS option is received. */ - pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS; - pcb->rto = 3000 / TCP_SLOW_INTERVAL; - pcb->sa = 0; -Index: src/core/tcp_in.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/tcp_in.c,v -retrieving revision 1.97 -retrieving revision 1.100 -diff -u -p -r1.97 -r1.100 ---- a/src/core/tcp_in.c 22 Jan 2008 21:15:15 -0000 1.97 -+++ b/src/core/tcp_in.c 24 Jun 2008 15:46:39 -0000 1.100 -@@ -511,7 +511,7 @@ tcp_process(struct tcp_pcb *pcb) - } - } else { - if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, -- pcb->rcv_nxt+pcb->rcv_ann_wnd)) { -+ pcb->rcv_nxt+pcb->rcv_wnd)) { - acceptable = 1; - } - } -@@ -1038,7 +1038,7 @@ tcp_receive(struct tcp_pcb *pcb) - and below rcv_nxt + rcv_wnd) in order to be further - processed. */ - if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, -- pcb->rcv_nxt + pcb->rcv_ann_wnd - 1)){ -+ pcb->rcv_nxt + pcb->rcv_wnd - 1)){ - if (pcb->rcv_nxt == seqno) { - accepted_inseq = 1; - /* The incoming segment is the next in sequence. We check if -@@ -1195,14 +1195,14 @@ tcp_receive(struct tcp_pcb *pcb) - } else { - pcb->ooseq = cseg; - } -- } -- tcp_seg_free(next); -- if (cseg->next != NULL) { -- next = cseg->next; -- if (TCP_SEQ_GT(seqno + cseg->len, next->tcphdr->seqno)) { -- /* We need to trim the incoming segment. */ -- cseg->len = (u16_t)(next->tcphdr->seqno - seqno); -- pbuf_realloc(cseg->p, cseg->len); -+ tcp_seg_free(next); -+ if (cseg->next != NULL) { -+ next = cseg->next; -+ if (TCP_SEQ_GT(seqno + cseg->len, next->tcphdr->seqno)) { -+ /* We need to trim the incoming segment. */ -+ cseg->len = (u16_t)(next->tcphdr->seqno - seqno); -+ pbuf_realloc(cseg->p, cseg->len); -+ } - } - } - break; -@@ -1282,10 +1282,7 @@ tcp_receive(struct tcp_pcb *pcb) - - } - } else { -- if(!TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, -- pcb->rcv_nxt + pcb->rcv_ann_wnd-1)){ -- tcp_ack_now(pcb); -- } -+ tcp_ack_now(pcb); - } - } else { - /* Segments with length 0 is taken care of here. Segments that -@@ -1331,7 +1328,8 @@ tcp_parseopt(struct tcp_pcb *pcb) - opts[c + 1] == 0x04) { - /* An MSS option with the right option length. */ - mss = (opts[c + 2] << 8) | opts[c + 3]; -- pcb->mss = mss > TCP_MSS? TCP_MSS: mss; -+ /* Limit the mss to the configured TCP_MSS and prevent division by zero */ -+ pcb->mss = ((mss > TCP_MSS) || (mss == 0)) ? TCP_MSS : mss; - - /* And we are done processing options. */ - break; -Index: src/core/ipv4/autoip.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/ipv4/autoip.c,v -retrieving revision 1.16 -retrieving revision 1.17 -diff -u -p -r1.16 -r1.17 ---- a/src/core/ipv4/autoip.c 26 Jan 2008 16:11:40 -0000 1.16 -+++ b/src/core/ipv4/autoip.c 17 Jun 2008 20:16:23 -0000 1.17 -@@ -395,8 +395,8 @@ autoip_arp_reply(struct netif *netif, st - /* Copy struct ip_addr2 to aligned ip_addr, to support compilers without - * structure packing (not using structure copy which breaks strict-aliasing rules). - */ -- MEMCPY(&sipaddr, &hdr->sipaddr, sizeof(sipaddr)); -- MEMCPY(&dipaddr, &hdr->dipaddr, sizeof(dipaddr)); -+ SMEMCPY(&sipaddr, &hdr->sipaddr, sizeof(sipaddr)); -+ SMEMCPY(&dipaddr, &hdr->dipaddr, sizeof(dipaddr)); - - if ((netif->autoip->state == AUTOIP_STATE_PROBING) || - ((netif->autoip->state == AUTOIP_STATE_ANNOUNCING) && -Index: src/core/ipv4/inet_chksum.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/ipv4/inet_chksum.c,v -retrieving revision 1.4 -retrieving revision 1.5 -diff -u -p -r1.4 -r1.5 ---- a/src/core/ipv4/inet_chksum.c 10 Mar 2008 16:12:31 -0000 1.4 -+++ b/src/core/ipv4/inet_chksum.c 17 Jun 2008 20:06:25 -0000 1.5 -@@ -41,8 +41,6 @@ - #include "lwip/inet_chksum.h" - #include "lwip/inet.h" - --#include <string.h> -- - /* These are some reference implementations of the checksum algorithm, with the - * aim of being simple, correct and fully portable. Checksumming is the - * first thing you would want to optimize for your platform. If you create -@@ -65,6 +63,11 @@ - # define LWIP_CHKSUM_ALGORITHM 0 - #endif - -+/** Like the name says... */ -+#define SWAP_BYTES_IN_WORD(w) ((w & 0xff) << 8) | ((w & 0xff00) >> 8) -+/** Split an u32_t in two u16_ts and add them up */ -+#define FOLD_U32T(u) ((u >> 16) + (u & 0x0000ffffUL)) -+ - #if (LWIP_CHKSUM_ALGORITHM == 1) /* Version #1 */ - /** - * lwip checksum -@@ -86,8 +89,7 @@ lwip_standard_chksum(void *dataptr, u16_ - acc = 0; - /* dataptr may be at odd or even addresses */ - octetptr = (u8_t*)dataptr; -- while (len > 1) -- { -+ while (len > 1) { - /* declare first octet as most significant - thus assume network order, ignoring host order */ - src = (*octetptr) << 8; -@@ -98,8 +100,7 @@ lwip_standard_chksum(void *dataptr, u16_ - acc += src; - len -= 2; - } -- if (len > 0) -- { -+ if (len > 0) { - /* accumulate remaining octet */ - src = (*octetptr) << 8; - acc += src; -@@ -154,19 +155,22 @@ lwip_standard_chksum(void *dataptr, int - } - - /* Consume left-over byte, if any */ -- if (len > 0) -+ if (len > 0) { - ((u8_t *)&t)[0] = *(u8_t *)ps;; -+ } - - /* Add end bytes */ - sum += t; - -- /* Fold 32-bit sum to 16 bits */ -- while ((sum >> 16) != 0) -- sum = (sum & 0xffff) + (sum >> 16); -+ /* Fold 32-bit sum to 16 bits -+ calling this twice is propably faster than if statements... */ -+ sum = FOLD_U32T(sum); -+ sum = FOLD_U32T(sum); - - /* Swap if alignment was odd */ -- if (odd) -- sum = ((sum & 0xff) << 8) | ((sum & 0xff00) >> 8); -+ if (odd) { -+ sum = SWAP_BYTES_IN_WORD(sum); -+ } - - return sum; - } -@@ -211,18 +215,20 @@ lwip_standard_chksum(void *dataptr, int - - while (len > 7) { - tmp = sum + *pl++; /* ping */ -- if (tmp < sum) -+ if (tmp < sum) { - tmp++; /* add back carry */ -+ } - - sum = tmp + *pl++; /* pong */ -- if (sum < tmp) -+ if (sum < tmp) { - sum++; /* add back carry */ -+ } - - len -= 8; - } - - /* make room in upper bits */ -- sum = (sum >> 16) + (sum & 0xffff); -+ sum = FOLD_U32T(sum); - - ps = (u16_t *)pl; - -@@ -233,16 +239,20 @@ lwip_standard_chksum(void *dataptr, int - } - - /* dangling tail byte remaining? */ -- if (len > 0) /* include odd byte */ -+ if (len > 0) { /* include odd byte */ - ((u8_t *)&t)[0] = *(u8_t *)ps; -+ } - - sum += t; /* add end bytes */ - -- while ((sum >> 16) != 0) /* combine halves */ -- sum = (sum >> 16) + (sum & 0xffff); -+ /* Fold 32-bit sum to 16 bits -+ calling this twice is propably faster than if statements... */ -+ sum = FOLD_U32T(sum); -+ sum = FOLD_U32T(sum); - -- if (odd) -- sum = ((sum & 0xff) << 8) | ((sum & 0xff00) >> 8); -+ if (odd) { -+ sum = SWAP_BYTES_IN_WORD(sum); -+ } - - return sum; - } -@@ -277,18 +287,18 @@ inet_chksum_pseudo(struct pbuf *p, - (void *)q, (void *)q->next)); - acc += LWIP_CHKSUM(q->payload, q->len); - /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/ -- while ((acc >> 16) != 0) { -- acc = (acc & 0xffffUL) + (acc >> 16); -- } -+ /* just executing this next line is probably faster that the if statement needed -+ to check whether we really need to execute it, and does no harm */ -+ acc = FOLD_U32T(acc); - if (q->len % 2 != 0) { - swapped = 1 - swapped; -- acc = ((acc & 0xff) << 8) | ((acc & 0xff00UL) >> 8); -+ acc = SWAP_BYTES_IN_WORD(acc); - } - /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/ - } - - if (swapped) { -- acc = ((acc & 0xff) << 8) | ((acc & 0xff00UL) >> 8); -+ acc = SWAP_BYTES_IN_WORD(acc); - } - acc += (src->addr & 0xffffUL); - acc += ((src->addr >> 16) & 0xffffUL); -@@ -297,9 +307,10 @@ inet_chksum_pseudo(struct pbuf *p, - acc += (u32_t)htons((u16_t)proto); - acc += (u32_t)htons(proto_len); - -- while ((acc >> 16) != 0) { -- acc = (acc & 0xffffUL) + (acc >> 16); -- } -+ /* Fold 32-bit sum to 16 bits -+ calling this twice is propably faster than if statements... */ -+ acc = FOLD_U32T(acc); -+ acc = FOLD_U32T(acc); - LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc)); - return (u16_t)~(acc & 0xffffUL); - } -@@ -340,18 +351,17 @@ inet_chksum_pseudo_partial(struct pbuf * - chksum_len -= chklen; - LWIP_ASSERT("delete me", chksum_len < 0x7fff); - /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/ -- while ((acc >> 16) != 0) { -- acc = (acc & 0xffffUL) + (acc >> 16); -- } -+ /* fold the upper bit down */ -+ acc = FOLD_U32T(acc); - if (q->len % 2 != 0) { - swapped = 1 - swapped; -- acc = ((acc & 0xff) << 8) | ((acc & 0xff00UL) >> 8); -+ acc = SWAP_BYTES_IN_WORD(acc); - } - /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/ - } - - if (swapped) { -- acc = ((acc & 0xff) << 8) | ((acc & 0xff00UL) >> 8); -+ acc = SWAP_BYTES_IN_WORD(acc); - } - acc += (src->addr & 0xffffUL); - acc += ((src->addr >> 16) & 0xffffUL); -@@ -360,9 +370,10 @@ inet_chksum_pseudo_partial(struct pbuf * - acc += (u32_t)htons((u16_t)proto); - acc += (u32_t)htons(proto_len); - -- while ((acc >> 16) != 0) { -- acc = (acc & 0xffffUL) + (acc >> 16); -- } -+ /* Fold 32-bit sum to 16 bits -+ calling this twice is propably faster than if statements... */ -+ acc = FOLD_U32T(acc); -+ acc = FOLD_U32T(acc); - LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc)); - return (u16_t)~(acc & 0xffffUL); - } -@@ -380,13 +391,7 @@ inet_chksum_pseudo_partial(struct pbuf * - u16_t - inet_chksum(void *dataptr, u16_t len) - { -- u32_t acc; -- -- acc = LWIP_CHKSUM(dataptr, len); -- while ((acc >> 16) != 0) { -- acc = (acc & 0xffff) + (acc >> 16); -- } -- return (u16_t)~(acc & 0xffff); -+ return ~LWIP_CHKSUM(dataptr, len); - } - - /** -@@ -407,17 +412,15 @@ inet_chksum_pbuf(struct pbuf *p) - swapped = 0; - for(q = p; q != NULL; q = q->next) { - acc += LWIP_CHKSUM(q->payload, q->len); -- while ((acc >> 16) != 0) { -- acc = (acc & 0xffffUL) + (acc >> 16); -- } -+ acc = FOLD_U32T(acc); - if (q->len % 2 != 0) { - swapped = 1 - swapped; -- acc = (acc & 0x00ffUL << 8) | (acc & 0xff00UL >> 8); -+ acc = SWAP_BYTES_IN_WORD(acc); - } - } - - if (swapped) { -- acc = ((acc & 0x00ffUL) << 8) | ((acc & 0xff00UL) >> 8); -+ acc = SWAP_BYTES_IN_WORD(acc); - } - return (u16_t)~(acc & 0xffffUL); - } -Index: src/core/ipv4/ip.c -=================================================================== -RCS file: /sources/lwip/lwip/src/core/ipv4/ip.c,v -retrieving revision 1.66 -retrieving revision 1.68 -diff -u -p -r1.66 -r1.68 ---- a/src/core/ipv4/ip.c 14 Jan 2008 20:53:23 -0000 1.66 -+++ b/src/core/ipv4/ip.c 17 Jun 2008 19:39:22 -0000 1.68 -@@ -531,9 +531,19 @@ ip_output_if(struct pbuf *p, struct ip_a - LWIP_DEBUGF(IP_DEBUG, ("ip_output_if: %c%c%"U16_F"\n", netif->name[0], netif->name[1], netif->num)); - ip_debug_print(p); - -- LWIP_DEBUGF(IP_DEBUG, ("netif->output()")); -+#if (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF) -+ if (ip_addr_cmp(dest, &netif->ip_addr)) { -+ /* Packet to self, enqueue it for loopback */ -+ LWIP_DEBUGF(IP_DEBUG, ("netif_loop_output()")); -+ -+ return netif_loop_output(netif, p, dest); -+ } else -+#endif /* (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF) */ -+ { -+ LWIP_DEBUGF(IP_DEBUG, ("netif->output()")); - -- return netif->output(netif, p, dest); -+ return netif->output(netif, p, dest); -+ } - } - - /** -Index: src/include/lwip/debug.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/debug.h,v -retrieving revision 1.37 -retrieving revision 1.39 -diff -u -p -r1.37 -r1.39 ---- a/src/include/lwip/debug.h 22 Sep 2007 11:16:07 -0000 1.37 -+++ b/src/include/lwip/debug.h 16 Jul 2008 20:36:22 -0000 1.39 -@@ -61,26 +61,28 @@ - #define LWIP_DBG_HALT 0x08U - - #ifndef LWIP_NOASSERT --#define LWIP_ASSERT(x,y) do { if(!(y)) LWIP_PLATFORM_ASSERT(x); } while(0) -+#define LWIP_ASSERT(message, assertion) do { if(!(assertion)) \ -+ LWIP_PLATFORM_ASSERT(message); } while(0) - #else /* LWIP_NOASSERT */ --#define LWIP_ASSERT(x,y) -+#define LWIP_ASSERT(message, assertion) - #endif /* LWIP_NOASSERT */ - --/** print "m" message only if "e" is true, and execute "h" expression */ -+/** if "expression" isn't true, then print "message" and execute "handler" expression */ - #ifndef LWIP_ERROR --#define LWIP_ERROR(m,e,h) do { if (!(e)) { LWIP_PLATFORM_ASSERT(m); h;}} while(0) -+#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \ -+ LWIP_PLATFORM_ASSERT(message); handler;}} while(0) - #endif /* LWIP_ERROR */ - - #ifdef LWIP_DEBUG - /** print debug message only if debug message type is enabled... - * AND is of correct type AND is at least LWIP_DBG_LEVEL - */ --#define LWIP_DEBUGF(debug,x) do { \ -+#define LWIP_DEBUGF(debug, message) do { \ - if ( \ - ((debug) & LWIP_DBG_ON) && \ - ((debug) & LWIP_DBG_TYPES_ON) && \ - ((s16_t)((debug) & LWIP_DBG_MASK_LEVEL) >= LWIP_DBG_MIN_LEVEL)) { \ -- LWIP_PLATFORM_DIAG(x); \ -+ LWIP_PLATFORM_DIAG(message); \ - if ((debug) & LWIP_DBG_HALT) { \ - while(1); \ - } \ -@@ -88,7 +90,7 @@ - } while(0) - - #else /* LWIP_DEBUG */ --#define LWIP_DEBUGF(debug,x) -+#define LWIP_DEBUGF(debug, message) - #endif /* LWIP_DEBUG */ - - #endif /* __LWIP_DEBUG_H__ */ -Index: src/include/lwip/err.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/err.h,v -retrieving revision 1.13 -retrieving revision 1.15 -diff -u -p -r1.13 -r1.15 ---- a/src/include/lwip/err.h 13 Dec 2007 23:06:50 -0000 1.13 -+++ b/src/include/lwip/err.h 17 Jun 2008 20:27:32 -0000 1.15 -@@ -33,37 +33,43 @@ - #define __LWIP_ERR_H__ - - #include "lwip/opt.h" -+#include "lwip/arch.h" - - #ifdef __cplusplus - extern "C" { - #endif - --typedef s8_t err_t; -+/** Define LWIP_ERR_T in cc.h if you want to use -+ * a different type for your platform (must be signed). */ -+#ifdef LWIP_ERR_T -+typedef LWIP_ERR_T err_t; -+#else /* LWIP_ERR_T */ -+ typedef s8_t err_t; -+#endif /* LWIP_ERR_T*/ - - /* Definitions for error constants. */ - - #define ERR_OK 0 /* No error, everything OK. */ - #define ERR_MEM -1 /* Out of memory error. */ - #define ERR_BUF -2 /* Buffer error. */ --#define ERR_RTE -3 /* Routing problem. */ -+#define ERR_TIMEOUT -3 /* Timeout. */ -+#define ERR_RTE -4 /* Routing problem. */ - - #define ERR_IS_FATAL(e) ((e) < ERR_RTE) - --#define ERR_ABRT -4 /* Connection aborted. */ --#define ERR_RST -5 /* Connection reset. */ --#define ERR_CLSD -6 /* Connection closed. */ --#define ERR_CONN -7 /* Not connected. */ -+#define ERR_ABRT -5 /* Connection aborted. */ -+#define ERR_RST -6 /* Connection reset. */ -+#define ERR_CLSD -7 /* Connection closed. */ -+#define ERR_CONN -8 /* Not connected. */ - --#define ERR_VAL -8 /* Illegal value. */ -+#define ERR_VAL -9 /* Illegal value. */ - --#define ERR_ARG -9 /* Illegal argument. */ -+#define ERR_ARG -10 /* Illegal argument. */ - --#define ERR_USE -10 /* Address in use. */ -+#define ERR_USE -11 /* Address in use. */ - --#define ERR_IF -11 /* Low-level netif error */ --#define ERR_ISCONN -12 /* Already connected. */ -- --#define ERR_TIMEOUT -13 /* Timeout. */ -+#define ERR_IF -12 /* Low-level netif error */ -+#define ERR_ISCONN -13 /* Already connected. */ - - #define ERR_INPROGRESS -14 /* Operation in progress */ - -Index: src/include/lwip/mem.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/mem.h,v -retrieving revision 1.21 -retrieving revision 1.22 -diff -u -p -r1.21 -r1.22 ---- a/src/include/lwip/mem.h 4 Mar 2008 16:31:32 -0000 1.21 -+++ b/src/include/lwip/mem.h 30 May 2008 11:37:15 -0000 1.22 -@@ -50,16 +50,16 @@ typedef size_t mem_size_t; - * allow these defines to be overridden. - */ - #ifndef mem_free --#define mem_free(x) free(x) -+#define mem_free free - #endif - #ifndef mem_malloc --#define mem_malloc(x) malloc(x) -+#define mem_malloc malloc - #endif - #ifndef mem_calloc --#define mem_calloc(x, y) calloc(x, y) -+#define mem_calloc calloc - #endif - #ifndef mem_realloc --#define mem_realloc(x, size) (x) -+#define mem_realloc realloc - #endif - #else /* MEM_LIBC_MALLOC */ - -Index: src/include/lwip/netif.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/netif.h,v -retrieving revision 1.43 -retrieving revision 1.46 -diff -u -p -r1.43 -r1.46 ---- a/src/include/lwip/netif.h 9 Oct 2007 19:59:59 -0000 1.43 -+++ b/src/include/lwip/netif.h 19 Jun 2008 16:27:23 -0000 1.46 -@@ -34,6 +34,8 @@ - - #include "lwip/opt.h" - -+#define ENABLE_LOOPBACK (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF) -+ - #include "lwip/err.h" - - #include "lwip/ip_addr.h" -@@ -165,6 +167,14 @@ struct netif { - #if LWIP_NETIF_HWADDRHINT - u8_t *addr_hint; - #endif /* LWIP_NETIF_HWADDRHINT */ -+#if ENABLE_LOOPBACK -+ /* List of packets to be queued for ourselves. */ -+ struct pbuf *loop_first; -+ struct pbuf *loop_last; -+#if LWIP_LOOPBACK_MAX_PBUFS -+ u16_t loop_cnt_current; -+#endif /* LWIP_LOOPBACK_MAX_PBUFS */ -+#endif /* ENABLE_LOOPBACK */ - }; - - #if LWIP_SNMP -@@ -242,4 +252,12 @@ void netif_set_link_callback(struct neti - } - #endif - -+#if ENABLE_LOOPBACK -+err_t netif_loop_output(struct netif *netif, struct pbuf *p, struct ip_addr *dest_ip); -+void netif_poll(struct netif *netif); -+#if !LWIP_NETIF_LOOPBACK_MULTITHREADING -+void netif_poll_all(void); -+#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ -+#endif /* ENABLE_LOOPBACK */ -+ - #endif /* __LWIP_NETIF_H__ */ -Index: src/include/lwip/opt.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/opt.h,v -retrieving revision 1.116 -retrieving revision 1.122 -diff -u -p -r1.116 -r1.122 ---- a/src/include/lwip/opt.h 31 Jan 2008 18:19:29 -0000 1.116 -+++ b/src/include/lwip/opt.h 30 Jun 2008 18:16:52 -0000 1.122 -@@ -155,6 +155,27 @@ - #define MEMP_USE_CUSTOM_POOLS 0 - #endif - -+/** -+ * Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from -+ * interrupt context (or another context that doesn't allow waiting for a -+ * semaphore). -+ * If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT, -+ * while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs -+ * with each loop so that mem_free can run. -+ * -+ * ATTENTION: As you can see from the above description, this leads to dis-/ -+ * enabling interrupts often, which can be slow! Also, on low memory, mem_malloc -+ * can need longer. -+ * -+ * If you don't want that, at least for NO_SYS=0, you can still use the following -+ * functions to enqueue a deallocation call which then runs in the tcpip_thread -+ * context: -+ * - pbuf_free_callback(p); -+ * - mem_free_callback(m); -+ */ -+#ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT -+#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0 -+#endif - - /* - ------------------------------------------------ -@@ -815,6 +836,39 @@ - #define LWIP_NETIF_HWADDRHINT 0 - #endif - -+/** -+ * LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP -+ * address equal to the netif IP address, looping them back up the stack. -+ */ -+#ifndef LWIP_NETIF_LOOPBACK -+#define LWIP_NETIF_LOOPBACK 0 -+#endif -+ -+/** -+ * LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback -+ * sending for each netif (0 = disabled) -+ */ -+#ifndef LWIP_LOOPBACK_MAX_PBUFS -+#define LWIP_LOOPBACK_MAX_PBUFS 0 -+#endif -+ -+/** -+ * LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in -+ * the system, as netifs must change how they behave depending on this setting -+ * for the LWIP_NETIF_LOOPBACK option to work. -+ * Setting this is needed to avoid reentering non-reentrant functions like -+ * tcp_input(). -+ * LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a -+ * multithreaded environment like tcpip.c. In this case, netif->input() -+ * is called directly. -+ * LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup. -+ * The packets are put on a list and netif_poll() must be called in -+ * the main application loop. -+ */ -+#ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING -+#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS) -+#endif -+ - /* - ------------------------------------ - ---------- LOOPIF options ---------- -@@ -827,20 +881,16 @@ - #define LWIP_HAVE_LOOPIF 0 - #endif - -+/* -+ ------------------------------------ -+ ---------- SLIPIF options ---------- -+ ------------------------------------ -+*/ - /** -- * LWIP_LOOPIF_MULTITHREADING: Indicates whether threading is enabled in -- * the system, as LOOPIF must change how it behaves depending on this setting. -- * Setting this is needed to avoid reentering non-reentrant functions like -- * tcp_input(). -- * LWIP_LOOPIF_MULTITHREADING==1: Indicates that the user is using a -- * multithreaded environment like tcpip.c. In this case, netif->input() -- * is called directly. -- * LWIP_LOOPIF_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup. -- * The packets are put on a list and loopif_poll() must be called in -- * the main application loop. -+ * LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c - */ --#ifndef LWIP_LOOPIF_MULTITHREADING --#define LWIP_LOOPIF_MULTITHREADING 1 -+#ifndef LWIP_HAVE_SLIPIF -+#define LWIP_HAVE_SLIPIF 0 - #endif - - /* -Index: src/include/lwip/sio.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/sio.h,v -retrieving revision 1.7 -retrieving revision 1.8 -diff -u -p -r1.7 -r1.8 ---- a/src/include/lwip/sio.h 6 Sep 2007 16:43:44 -0000 1.7 -+++ b/src/include/lwip/sio.h 27 Mar 2008 18:06:02 -0000 1.8 -@@ -32,16 +32,24 @@ - * It needs to be implemented by those platforms which need SLIP or PPP - */ - -+#ifndef __SIO_H__ -+#define __SIO_H__ -+ - #include "lwip/arch.h" - - #ifdef __cplusplus - extern "C" { - #endif - -+/* If you want to define sio_fd_t elsewhere or differently, -+ define this in your cc.h file. */ - #ifndef __sio_fd_t_defined - typedef void * sio_fd_t; - #endif - -+/* The following functions can be defined to something else in your cc.h file -+ or be implemented in your custom sio.c file. */ -+ - #ifndef sio_open - sio_fd_t sio_open(u8_t); - #endif -@@ -69,3 +77,5 @@ void sio_read_abort(sio_fd_t); - #ifdef __cplusplus - } - #endif -+ -+#endif /* __SIO_H__ */ -Index: src/include/lwip/sockets.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/sockets.h,v -retrieving revision 1.38 -retrieving revision 1.39 -diff -u -p -r1.38 -r1.39 ---- a/src/include/lwip/sockets.h 2 Dec 2007 15:24:02 -0000 1.38 -+++ b/src/include/lwip/sockets.h 26 Apr 2008 10:46:23 -0000 1.39 -@@ -177,7 +177,22 @@ typedef struct ip_mreq { - } ip_mreq; - #endif /* LWIP_IGMP */ - --/* Unimplemented for now... */ -+/* -+ * The Type of Service provides an indication of the abstract -+ * parameters of the quality of service desired. These parameters are -+ * to be used to guide the selection of the actual service parameters -+ * when transmitting a datagram through a particular network. Several -+ * networks offer service precedence, which somehow treats high -+ * precedence traffic as more important than other traffic (generally -+ * by accepting only traffic above a certain precedence at time of high -+ * load). The major choice is a three way tradeoff between low-delay, -+ * high-reliability, and high-throughput. -+ * The use of the Delay, Throughput, and Reliability indications may -+ * increase the cost (in some sense) of the service. In many networks -+ * better performance for one of these parameters is coupled with worse -+ * performance on another. Except for very unusual cases at most two -+ * of these three indications should be set. -+ */ - #define IPTOS_TOS_MASK 0x1E - #define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK) - #define IPTOS_LOWDELAY 0x10 -@@ -187,7 +202,13 @@ typedef struct ip_mreq { - #define IPTOS_MINCOST IPTOS_LOWCOST - - /* -- * Definitions for IP precedence (also in ip_tos) (Unimplemented) -+ * The Network Control precedence designation is intended to be used -+ * within a network only. The actual use and control of that -+ * designation is up to each network. The Internetwork Control -+ * designation is intended for use by gateway control originators only. -+ * If the actual use of these precedence designations is of concern to -+ * a particular network, it is the responsibility of that network to -+ * control the access to, and use of, those precedence designations. - */ - #define IPTOS_PREC_MASK 0xe0 - #define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK) -Index: src/include/lwip/stats.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/stats.h,v -retrieving revision 1.19 -retrieving revision 1.23 -diff -u -p -r1.19 -r1.23 ---- a/src/include/lwip/stats.h 28 Nov 2007 21:25:07 -0000 1.19 -+++ b/src/include/lwip/stats.h 8 Jul 2008 09:15:57 -0000 1.23 -@@ -57,7 +57,6 @@ extern "C" { - - struct stats_proto { - STAT_COUNTER xmit; /* Transmitted packets. */ -- STAT_COUNTER rexmit; /* Retransmitted packets. */ - STAT_COUNTER recv; /* Received packets. */ - STAT_COUNTER fw; /* Forwarded packets. */ - STAT_COUNTER drop; /* Dropped packets. */ -@@ -87,7 +86,8 @@ struct stats_mem { - mem_size_t avail; - mem_size_t used; - mem_size_t max; -- mem_size_t err; -+ STAT_COUNTER err; -+ STAT_COUNTER illegal; - }; - - struct stats_syselem { -@@ -142,64 +142,138 @@ extern struct stats_ lwip_stats; - #define stats_init() /* Compatibility define, not init needed. */ - - #define STATS_INC(x) ++lwip_stats.x -+#define STATS_DEC(x) --lwip_stats.x - #else - #define stats_init() - #define STATS_INC(x) -+#define STATS_DEC(x) - #endif /* LWIP_STATS */ - - #if TCP_STATS - #define TCP_STATS_INC(x) STATS_INC(x) -+#define TCP_STATS_DISPLAY() stats_display_proto(&lwip_stats.tcp, "TCP") - #else - #define TCP_STATS_INC(x) -+#define TCP_STATS_DISPLAY() - #endif - - #if UDP_STATS - #define UDP_STATS_INC(x) STATS_INC(x) -+#define UDP_STATS_DISPLAY() stats_display_proto(&lwip_stats.udp, "UDP") - #else - #define UDP_STATS_INC(x) -+#define UDP_STATS_DISPLAY() - #endif - - #if ICMP_STATS - #define ICMP_STATS_INC(x) STATS_INC(x) -+#define ICMP_STATS_DISPLAY() stats_display_proto(&lwip_stats.icmp, "ICMP") - #else - #define ICMP_STATS_INC(x) -+#define ICMP_STATS_DISPLAY() - #endif - - #if IGMP_STATS - #define IGMP_STATS_INC(x) STATS_INC(x) -+#define IGMP_STATS_DISPLAY() stats_display_igmp(&lwip_stats.igmp) - #else - #define IGMP_STATS_INC(x) -+#define IGMP_STATS_DISPLAY() - #endif - - #if IP_STATS - #define IP_STATS_INC(x) STATS_INC(x) -+#define IP_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip, "IP") - #else - #define IP_STATS_INC(x) -+#define IP_STATS_DISPLAY() - #endif - - #if IPFRAG_STATS - #define IPFRAG_STATS_INC(x) STATS_INC(x) -+#define IPFRAG_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip_frag, "IP_FRAG") - #else - #define IPFRAG_STATS_INC(x) -+#define IPFRAG_STATS_DISPLAY() - #endif - - #if ETHARP_STATS - #define ETHARP_STATS_INC(x) STATS_INC(x) -+#define ETHARP_STATS_DISPLAY() stats_display_proto(&lwip_stats.etharp, "ETHARP") - #else - #define ETHARP_STATS_INC(x) -+#define ETHARP_STATS_DISPLAY() - #endif - - #if LINK_STATS - #define LINK_STATS_INC(x) STATS_INC(x) -+#define LINK_STATS_DISPLAY() stats_display_proto(&lwip_stats.link, "LINK") - #else - #define LINK_STATS_INC(x) -+#define LINK_STATS_DISPLAY() -+#endif -+ -+#if MEM_STATS -+#define MEM_STATS_AVAIL(x, y) lwip_stats.mem.x = y -+#define MEM_STATS_INC(x) STATS_INC(mem.x) -+#define MEM_STATS_INC_USED(x, y) do { lwip_stats.mem.used += y; \ -+ if (lwip_stats.mem.max < lwip_stats.mem.used) { \ -+ lwip_stats.mem.max = lwip_stats.mem.used; \ -+ } \ -+ } while(0) -+#define MEM_STATS_DEC_USED(x, y) lwip_stats.mem.x -= y -+#define MEM_STATS_DISPLAY() stats_display_mem(&lwip_stats.mem, "HEAP") -+#else -+#define MEM_STATS_AVAIL(x, y) -+#define MEM_STATS_INC(x) -+#define MEM_STATS_INC_USED(x, y) -+#define MEM_STATS_DEC_USED(x, y) -+#define MEM_STATS_DISPLAY() -+#endif -+ -+#if MEMP_STATS -+#define MEMP_STATS_AVAIL(x, i, y) lwip_stats.memp[i].x = y -+#define MEMP_STATS_INC(x, i) STATS_INC(memp[i].x) -+#define MEMP_STATS_DEC(x, i) STATS_DEC(memp[i].x) -+#define MEMP_STATS_INC_USED(x, i) do { ++lwip_stats.memp[i].used; \ -+ if (lwip_stats.memp[i].max < lwip_stats.memp[i].used) { \ -+ lwip_stats.memp[i].max = lwip_stats.memp[i].used; \ -+ } \ -+ } while(0) -+#define MEMP_STATS_DISPLAY(i) stats_display_memp(&lwip_stats.memp[i], i) -+#else -+#define MEMP_STATS_AVAIL(x, i, y) -+#define MEMP_STATS_INC(x, i) -+#define MEMP_STATS_DEC(x, i) -+#define MEMP_STATS_INC_USED(x, i) -+#define MEMP_STATS_DISPLAY(i) -+#endif -+ -+#if SYS_STATS -+#define SYS_STATS_INC(x) STATS_INC(sys.x) -+#define SYS_STATS_DEC(x) STATS_DEC(sys.x) -+#define SYS_STATS_DISPLAY() stats_display_sys(&lwip_stats.sys) -+#else -+#define SYS_STATS_INC(x) -+#define SYS_STATS_DEC(x) -+#define SYS_STATS_DISPLAY() - #endif - - /* Display of statistics */ - #if LWIP_STATS_DISPLAY - void stats_display(void); -+void stats_display_proto(struct stats_proto *proto, char *name); -+void stats_display_igmp(struct stats_igmp *igmp); -+void stats_display_mem(struct stats_mem *mem, char *name); -+void stats_display_memp(struct stats_mem *mem, int index); -+void stats_display_sys(struct stats_sys *sys); - #else - #define stats_display() -+#define stats_display_proto(proto, name) -+#define stats_display_igmp(igmp) -+#define stats_display_mem(mem, name) -+#define stats_display_memp(mem, index) -+#define stats_display_sys(sys) - #endif /* LWIP_STATS_DISPLAY */ - - #ifdef __cplusplus -Index: src/include/lwip/tcpip.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/lwip/tcpip.h,v -retrieving revision 1.24 -retrieving revision 1.27 -diff -u -p -r1.24 -r1.27 ---- a/src/include/lwip/tcpip.h 12 Jan 2008 11:52:22 -0000 1.24 -+++ b/src/include/lwip/tcpip.h 27 Jun 2008 20:34:55 -0000 1.27 -@@ -83,7 +83,11 @@ err_t tcpip_netifapi_lock(struct netifap - #endif /* LWIP_NETIF_API */ - - err_t tcpip_callback_with_block(void (*f)(void *ctx), void *ctx, u8_t block); --#define tcpip_callback(f,ctx) tcpip_callback_with_block(f,ctx,1) -+#define tcpip_callback(f, ctx) tcpip_callback_with_block(f, ctx, 1) -+ -+/* free pbufs or heap memory from another context without blocking */ -+err_t pbuf_free_callback(struct pbuf *p); -+err_t mem_free_callback(void *m); - - err_t tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg); - #define tcpip_untimeout(h, arg) tcpip_timeout(0xffffffff, h, arg) -Index: src/include/netif/loopif.h -=================================================================== -RCS file: /sources/lwip/lwip/src/include/netif/loopif.h,v -retrieving revision 1.7 -retrieving revision 1.9 -diff -u -p -r1.7 -r1.9 ---- a/src/include/netif/loopif.h 10 May 2007 10:59:20 -0000 1.7 -+++ b/src/include/netif/loopif.h 17 Jun 2008 20:12:22 -0000 1.9 -@@ -32,6 +32,7 @@ - #ifndef __NETIF_LOOPIF_H__ - #define __NETIF_LOOPIF_H__ - -+#include "lwip/opt.h" - #include "lwip/netif.h" - #include "lwip/err.h" - -@@ -39,9 +40,9 @@ - extern "C" { - #endif - --#if !LWIP_LOOPIF_MULTITHREADING --void loopif_poll(struct netif *netif); --#endif -+#if !LWIP_NETIF_LOOPBACK_MULTITHREADING -+#define loopif_poll netif_poll -+#endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ - - err_t loopif_init(struct netif *netif); - -Index: src/netif/etharp.c -=================================================================== -RCS file: /sources/lwip/lwip/src/netif/etharp.c,v -retrieving revision 1.145 -retrieving revision 1.148 -diff -u -p -r1.145 -r1.148 ---- a/src/netif/etharp.c 4 Mar 2008 13:41:24 -0000 1.145 -+++ b/src/netif/etharp.c 19 Jun 2008 16:40:59 -0000 1.148 -@@ -353,7 +353,7 @@ find_entry(struct ip_addr *ipaddr, u8_t - * 1) empty entry - * 2) oldest stable entry - * 3) oldest pending entry without queued packets -- * 4) oldest pending entry without queued packets -+ * 4) oldest pending entry with queued packets - * - * { ETHARP_TRY_HARD is set at this point } - */ -@@ -1130,7 +1130,14 @@ ethernet_input(struct pbuf *p, struct ne - - /* points to packet payload, which starts with an Ethernet header */ - ethhdr = p->payload; -- -+ LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, -+ ("ethernet_input: dest:%02x:%02x:%02x:%02x:%02x:%02x, src:%02x:%02x:%02x:%02x:%02x:%02x, type:%2hx\n", -+ (unsigned)ethhdr->dest.addr[0], (unsigned)ethhdr->dest.addr[1], (unsigned)ethhdr->dest.addr[2], -+ (unsigned)ethhdr->dest.addr[3], (unsigned)ethhdr->dest.addr[4], (unsigned)ethhdr->dest.addr[5], -+ (unsigned)ethhdr->src.addr[0], (unsigned)ethhdr->src.addr[1], (unsigned)ethhdr->src.addr[2], -+ (unsigned)ethhdr->src.addr[3], (unsigned)ethhdr->src.addr[4], (unsigned)ethhdr->src.addr[5], -+ (unsigned)htons(ethhdr->type))); -+ - switch (htons(ethhdr->type)) { - /* IP packet? */ - case ETHTYPE_IP: -@@ -1165,6 +1172,8 @@ ethernet_input(struct pbuf *p, struct ne - #endif /* PPPOE_SUPPORT */ - - default: -+ ETHARP_STATS_INC(etharp.proterr); -+ ETHARP_STATS_INC(etharp.drop); - pbuf_free(p); - p = NULL; - break; -Index: src/netif/loopif.c -=================================================================== -RCS file: /sources/lwip/lwip/src/netif/loopif.c,v -retrieving revision 1.26 -retrieving revision 1.27 -diff -u -p -r1.26 -r1.27 ---- a/src/netif/loopif.c 31 Aug 2007 10:14:09 -0000 1.26 -+++ b/src/netif/loopif.c 12 Jun 2008 20:10:10 -0000 1.27 -@@ -40,149 +40,8 @@ - #if LWIP_HAVE_LOOPIF - - #include "netif/loopif.h" --#include "lwip/pbuf.h" - #include "lwip/snmp.h" - --#include <string.h> -- --#if !LWIP_LOOPIF_MULTITHREADING -- --#include "lwip/sys.h" --#include "lwip/mem.h" -- --/* helper struct for the linked list of pbufs */ --struct loopif_private { -- struct pbuf *first; -- struct pbuf *last; --}; -- --/** -- * Call loopif_poll() in the main loop of your application. This is to prevent -- * reentering non-reentrant functions like tcp_input(). Packets passed to -- * loopif_output() are put on a list that is passed to netif->input() by -- * loopif_poll(). -- * -- * @param netif the lwip network interface structure for this loopif -- */ --void --loopif_poll(struct netif *netif) --{ -- SYS_ARCH_DECL_PROTECT(lev); -- struct pbuf *in, *in_end; -- struct loopif_private *priv = (struct loopif_private*)netif->state; -- -- LWIP_ERROR("priv != NULL", (priv != NULL), return;); -- -- do { -- /* Get a packet from the list. With SYS_LIGHTWEIGHT_PROT=1, this is protected */ -- SYS_ARCH_PROTECT(lev); -- in = priv->first; -- if(in) { -- in_end = in; -- while(in_end->len != in_end->tot_len) { -- LWIP_ASSERT("bogus pbuf: len != tot_len but next == NULL!", in_end->next != NULL); -- in_end = in_end->next; -- } -- /* 'in_end' now points to the last pbuf from 'in' */ -- if(in_end == priv->last) { -- /* this was the last pbuf in the list */ -- priv->first = priv->last = NULL; -- } else { -- /* pop the pbuf off the list */ -- priv->first = in_end->next; -- LWIP_ASSERT("should not be null since first != last!", priv->first != NULL); -- } -- } -- SYS_ARCH_UNPROTECT(lev); -- -- if(in != NULL) { -- if(in_end->next != NULL) { -- /* De-queue the pbuf from its successors on the 'priv' list. */ -- in_end->next = NULL; -- } -- if(netif->input(in, netif) != ERR_OK) { -- pbuf_free(in); -- } -- /* Don't reference the packet any more! */ -- in = NULL; -- in_end = NULL; -- } -- /* go on while there is a packet on the list */ -- } while(priv->first != NULL); --} --#endif /* LWIP_LOOPIF_MULTITHREADING */ -- --/** -- * Send an IP packet over the loopback interface. -- * The pbuf is simply copied and handed back to netif->input. -- * In multithreaded mode, this is done directly since netif->input must put -- * the packet on a queue. -- * In callback mode, the packet is put on an internal queue and is fed to -- * netif->input by loopif_poll(). -- * -- * @param netif the lwip network interface structure for this loopif -- * @param p the (IP) packet to 'send' -- * @param ipaddr the ip address to send the packet to (not used for loopif) -- * @return ERR_OK if the packet has been sent -- * ERR_MEM if the pbuf used to copy the packet couldn't be allocated -- */ --static err_t --loopif_output(struct netif *netif, struct pbuf *p, -- struct ip_addr *ipaddr) --{ --#if !LWIP_LOOPIF_MULTITHREADING -- SYS_ARCH_DECL_PROTECT(lev); -- struct loopif_private *priv; -- struct pbuf *last; --#endif /* LWIP_LOOPIF_MULTITHREADING */ -- struct pbuf *r; -- err_t err; -- -- LWIP_UNUSED_ARG(ipaddr); -- -- /* Allocate a new pbuf */ -- r = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM); -- if (r == NULL) { -- return ERR_MEM; -- } -- -- /* Copy the whole pbuf queue p into the single pbuf r */ -- if ((err = pbuf_copy(r, p)) != ERR_OK) { -- pbuf_free(r); -- r = NULL; -- return err; -- } -- --#if LWIP_LOOPIF_MULTITHREADING -- /* Multithreading environment, netif->input() is supposed to put the packet -- into a mailbox, so we can safely call it here without risking to re-enter -- functions that are not reentrant (TCP!!!) */ -- if(netif->input(r, netif) != ERR_OK) { -- pbuf_free(r); -- r = NULL; -- } --#else /* LWIP_LOOPIF_MULTITHREADING */ -- /* Raw API without threads: put the packet on a linked list which gets emptied -- through calling loopif_poll(). */ -- priv = (struct loopif_private*)netif->state; -- -- /* let last point to the last pbuf in chain r */ -- for (last = r; last->next != NULL; last = last->next); -- SYS_ARCH_PROTECT(lev); -- if(priv->first != NULL) { -- LWIP_ASSERT("if first != NULL, last must also be != NULL", priv->last != NULL); -- priv->last->next = r; -- priv->last = last; -- } else { -- priv->first = r; -- priv->last = last; -- } -- SYS_ARCH_UNPROTECT(lev); --#endif /* LWIP_LOOPIF_MULTITHREADING */ -- -- return ERR_OK; --} -- - /** - * Initialize a lwip network interface structure for a loopback interface - * -@@ -193,16 +52,6 @@ loopif_output(struct netif *netif, struc - err_t - loopif_init(struct netif *netif) - { --#if !LWIP_LOOPIF_MULTITHREADING -- struct loopif_private *priv; -- -- priv = (struct loopif_private*)mem_malloc(sizeof(struct loopif_private)); -- if(priv == NULL) -- return ERR_MEM; -- priv->first = priv->last = NULL; -- netif->state = priv; --#endif /* LWIP_LOOPIF_MULTITHREADING */ -- - /* initialize the snmp variables and counters inside the struct netif - * ifSpeed: no assumption can be made! - */ -@@ -210,7 +59,7 @@ loopif_init(struct netif *netif) - - netif->name[0] = 'l'; - netif->name[1] = 'o'; -- netif->output = loopif_output; -+ netif->output = netif_loop_output; - return ERR_OK; - } - -Index: src/netif/slipif.c -=================================================================== -RCS file: /sources/lwip/lwip/src/netif/slipif.c,v -retrieving revision 1.29 -retrieving revision 1.30 -diff -u -p -r1.29 -r1.30 ---- a/src/netif/slipif.c 30 Nov 2007 17:22:21 -0000 1.29 -+++ b/src/netif/slipif.c 17 Jun 2008 20:14:05 -0000 1.30 -@@ -44,6 +44,9 @@ - - #include "netif/slipif.h" - #include "lwip/opt.h" -+ -+#if LWIP_HAVE_SLIPIF -+ - #include "lwip/def.h" - #include "lwip/pbuf.h" - #include "lwip/sys.h" -@@ -273,3 +276,4 @@ slipif_init(struct netif *netif) - sys_thread_new(SLIPIF_THREAD_NAME, slipif_loop, netif, SLIPIF_THREAD_STACKSIZE, SLIPIF_THREAD_PRIO); - return ERR_OK; - } -+#endif /* LWIP_HAVE_SLIPIF */ diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch deleted file mode 100644 index a3745bda6..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/mini-os_udivmoddi4-gcc7.patch +++ /dev/null @@ -1,43 +0,0 @@ -From d991bdbc062248221511ecb795617c36b37e1d2e Mon Sep 17 00:00:00 2001 -From: Wei Liu <wei.liu2@citrix.com> -Date: Wed, 9 Aug 2017 13:15:48 +0100 -Subject: [PATCH] lib/math.c: implement __udivmoddi4 - -Some code compiled by gcc 7 requires this. - -Signed-off-by: Wei Liu <wei.liu2@citrix.com> -Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> ---- - lib/math.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/lib/math.c b/lib/math.c -index 561393e..b98cc1d 100644 ---- a/lib/math.c -+++ b/lib/math.c -@@ -6,6 +6,7 @@ - * File: math.c - * Author: Rolf Neugebauer (neugebar@dcs.gla.ac.uk) - * Changes: -+ * Implement __udivmoddi4 (Wei Liu <wei.liu2@citrix.com>) - * - * Date: Aug 2003 - * -@@ -397,6 +398,15 @@ __umoddi3(u_quad_t a, u_quad_t b) - } - - /* -+ * Returns the quotient and places remainder in r -+ */ -+u_quad_t -+__udivmoddi4(u_quad_t a, u_quad_t b, u_quad_t *r) -+{ -+ return __qdivrem(a, b, r); -+} -+ -+/* - * From - * moddi3.c - */ --- -2.11.0 diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/newlib-chk.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/newlib-chk.patch deleted file mode 100644 index a5d014958..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/newlib-chk.patch +++ /dev/null @@ -1,155 +0,0 @@ ---- a/newlib/libc/stdio/fprintf_chk.c 1969-12-31 19:00:00.000000000 -0500 -+++ b/newlib/libc/stdio/fprintf_chk.c 2009-02-26 19:02:53.000000000 -0500 -@@ -0,0 +1,21 @@ -+#include <stdarg.h> -+#include <stdio.h> -+ -+/* -+ * Stub implementation of __fprintf_chk adapted from glibc 2.7. This -+ * doesn't actually implement any buffer overflow protection. It just makes -+ * the linker happy :) -+*/ -+int -+__fprintf_chk (FILE *fp, int flag, const char *format, ...) -+{ -+ va_list ap; -+ int done; -+ -+ va_start (ap, format); -+ done = vfprintf (fp, format, ap); -+ va_end (ap); -+ -+ return done; -+} -+ ---- a/newlib/libc/stdio/Makefile.am 2007-08-02 16:23:06.000000000 -0400 -+++ b/newlib/libc/stdio/Makefile.am 2009-02-26 18:14:53.000000000 -0500 -@@ -20,6 +20,7 @@ - flags.c \ - fopen.c \ - fprintf.c \ -+ fprintf_chk.c \ - fputc.c \ - fputs.c \ - fread.c \ -@@ -65,6 +66,7 @@ - sniprintf.c \ - snprintf.c \ - sprintf.c \ -+ sprintf_chk.c \ - sscanf.c \ - stdio.c \ - tmpfile.c \ ---- a/newlib/libc/stdio/Makefile.in 2007-12-19 17:36:38.000000000 -0500 -+++ b/newlib/libc/stdio/Makefile.in 2009-02-26 18:43:52.000000000 -0500 -@@ -63,7 +63,8 @@ - lib_a-fgets.$(OBJEXT) lib_a-fileno.$(OBJEXT) \ - lib_a-findfp.$(OBJEXT) lib_a-fiprintf.$(OBJEXT) \ - lib_a-flags.$(OBJEXT) lib_a-fopen.$(OBJEXT) \ -- lib_a-fprintf.$(OBJEXT) lib_a-fputc.$(OBJEXT) \ -+ lib_a-fprintf.$(OBJEXT) lib_a-fprintf_chk.$(OBJEXT) \ -+ lib_a-fputc.$(OBJEXT) \ - lib_a-fputs.$(OBJEXT) lib_a-fread.$(OBJEXT) \ - lib_a-freopen.$(OBJEXT) lib_a-fscanf.$(OBJEXT) \ - lib_a-fiscanf.$(OBJEXT) lib_a-fseek.$(OBJEXT) \ -@@ -86,6 +87,7 @@ - lib_a-setvbuf.$(OBJEXT) lib_a-siprintf.$(OBJEXT) \ - lib_a-siscanf.$(OBJEXT) lib_a-sniprintf.$(OBJEXT) \ - lib_a-snprintf.$(OBJEXT) lib_a-sprintf.$(OBJEXT) \ -+ lib_a-sprintf_chk.$(OBJEXT) \ - lib_a-sscanf.$(OBJEXT) lib_a-stdio.$(OBJEXT) \ - lib_a-tmpfile.$(OBJEXT) lib_a-tmpnam.$(OBJEXT) \ - lib_a-ungetc.$(OBJEXT) lib_a-vdiprintf.$(OBJEXT) \ -@@ -122,15 +124,15 @@ - LTLIBRARIES = $(noinst_LTLIBRARIES) - am__objects_4 = clearerr.lo fclose.lo fdopen.lo feof.lo ferror.lo \ - fflush.lo fgetc.lo fgetpos.lo fgets.lo fileno.lo findfp.lo \ -- fiprintf.lo flags.lo fopen.lo fprintf.lo fputc.lo fputs.lo \ -- fread.lo freopen.lo fscanf.lo fiscanf.lo fseek.lo fsetpos.lo \ -+ fiprintf.lo flags.lo fopen.lo fprintf.lo fprintf_chk.lo fputc.lo \ -+ fputs.lo fread.lo freopen.lo fscanf.lo fiscanf.lo fseek.lo fsetpos.lo \ - ftell.lo fvwrite.lo fwalk.lo fwrite.lo getc.lo getchar.lo \ - getc_u.lo getchar_u.lo getdelim.lo getline.lo gets.lo \ - iprintf.lo iscanf.lo makebuf.lo perror.lo printf.lo putc.lo \ - putchar.lo putc_u.lo putchar_u.lo puts.lo refill.lo remove.lo \ - rename.lo rewind.lo rget.lo scanf.lo sccl.lo setbuf.lo \ - setbuffer.lo setlinebuf.lo setvbuf.lo siprintf.lo siscanf.lo \ -- sniprintf.lo snprintf.lo sprintf.lo sscanf.lo stdio.lo \ -+ sniprintf.lo snprintf.lo sprintf.lo sprintf_chk.lo sscanf.lo stdio.lo \ - tmpfile.lo tmpnam.lo ungetc.lo vdiprintf.lo vdprintf.lo \ - viprintf.lo viscanf.lo vprintf.lo vscanf.lo vsiprintf.lo \ - vsiscanf.lo vsnprintf.lo vsniprintf.lo vsprintf.lo vsscanf.lo \ -@@ -344,6 +346,7 @@ - flags.c \ - fopen.c \ - fprintf.c \ -+ fprintf_chk.c \ - fputc.c \ - fputs.c \ - fread.c \ -@@ -389,6 +392,7 @@ - sniprintf.c \ - snprintf.c \ - sprintf.c \ -+ sprintf_chk.c \ - sscanf.c \ - stdio.c \ - tmpfile.c \ -@@ -508,6 +512,7 @@ - siprintf.def \ - siscanf.def \ - sprintf.def \ -+ sprintf_chk.def \ - sscanf.def \ - tmpfile.def \ - tmpnam.def \ -@@ -678,6 +683,12 @@ - lib_a-fprintf.obj: fprintf.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fprintf.obj `if test -f 'fprintf.c'; then $(CYGPATH_W) 'fprintf.c'; else $(CYGPATH_W) '$(srcdir)/fprintf.c'; fi` - -+lib_a-fprintf_chk.o: fprintf_chk.c -+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fprintf_chk.o `test -f 'fprintf_chk.c' || echo '$(srcdir)/'`fprintf_chk.c -+ -+lib_a-fprintf_chk.obj: fprintf_chk.c -+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fprintf_chk.obj `if test -f 'fprintf_chk.c'; then $(CYGPATH_W) 'fprintf_chk.c'; else $(CYGPATH_W) '$(srcdir)/fprintf_chk.c'; fi` -+ - lib_a-fputc.o: fputc.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-fputc.o `test -f 'fputc.c' || echo '$(srcdir)/'`fputc.c - -@@ -948,6 +959,12 @@ - lib_a-sprintf.obj: sprintf.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sprintf.obj `if test -f 'sprintf.c'; then $(CYGPATH_W) 'sprintf.c'; else $(CYGPATH_W) '$(srcdir)/sprintf.c'; fi` - -+lib_a-sprintf_chk.o: sprintf_chk.c -+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sprintf_chk.o `test -f 'sprintf_chk.c' || echo '$(srcdir)/'`sprintf_chk.c -+ -+lib_a-sprintf_chk.obj: sprintf_chk.c -+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sprintf_chk.obj `if test -f 'sprintf_chk.c'; then $(CYGPATH_W) 'sprintf_chk.c'; else $(CYGPATH_W) '$(srcdir)/sprintf_chk.c'; fi` -+ - lib_a-sscanf.o: sscanf.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sscanf.o `test -f 'sscanf.c' || echo '$(srcdir)/'`sscanf.c - ---- a/newlib/libc/stdio/sprintf_chk.c 1969-12-31 19:00:00.000000000 -0500 -+++ b/newlib/libc/stdio/sprintf_chk.c 2009-02-26 19:02:26.000000000 -0500 -@@ -0,0 +1,21 @@ -+#include <stdarg.h> -+#include <stdio.h> -+ -+/* -+ * Stub implementation of __sprintf_chk adapted from glibc 2.7. This -+ * doesn't actually implement any buffer overflow protection. It just makes -+ * the linker happy :) -+*/ -+int -+__sprintf_chk (char *s, int flags, size_t slen, const char *format, ...) -+{ -+ va_list arg; -+ int done; -+ -+ va_start (arg, format); -+ done = vsprintf (s, format, arg); -+ va_end (arg); -+ -+ return done; -+} -+ diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/newlib-stdint-size_max-fix-from-1.17.0.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/newlib-stdint-size_max-fix-from-1.17.0.patch deleted file mode 100644 index 3610d646d..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/newlib-stdint-size_max-fix-from-1.17.0.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/newlib/libc/include/stdint.h.orig 2006-08-17 00:39:43.000000000 +0300 -+++ b/newlib/libc/include/stdint.h 2009-08-25 17:33:23.000000000 +0300 -@@ -348,8 +348,11 @@ - #endif - - /* This must match size_t in stddef.h, currently long unsigned int */ --#define SIZE_MIN (-__STDINT_EXP(LONG_MAX) - 1L) --#define SIZE_MAX __STDINT_EXP(LONG_MAX) -+#ifdef __SIZE_MAX__ -+#define SIZE_MAX __SIZE_MAX__ -+#else -+#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1) -+#endif - - /* This must match sig_atomic_t in <signal.h> (currently int) */ - #define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1) diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/newlib.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/newlib.patch deleted file mode 100644 index dbf409a2d..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/newlib.patch +++ /dev/null @@ -1,727 +0,0 @@ -There is a mix between longs and long longs. - -Index: newlib/libc/include/inttypes.h -=================================================================== -RCS file: /cvs/src/src/newlib/libc/include/inttypes.h,v -retrieving revision 1.3 -diff -u -p -r1.3 inttypes.h ---- a/newlib/libc/include/inttypes.h 16 Dec 2005 19:03:12 -0000 1.3 -+++ b/newlib/libc/include/inttypes.h 8 Nov 2007 16:32:44 -0000 -@@ -163,12 +163,12 @@ - - - /* 64-bit types */ --#if __have_longlong64 --#define __PRI64(x) __STRINGIFY(ll##x) --#define __SCN64(x) __STRINGIFY(ll##x) --#elif __have_long64 -+#if __have_long64 - #define __PRI64(x) __STRINGIFY(l##x) - #define __SCN64(x) __STRINGIFY(l##x) -+#elif __have_longlong64 -+#define __PRI64(x) __STRINGIFY(ll##x) -+#define __SCN64(x) __STRINGIFY(ll##x) - #else - #define __PRI64(x) __STRINGIFY(x) - #define __SCN64(x) __STRINGIFY(x) -@@ -217,12 +217,12 @@ - #endif - - /* max-bit types */ --#if __have_longlong64 --#define __PRIMAX(x) __STRINGIFY(ll##x) --#define __SCNMAX(x) __STRINGIFY(ll##x) --#elif __have_long64 -+#if __have_long64 - #define __PRIMAX(x) __STRINGIFY(l##x) - #define __SCNMAX(x) __STRINGIFY(l##x) -+#elif __have_longlong64 -+#define __PRIMAX(x) __STRINGIFY(ll##x) -+#define __SCNMAX(x) __STRINGIFY(ll##x) - #else - #define __PRIMAX(x) __STRINGIFY(x) - #define __SCNMAX(x) __STRINGIFY(x) -@@ -242,12 +242,12 @@ - #define SCNxMAX __SCNMAX(x) - - /* ptr types */ --#if __have_longlong64 --#define __PRIPTR(x) __STRINGIFY(ll##x) --#define __SCNPTR(x) __STRINGIFY(ll##x) --#elif __have_long64 -+#if __have_long64 - #define __PRIPTR(x) __STRINGIFY(l##x) - #define __SCNPTR(x) __STRINGIFY(l##x) -+#elif __have_longlong64 -+#define __PRIPTR(x) __STRINGIFY(ll##x) -+#define __SCNPTR(x) __STRINGIFY(ll##x) - #else - #define __PRIPTR(x) __STRINGIFY(x) - #define __SCNPTR(x) __STRINGIFY(x) - -We don't want u?int32_t to be long as our code assume in a lot of places to be -int. - -Index: newlib/libc/include/stdint.h -=================================================================== -RCS file: /cvs/src/src/newlib/libc/include/stdint.h,v -retrieving revision 1.10 -diff -u -p -r1.10 stdint.h ---- a/newlib/libc/include/stdint.h 16 Aug 2006 21:39:43 -0000 1.10 -+++ b/newlib/libc/include/stdint.h 12 Feb 2008 13:07:52 -0000 -@@ -38,7 +38,7 @@ extern "C" { - #if __STDINT_EXP(LONG_MAX) > 0x7fffffff - #define __have_long64 1 - #elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__) --#define __have_long32 1 -+/* #define __have_long32 1 */ - #endif - - #if __STDINT_EXP(SCHAR_MAX) == 0x7f - -Define the basic ia64 jump buffer - -Index: newlib/libc/include/sys/config.h -=================================================================== -RCS file: /cvs/src/src/newlib/libc/include/sys/config.h,v -retrieving revision 1.47 -diff -u -p -r1.47 config.h ---- a/newlib/libc/include/sys/config.h 15 Mar 2007 21:32:12 -0000 1.47 -+++ b/newlib/libc/include/sys/config.h 8 Nov 2007 16:32:44 -0000 -@@ -71,6 +71,10 @@ - #endif - #endif - -+#ifndef __DYNAMIC_REENT__ -+#define __DYNAMIC_REENT__ -+#endif -+ - #ifdef __mn10200__ - #define __SMALL_BITFIELDS - #endif - -Dynamic pointer to our reentrancy zone - -Index: newlib/libc/reent/getreent.c -=================================================================== -RCS file: /cvs/src/src/newlib/libc/reent/getreent.c,v -retrieving revision 1.2 -diff -u -p -r1.2 getreent.c ---- a/newlib/libc/reent/getreent.c 7 Sep 2007 00:45:55 -0000 1.2 -+++ b/newlib/libc/reent/getreent.c 8 Nov 2007 16:32:44 -0000 -@@ -3,12 +3,20 @@ - #include <_ansi.h> - #include <reent.h> - -+#define weak_alias(name, aliasname) \ -+ extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))); -+ - #ifdef __getreent - #undef __getreent - #endif -+#ifdef __libc_getreent -+#undef __libc_getreent -+#endif - - struct _reent * --_DEFUN_VOID(__getreent) -+__libc_getreent (void) - { - return _impure_ptr; - } -+weak_alias(__libc_getreent,__getreent) -+ - -We can't provide a red zone in mini-os. - -Index: newlib/libc/machine/x86_64/memcpy.S -=================================================================== -RCS file: /cvs/src/src/newlib/libc/machine/x86_64/memcpy.S,v -retrieving revision 1.1 -diff -u -p -r1.1 memcpy.S ---- a/newlib/libc/machine/x86_64/memcpy.S 28 Aug 2007 21:56:49 -0000 1.1 -+++ b/newlib/libc/machine/x86_64/memcpy.S 8 Nov 2007 16:32:44 -0000 -@@ -30,10 +30,18 @@ quadword_aligned: - cmpq $256, rdx - jb quadword_copy - -+#if 1 -+ subq $32, rsp -+ movq rax, 24 (rsp) -+ movq r12, 16 (rsp) -+ movq r13, 8 (rsp) -+ movq r14, 0 (rsp) -+#else - movq rax, -8 (rsp) - movq r12, -16 (rsp) - movq r13, -24 (rsp) - movq r14, -32 (rsp) -+#endif - - movq rdx, rcx /* Copy 128 bytes at a time with minimum cache polution */ - shrq $7, rcx -@@ -89,10 +97,18 @@ loop: - movq rdx, rcx - andq $127, rcx - rep movsb -+#if 1 -+ movq 24 (rsp), rax -+ movq 16 (rsp), r12 -+ movq 8 (rsp), r13 -+ movq 0 (rsp), r14 -+ addq $32, rsp -+#else - movq -8 (rsp), rax - movq -16 (rsp), r12 - movq -24 (rsp), r13 - movq -32 (rsp), r14 -+#endif - ret - - ---- a/newlib/libc/machine/x86_64/x86_64mach.h.orig 2008-07-11 14:57:23.062269000 +0100 -+++ b/newlib/libc/machine/x86_64/x86_64mach.h 2008-07-11 14:58:01.262503000 +0100 -@@ -22,81 +22,81 @@ - - #define REG(x) CONCAT1(__REG_PREFIX__, x) - --#define rax REG(rax) --#define rbx REG(rbx) --#define rcx REG(rcx) --#define rdx REG(rdx) --#define rsi REG(rsi) --#define rdi REG(rdi) --#define rbp REG(rbp) --#define rsp REG(rsp) -- --#define r8 REG(r8) --#define r9 REG(r9) --#define r10 REG(r10) --#define r11 REG(r11) --#define r12 REG(r12) --#define r13 REG(r13) --#define r14 REG(r14) --#define r15 REG(r15) -- --#define eax REG(eax) --#define ebx REG(ebx) --#define ecx REG(ecx) --#define edx REG(edx) --#define esi REG(esi) --#define edi REG(edi) --#define ebp REG(ebp) --#define esp REG(esp) -- --#define st0 REG(st) --#define st1 REG(st(1)) --#define st2 REG(st(2)) --#define st3 REG(st(3)) --#define st4 REG(st(4)) --#define st5 REG(st(5)) --#define st6 REG(st(6)) --#define st7 REG(st(7)) -- --#define ax REG(ax) --#define bx REG(bx) --#define cx REG(cx) --#define dx REG(dx) -- --#define ah REG(ah) --#define bh REG(bh) --#define ch REG(ch) --#define dh REG(dh) -- --#define al REG(al) --#define bl REG(bl) --#define cl REG(cl) --#define dl REG(dl) -- --#define sil REG(sil) -- --#define mm1 REG(mm1) --#define mm2 REG(mm2) --#define mm3 REG(mm3) --#define mm4 REG(mm4) --#define mm5 REG(mm5) --#define mm6 REG(mm6) --#define mm7 REG(mm7) -- --#define xmm0 REG(xmm0) --#define xmm1 REG(xmm1) --#define xmm2 REG(xmm2) --#define xmm3 REG(xmm3) --#define xmm4 REG(xmm4) --#define xmm5 REG(xmm5) --#define xmm6 REG(xmm6) --#define xmm7 REG(xmm7) -- --#define cr0 REG(cr0) --#define cr1 REG(cr1) --#define cr2 REG(cr2) --#define cr3 REG(cr3) --#define cr4 REG(cr4) -+#define rax %rax -+#define rbx %rbx -+#define rcx %rcx -+#define rdx %rdx -+#define rsi %rsi -+#define rdi %rdi -+#define rbp %rbp -+#define rsp %rsp -+ -+#define r8 %r8 -+#define r9 %r9 -+#define r10 %r10 -+#define r11 %r11 -+#define r12 %r12 -+#define r13 %r13 -+#define r14 %r14 -+#define r15 %r15 -+ -+#define eax %eax -+#define ebx %ebx -+#define ecx %ecx -+#define edx %edx -+#define esi %esi -+#define edi %edi -+#define ebp %ebp -+#define esp %esp -+ -+#define st0 %st -+#define st1 %st(1) -+#define st2 %st(2) -+#define st3 %st(3) -+#define st4 %st(4) -+#define st5 %st(5) -+#define st6 %st(6) -+#define st7 %st(7) -+ -+#define ax %ax -+#define bx %bx -+#define cx %cx -+#define dx %dx -+ -+#define ah %ah -+#define bh %bh -+#define ch %ch -+#define dh %dh -+ -+#define al %al -+#define bl %bl -+#define cl %cl -+#define dl %dl -+ -+#define sil %sil -+ -+#define mm1 %mm1 -+#define mm2 %mm2 -+#define mm3 %mm3 -+#define mm4 %mm4 -+#define mm5 %mm5 -+#define mm6 %mm6 -+#define mm7 %mm7 -+ -+#define xmm0 %xmm0 -+#define xmm1 %xmm1 -+#define xmm2 %xmm2 -+#define xmm3 %xmm3 -+#define xmm4 %xmm4 -+#define xmm5 %xmm5 -+#define xmm6 %xmm6 -+#define xmm7 %xmm7 -+ -+#define cr0 %cr0 -+#define cr1 %cr1 -+#define cr2 %cr2 -+#define cr3 %cr3 -+#define cr4 %cr4 - - #ifdef _I386MACH_NEED_SOTYPE_FUNCTION - #define SOTYPE_FUNCTION(sym) .type SYM(sym),@function ---- a/newlib/libc/machine/x86_64/memcpy.S.orig 2008-07-11 15:12:27.494693000 +0100 -+++ b/newlib/libc/machine/x86_64/memcpy.S 2008-07-11 15:12:29.448706000 +0100 -@@ -60,14 +60,14 @@ - movq 48 (rsi), r13 - movq 56 (rsi), r14 - -- movntiq rax, (rdi) -- movntiq r8 , 8 (rdi) -- movntiq r9 , 16 (rdi) -- movntiq r10, 24 (rdi) -- movntiq r11, 32 (rdi) -- movntiq r12, 40 (rdi) -- movntiq r13, 48 (rdi) -- movntiq r14, 56 (rdi) -+ movnti rax, (rdi) -+ movnti r8 , 8 (rdi) -+ movnti r9 , 16 (rdi) -+ movnti r10, 24 (rdi) -+ movnti r11, 32 (rdi) -+ movnti r12, 40 (rdi) -+ movnti r13, 48 (rdi) -+ movnti r14, 56 (rdi) - - movq 64 (rsi), rax - movq 72 (rsi), r8 -@@ -78,14 +78,14 @@ - movq 112 (rsi), r13 - movq 120 (rsi), r14 - -- movntiq rax, 64 (rdi) -- movntiq r8 , 72 (rdi) -- movntiq r9 , 80 (rdi) -- movntiq r10, 88 (rdi) -- movntiq r11, 96 (rdi) -- movntiq r12, 104 (rdi) -- movntiq r13, 112 (rdi) -- movntiq r14, 120 (rdi) -+ movnti rax, 64 (rdi) -+ movnti r8 , 72 (rdi) -+ movnti r9 , 80 (rdi) -+ movnti r10, 88 (rdi) -+ movnti r11, 96 (rdi) -+ movnti r12, 104 (rdi) -+ movnti r13, 112 (rdi) -+ movnti r14, 120 (rdi) - - leaq 128 (rsi), rsi - leaq 128 (rdi), rdi ---- a/newlib/libc/machine/i386/i386mach.h 2000-08-28 18:50:06.000000000 +0100 -+++ b/newlib/libc/machine/i386/i386mach.h 2008-07-11 15:17:13.874409000 +0100 -@@ -27,46 +27,46 @@ - - #define REG(x) CONCAT1(__REG_PREFIX__, x) - --#define eax REG(eax) --#define ebx REG(ebx) --#define ecx REG(ecx) --#define edx REG(edx) --#define esi REG(esi) --#define edi REG(edi) --#define ebp REG(ebp) --#define esp REG(esp) -- --#define st0 REG(st) --#define st1 REG(st(1)) --#define st2 REG(st(2)) --#define st3 REG(st(3)) --#define st4 REG(st(4)) --#define st5 REG(st(5)) --#define st6 REG(st(6)) --#define st7 REG(st(7)) -- --#define ax REG(ax) --#define bx REG(bx) --#define cx REG(cx) --#define dx REG(dx) -- --#define ah REG(ah) --#define bh REG(bh) --#define ch REG(ch) --#define dh REG(dh) -- --#define al REG(al) --#define bl REG(bl) --#define cl REG(cl) --#define dl REG(dl) -- --#define mm1 REG(mm1) --#define mm2 REG(mm2) --#define mm3 REG(mm3) --#define mm4 REG(mm4) --#define mm5 REG(mm5) --#define mm6 REG(mm6) --#define mm7 REG(mm7) -+#define eax %eax -+#define ebx %ebx -+#define ecx %ecx -+#define edx %edx -+#define esi %esi -+#define edi %edi -+#define ebp %ebp -+#define esp %esp -+ -+#define st0 %st -+#define st1 %st(1) -+#define st2 %st(2) -+#define st3 %st(3) -+#define st4 %st(4) -+#define st5 %st(5) -+#define st6 %st(6) -+#define st7 %st(7) -+ -+#define ax %ax -+#define bx %bx -+#define cx %cx -+#define dx %dx -+ -+#define ah %ah -+#define bh %bh -+#define ch %ch -+#define dh %dh -+ -+#define al %al -+#define bl %bl -+#define cl %cl -+#define dl %dl -+ -+#define mm1 %mm1 -+#define mm2 %mm2 -+#define mm3 %mm3 -+#define mm4 %mm4 -+#define mm5 %mm5 -+#define mm6 %mm6 -+#define mm7 %mm7 - - #ifdef _I386MACH_NEED_SOTYPE_FUNCTION - #define SOTYPE_FUNCTION(sym) .type SYM(sym),@function ---- a/newlib/libc/machine/x86_64/memset.S 2007-08-28 22:56:49.000000000 +0100 -+++ b/newlib/libc/machine/x86_64/memset.S 2008-07-11 15:16:59.098320000 +0100 -@@ -40,22 +40,22 @@ - - .p2align 4 - loop: -- movntiq rax, (rdi) -- movntiq rax, 8 (rdi) -- movntiq rax, 16 (rdi) -- movntiq rax, 24 (rdi) -- movntiq rax, 32 (rdi) -- movntiq rax, 40 (rdi) -- movntiq rax, 48 (rdi) -- movntiq rax, 56 (rdi) -- movntiq rax, 64 (rdi) -- movntiq rax, 72 (rdi) -- movntiq rax, 80 (rdi) -- movntiq rax, 88 (rdi) -- movntiq rax, 96 (rdi) -- movntiq rax, 104 (rdi) -- movntiq rax, 112 (rdi) -- movntiq rax, 120 (rdi) -+ movnti rax, (rdi) -+ movnti rax, 8 (rdi) -+ movnti rax, 16 (rdi) -+ movnti rax, 24 (rdi) -+ movnti rax, 32 (rdi) -+ movnti rax, 40 (rdi) -+ movnti rax, 48 (rdi) -+ movnti rax, 56 (rdi) -+ movnti rax, 64 (rdi) -+ movnti rax, 72 (rdi) -+ movnti rax, 80 (rdi) -+ movnti rax, 88 (rdi) -+ movnti rax, 96 (rdi) -+ movnti rax, 104 (rdi) -+ movnti rax, 112 (rdi) -+ movnti rax, 120 (rdi) - - leaq 128 (rdi), rdi - ---- a/newlib/libm/machine/i386/i386mach.h.orig 2008-07-11 15:30:37.367227000 +0100 -+++ b/newlib/libm/machine/i386/i386mach.h 2008-07-11 15:30:55.232337000 +0100 -@@ -27,46 +27,46 @@ - - #define REG(x) CONCAT1(__REG_PREFIX__, x) - --#define eax REG(eax) --#define ebx REG(ebx) --#define ecx REG(ecx) --#define edx REG(edx) --#define esi REG(esi) --#define edi REG(edi) --#define ebp REG(ebp) --#define esp REG(esp) -- --#define st0 REG(st) --#define st1 REG(st(1)) --#define st2 REG(st(2)) --#define st3 REG(st(3)) --#define st4 REG(st(4)) --#define st5 REG(st(5)) --#define st6 REG(st(6)) --#define st7 REG(st(7)) -- --#define ax REG(ax) --#define bx REG(bx) --#define cx REG(cx) --#define dx REG(dx) -- --#define ah REG(ah) --#define bh REG(bh) --#define ch REG(ch) --#define dh REG(dh) -- --#define al REG(al) --#define bl REG(bl) --#define cl REG(cl) --#define dl REG(dl) -- --#define mm1 REG(mm1) --#define mm2 REG(mm2) --#define mm3 REG(mm3) --#define mm4 REG(mm4) --#define mm5 REG(mm5) --#define mm6 REG(mm6) --#define mm7 REG(mm7) -+#define eax %eax -+#define ebx %ebx -+#define ecx %ecx -+#define edx %edx -+#define esi %esi -+#define edi %edi -+#define ebp %ebp -+#define esp %esp -+ -+#define st0 %st -+#define st1 %st(1) -+#define st2 %st(2) -+#define st3 %st(3) -+#define st4 %st(4) -+#define st5 %st(5) -+#define st6 %st(6) -+#define st7 %st(7) -+ -+#define ax %ax -+#define bx %bx -+#define cx %cx -+#define dx %dx -+ -+#define ah %ah -+#define bh %bh -+#define ch %ch -+#define dh %dh -+ -+#define al %al -+#define bl %bl -+#define cl %cl -+#define dl %dl -+ -+#define mm1 %mm1 -+#define mm2 %mm2 -+#define mm3 %mm3 -+#define mm4 %mm4 -+#define mm5 %mm5 -+#define mm6 %mm6 -+#define mm7 %mm7 - - #ifdef _I386MACH_NEED_SOTYPE_FUNCTION - #define SOTYPE_FUNCTION(sym) .type SYM(sym),@function - - -We want to have a 64bit offsets libc even on 32bit platforms. - ---- ./newlib/configure.host.orig 2008-08-07 16:01:17.801946000 +0100 -+++ ./newlib/configure.host 2008-08-07 16:01:34.181064000 +0100 -@@ -317,6 +317,8 @@ - oext=lo - lpfx= - aext=la ;; -+ i[34567]86-xen-elf) -+ stdio64_dir=stdio64 ;; - *) ;; #shared library not supported for ${host} - esac - ---- a/newlib/libc/include/sys/_types.h.orig 2008-08-07 15:22:44.925008000 +0100 -+++ b/newlib/libc/include/sys/_types.h 2008-08-07 15:22:50.824044000 +0100 -@@ -13,8 +13,12 @@ - #include <sys/lock.h> - - #ifndef __off_t_defined -+#ifdef __MINIOS__ -+typedef long long _off_t; -+#else - typedef long _off_t; - #endif -+#endif - - #if defined(__rtems__) - /* device numbers are 32-bit major and and 32-bit minor */ ---- ./newlib/libc/include/sys/config.h.orig 2008-08-07 14:43:25.915866000 +0100 -+++ ./newlib/libc/include/sys/config.h 2008-08-07 14:44:13.508154000 +0100 -@@ -69,6 +69,10 @@ - /* we use some glibc header files so turn on glibc large file feature */ - #define _LARGEFILE64_SOURCE 1 - #endif -+#ifdef __MINIOS__ -+#define __LARGE64_FILES 1 -+#define _LARGEFILE64_SOURCE 1 -+#endif - #endif - - #ifndef __DYNAMIC_REENT__ ---- ./newlib/libc/include/sys/_default_fcntl.h.orig 2008-08-07 15:08:22.377836000 +0100 -+++ ./newlib/libc/include/sys/_default_fcntl.h 2008-08-07 15:08:31.651890000 +0100 -@@ -170,7 +170,11 @@ - /* Provide _<systemcall> prototypes for functions provided by some versions - of newlib. */ - #ifdef _COMPILING_NEWLIB --extern int _open _PARAMS ((const char *, int, ...)); -+extern int _open _PARAMS ((const char *, int, ...)) -+#ifdef __MINIOS__ -+ asm("open64") -+#endif -+ ; - extern int _fcntl _PARAMS ((int, int, ...)); - #ifdef __LARGE64_FILES - extern int _open64 _PARAMS ((const char *, int, ...)); ---- ./newlib/libc/include/sys/unistd.h.orig 2008-08-07 15:09:36.449280000 +0100 -+++ ./newlib/libc/include/sys/unistd.h 2008-08-07 15:09:51.210370000 +0100 -@@ -101,7 +101,11 @@ - int _EXFUN(link, (const char *__path1, const char *__path2 )); - int _EXFUN(nice, (int __nice_value )); - #if !defined(__INSIDE_CYGWIN__) --off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )); -+off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )) -+#ifdef __MINIOS__ -+ asm("lseek64") -+#endif -+ ; - #endif - #if defined(__SPU__) - #define F_ULOCK 0 ---- ./newlib/libc/include/sys/stat.h.orig 2008-08-07 16:08:50.495116000 +0100 -+++ ./newlib/libc/include/sys/stat.h 2008-08-07 16:10:21.799753000 +0100 -@@ -49,6 +49,9 @@ - long st_spare4[2]; - #endif - }; -+#ifdef __MINIOS__ -+#define stat64 stat -+#endif - #endif - - #define _IFMT 0170000 /* type of file */ -@@ -132,7 +135,11 @@ - /* Provide prototypes for most of the _<systemcall> names that are - provided in newlib for some compilers. */ - #ifdef _COMPILING_NEWLIB --int _EXFUN(_fstat,( int __fd, struct stat *__sbuf )); -+int _EXFUN(_fstat,( int __fd, struct stat *__sbuf )) -+#ifdef __MINIOS__ -+ asm("fstat64") -+#endif -+ ; - int _EXFUN(_stat,( const char *__path, struct stat *__sbuf )); - #ifdef __LARGE64_FILES - struct stat64; ---- ./newlib/libc/include/_syslist.h.orig 2008-08-07 16:24:19.122605000 +0100 -+++ ./newlib/libc/include/_syslist.h 2008-08-07 16:24:21.548628000 +0100 -@@ -14,6 +14,7 @@ - #define _kill kill - #define _link link - #define _lseek lseek -+#define _lseek64 lseek64 - #define _open open - #define _read read - #define _sbrk sbrk ---- a/newlib/libc/include/reent.h.orig 2008-08-07 16:28:49.846502000 +0100 -+++ b/newlib/libc/include/reent.h 2008-08-07 16:29:02.096586000 +0100 -@@ -87,6 +87,9 @@ - #if defined(__CYGWIN__) && defined(_COMPILING_NEWLIB) - #define stat64 __stat64 - #endif -+#if defined(__MINIOS__) -+#define stat64 stat -+#endif - - struct stat64; - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/polarssl.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/polarssl.patch deleted file mode 100644 index 95487308c..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/polarssl.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff -Naur polarssl-1.1.4/include/polarssl/config.h polarssl-x86_64/include/polarssl/config.h ---- a/include/polarssl/config.h 2011-12-22 05:06:27.000000000 -0500 -+++ b/include/polarssl/config.h 2012-10-30 17:18:07.567001000 -0400 -@@ -164,8 +164,8 @@ - * application. - * - * Uncomment this macro to prevent loading of default entropy functions. --#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES - */ -+#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES - - /** - * \def POLARSSL_NO_PLATFORM_ENTROPY -@@ -175,8 +175,8 @@ - * standards like the /dev/urandom or Windows CryptoAPI. - * - * Uncomment this macro to disable the built-in platform entropy functions. --#define POLARSSL_NO_PLATFORM_ENTROPY - */ -+#define POLARSSL_NO_PLATFORM_ENTROPY - - /** - * \def POLARSSL_PKCS1_V21 -@@ -426,8 +426,8 @@ - * Requires: POLARSSL_TIMING_C - * - * This module enables the HAVEGE random number generator. -- */ - #define POLARSSL_HAVEGE_C -+ */ - - /** - * \def POLARSSL_MD_C -@@ -490,7 +490,7 @@ - * - * This module provides TCP/IP networking routines. - */ --#define POLARSSL_NET_C -+//#define POLARSSL_NET_C - - /** - * \def POLARSSL_PADLOCK_C -@@ -644,8 +644,8 @@ - * Caller: library/havege.c - * - * This module is used by the HAVEGE random number generator. -- */ - #define POLARSSL_TIMING_C -+ */ - - /** - * \def POLARSSL_VERSION_C -diff -Naur polarssl-1.1.4/library/bignum.c polarssl-x86_64/library/bignum.c ---- a/library/bignum.c 2012-04-29 16:15:55.000000000 -0400 -+++ b/library/bignum.c 2012-10-30 17:21:52.135000999 -0400 -@@ -1101,7 +1101,7 @@ - Z.p[i - t - 1] = ~0; - else - { --#if defined(POLARSSL_HAVE_LONGLONG) -+#if 0 //defined(POLARSSL_HAVE_LONGLONG) - t_udbl r; - - r = (t_udbl) X.p[i] << biL; diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/tpmemu-0.7.4.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/tpmemu-0.7.4.patch deleted file mode 100644 index 622b34f59..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/tpmemu-0.7.4.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur tpm_emulator-x86_64-back/tpm/tpm_emulator_extern.c tpm_emulator-x86_64/tpm/tpm_emulator_extern.c ---- a/tpm/tpm_emulator_extern.c 2012-04-27 10:55:46.581963398 -0400 -+++ b/tpm/tpm_emulator_extern.c 2012-04-27 10:56:02.193034152 -0400 -@@ -249,7 +249,7 @@ - #else /* TPM_NO_EXTERN */ - - int (*tpm_extern_init)(void) = NULL; --int (*tpm_extern_release)(void) = NULL; -+void (*tpm_extern_release)(void) = NULL; - void* (*tpm_malloc)(size_t size) = NULL; - void (*tpm_free)(/*const*/ void *ptr) = NULL; - void (*tpm_log)(int priority, const char *fmt, ...) = NULL; diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-bufsize.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-bufsize.patch deleted file mode 100644 index 9c9304cff..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-bufsize.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/config.h.in b/config.h.in -index d16a997..8088a2a 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -27,7 +27,7 @@ - #define TPM_STORAGE_NAME "${TPM_STORAGE_NAME}" - #define TPM_DEVICE_NAME "${TPM_DEVICE_NAME}" - #define TPM_LOG_FILE "${TPM_LOG_FILE}" --#define TPM_CMD_BUF_SIZE 4096 -+#define TPM_CMD_BUF_SIZE 4088 - - #endif /* _CONFIG_H_ */ - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-cmake-Wextra.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-cmake-Wextra.patch deleted file mode 100644 index 5fee4e9a0..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-cmake-Wextra.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- - CMakeLists.txt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: tpm_emulator-x86_64/CMakeLists.txt -=================================================================== ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -40,10 +40,11 @@ set(TPM_STORAGE_NAME "/var/lib/tpm/tpm_e - set(TPM_DEVICE_NAME "/dev/tpm") - endif() - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) --add_definitions(-Wall -Werror -Wno-unused-parameter -Wpointer-arith -Wcast-align -Wwrite-strings) -+add_definitions(-Wall -Werror) - if("${CMAKE_SYSTEM}" MATCHES "Linux") - add_definitions(-Wextra) - endif() -+add_definitions(-Wno-unused-parameter -Wpointer-arith -Wcast-align -Wwrite-strings) - if(USE_OPENSSL) - add_definitions(-DUSE_OPENSSL) - endif() diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-deepquote-anyloc.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-deepquote-anyloc.patch deleted file mode 100644 index 7b37d5120..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-deepquote-anyloc.patch +++ /dev/null @@ -1,127 +0,0 @@ -diff --git a/tpm/tpm_cmd_handler.c b/tpm/tpm_cmd_handler.c -index 69511d1..7545d51 100644 ---- a/tpm/tpm_cmd_handler.c -+++ b/tpm/tpm_cmd_handler.c -@@ -3347,12 +3347,13 @@ static TPM_RESULT execute_TPM_DeepQuote(TPM_REQUEST *req, TPM_RESPONSE *rsp) - { - TPM_NONCE nonce; - TPM_RESULT res; -- UINT32 sigSize; -- BYTE *sig; -+ UINT32 quote_blob_size; -+ BYTE *quote_blob; - BYTE *ptr; - UINT32 len; - TPM_PCR_SELECTION myPCR; - TPM_PCR_SELECTION ptPCR; -+ UINT32 extraInfoFlags = 0; - - tpm_compute_in_param_digest(req); - -@@ -3361,17 +3362,19 @@ static TPM_RESULT execute_TPM_DeepQuote(TPM_REQUEST *req, TPM_RESPONSE *rsp) - if (tpm_unmarshal_TPM_NONCE(&ptr, &len, &nonce) - || tpm_unmarshal_TPM_PCR_SELECTION(&ptr, &len, &myPCR) - || tpm_unmarshal_TPM_PCR_SELECTION(&ptr, &len, &ptPCR) -+ || tpm_unmarshal_TPM_DEEP_QUOTE_INFO(&ptr, &len, &extraInfoFlags) - || len != 0) return TPM_BAD_PARAMETER; - -- res = TPM_DeepQuote(&nonce, &myPCR, &ptPCR, &req->auth1, &sigSize, &sig); -+ res = TPM_DeepQuote(&nonce, &myPCR, &ptPCR, &req->auth1, extraInfoFlags, -+ "e_blob_size, "e_blob); - if (res != TPM_SUCCESS) return res; -- rsp->paramSize = len = sigSize; -+ rsp->paramSize = len = quote_blob_size; - rsp->param = ptr = tpm_malloc(len); -- if (ptr == NULL || tpm_marshal_BLOB(&ptr, &len, sig, sigSize)) { -+ if (ptr == NULL || tpm_marshal_BLOB(&ptr, &len, quote_blob, quote_blob_size)) { - tpm_free(rsp->param); - res = TPM_FAIL; - } -- tpm_free(sig); -+ tpm_free(quote_blob); - - return res; - } -diff --git a/tpm/tpm_commands.h b/tpm/tpm_commands.h -index 328d1be..a56dd5f 100644 ---- a/tpm/tpm_commands.h -+++ b/tpm/tpm_commands.h -@@ -3077,6 +3077,7 @@ TPM_RESULT TPM_ParentSignEK( - * @myPCR: [in] PCR selection for the virtual TPM - * @ptPCR: [in] PCR selection for the hardware TPM - * @auth1: [in, out] Authorization protocol parameters -+ * @extraInfoFlags [in] Flags for including, kernel hash, group info, etc - * @sigSize: [out] The length of the returned digital signature - * @sig: [out] The resulting digital signature and PCR values - * Returns: TPM_SUCCESS on success, a TPM error code otherwise. -@@ -3086,6 +3087,7 @@ TPM_RESULT TPM_DeepQuote( - TPM_PCR_SELECTION *myPCR, - TPM_PCR_SELECTION *ptPCR, - TPM_AUTH *auth1, -+ UINT32 extraInfoFlags, - UINT32 *sigSize, - BYTE **sig - ); -diff --git a/tpm/tpm_credentials.c b/tpm/tpm_credentials.c -index c0d62e7..6586c22 100644 ---- a/tpm/tpm_credentials.c -+++ b/tpm/tpm_credentials.c -@@ -183,7 +183,8 @@ TPM_RESULT TPM_OwnerReadInternalPub(TPM_KEY_HANDLE keyHandle, TPM_AUTH *auth1, - - int endorsementKeyFresh = 0; - --TPM_RESULT VTPM_GetParentQuote(TPM_DIGEST* data, TPM_PCR_SELECTION *sel, UINT32 *sigSize, BYTE **sig); -+TPM_RESULT VTPM_GetParentQuote(TPM_NONCE *data, TPM_PCR_SELECTION *sel, -+ UINT32 extraInfoFlags, UINT32 *sigSize, BYTE **sig); - - TPM_RESULT TPM_ParentSignEK(TPM_NONCE *externalData, TPM_PCR_SELECTION *sel, - TPM_AUTH *auth1, UINT32 *sigSize, BYTE **sig) -@@ -191,7 +192,7 @@ TPM_RESULT TPM_ParentSignEK(TPM_NONCE *externalData, TPM_PCR_SELECTION *sel, - TPM_PUBKEY pubKey; - TPM_RESULT res; - TPM_DIGEST hres; -- -+ UINT32 extraInfoFlags = 0; - info("TPM_ParentSignEK()"); - - res = tpm_verify_auth(auth1, tpmData.permanent.data.ownerAuth, TPM_KH_OWNER); -@@ -206,7 +207,7 @@ TPM_RESULT TPM_ParentSignEK(TPM_NONCE *externalData, TPM_PCR_SELECTION *sel, - res = TPM_FAIL; - - if (res == TPM_SUCCESS) -- res = VTPM_GetParentQuote(&hres, sel, sigSize, sig); -+ res = VTPM_GetParentQuote((TPM_NONCE*)&hres, sel, extraInfoFlags, sigSize, sig); - - free_TPM_PUBKEY(pubKey); - return res; -@@ -218,7 +219,7 @@ static const BYTE dquot_hdr[] = { - - TPM_RESULT TPM_DeepQuote(TPM_NONCE *externalData, TPM_PCR_SELECTION *myPCR, - TPM_PCR_SELECTION *ptPCR, TPM_AUTH *auth1, -- UINT32 *sigSize, BYTE **sig) -+ UINT32 extraInfoFlags, UINT32 *quote_blob_size, BYTE **quote_blob) - { - TPM_RESULT res; - TPM_DIGEST hres; -@@ -253,7 +254,7 @@ TPM_RESULT TPM_DeepQuote(TPM_NONCE *externalData, TPM_PCR_SELECTION *myPCR, - - tpm_free(buf); - -- res = VTPM_GetParentQuote(&hres, ptPCR, sigSize, sig); -+ res = VTPM_GetParentQuote((TPM_NONCE*)&hres, ptPCR, extraInfoFlags, quote_blob_size, quote_blob); - - return res; - } -diff --git a/tpm/tpm_marshalling.h b/tpm/tpm_marshalling.h -index d510ebe..2e0c008 100644 ---- a/tpm/tpm_marshalling.h -+++ b/tpm/tpm_marshalling.h -@@ -268,6 +268,8 @@ static inline int tpm_unmarshal_BOOL(BYTE **ptr, UINT32 *length, BOOL *v) - #define tpm_unmarshal_TPM_REDIR_COMMAND tpm_unmarshal_UINT32 - #define tpm_marshal_DAAHANDLE tpm_marshal_UINT32 - #define tpm_unmarshal_DAAHANDLE tpm_unmarshal_UINT32 -+#define tpm_marshal_TPM_DEEP_QUOTE_INFO tpm_marshal_UINT32 -+#define tpm_unmarshal_TPM_DEEP_QUOTE_INFO tpm_unmarshal_UINT32 - - int tpm_marshal_UINT32_ARRAY(BYTE **ptr, UINT32 *length, UINT32 *v, UINT32 n); - int tpm_unmarshal_UINT32_ARRAY(BYTE **ptr, UINT32 *length, UINT32 *v, UINT32 n); diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-deepquote.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-deepquote.patch deleted file mode 100644 index 6344f3872..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-deepquote.patch +++ /dev/null @@ -1,187 +0,0 @@ -diff --git a/tpm/tpm_cmd_handler.c b/tpm/tpm_cmd_handler.c -index 0fabf98..69511d1 100644 ---- a/tpm/tpm_cmd_handler.c -+++ b/tpm/tpm_cmd_handler.c -@@ -3343,6 +3343,39 @@ static TPM_RESULT execute_TPM_ParentSignEK(TPM_REQUEST *req, TPM_RESPONSE *rsp) - return res; - } - -+static TPM_RESULT execute_TPM_DeepQuote(TPM_REQUEST *req, TPM_RESPONSE *rsp) -+{ -+ TPM_NONCE nonce; -+ TPM_RESULT res; -+ UINT32 sigSize; -+ BYTE *sig; -+ BYTE *ptr; -+ UINT32 len; -+ TPM_PCR_SELECTION myPCR; -+ TPM_PCR_SELECTION ptPCR; -+ -+ tpm_compute_in_param_digest(req); -+ -+ ptr = req->param; -+ len = req->paramSize; -+ if (tpm_unmarshal_TPM_NONCE(&ptr, &len, &nonce) -+ || tpm_unmarshal_TPM_PCR_SELECTION(&ptr, &len, &myPCR) -+ || tpm_unmarshal_TPM_PCR_SELECTION(&ptr, &len, &ptPCR) -+ || len != 0) return TPM_BAD_PARAMETER; -+ -+ res = TPM_DeepQuote(&nonce, &myPCR, &ptPCR, &req->auth1, &sigSize, &sig); -+ if (res != TPM_SUCCESS) return res; -+ rsp->paramSize = len = sigSize; -+ rsp->param = ptr = tpm_malloc(len); -+ if (ptr == NULL || tpm_marshal_BLOB(&ptr, &len, sig, sigSize)) { -+ tpm_free(rsp->param); -+ res = TPM_FAIL; -+ } -+ tpm_free(sig); -+ -+ return res; -+} -+ - static void tpm_setup_rsp_auth(TPM_COMMAND_CODE ordinal, TPM_RESPONSE *rsp) - { - tpm_hmac_ctx_t hmac; -@@ -4098,6 +4131,11 @@ void tpm_execute_command(TPM_REQUEST *req, TPM_RESPONSE *rsp) - res = execute_TPM_ParentSignEK(req, rsp); - break; - -+ case TPM_ORD_DeepQuote: -+ debug("[TPM_ORD_DeepQuote]"); -+ res = execute_TPM_DeepQuote(req, rsp); -+ break; -+ - default: - #ifdef MTM_EMULATOR - res = mtm_execute_command(req, rsp); -diff --git a/tpm/tpm_commands.h b/tpm/tpm_commands.h -index 7fef934..328d1be 100644 ---- a/tpm/tpm_commands.h -+++ b/tpm/tpm_commands.h -@@ -3071,6 +3071,25 @@ TPM_RESULT TPM_ParentSignEK( - BYTE **sig - ); - -+/** -+ * TPM_DeepQuote - gets a hardware TPM quote of a vTPM's PCRs -+ * @externalData: [in] AntiReplay nonce to prevent replay of messages -+ * @myPCR: [in] PCR selection for the virtual TPM -+ * @ptPCR: [in] PCR selection for the hardware TPM -+ * @auth1: [in, out] Authorization protocol parameters -+ * @sigSize: [out] The length of the returned digital signature -+ * @sig: [out] The resulting digital signature and PCR values -+ * Returns: TPM_SUCCESS on success, a TPM error code otherwise. -+ */ -+TPM_RESULT TPM_DeepQuote( -+ TPM_NONCE *externalData, -+ TPM_PCR_SELECTION *myPCR, -+ TPM_PCR_SELECTION *ptPCR, -+ TPM_AUTH *auth1, -+ UINT32 *sigSize, -+ BYTE **sig -+); -+ - /* - * Error handling - * [tpm_error.c] -diff --git a/tpm/tpm_credentials.c b/tpm/tpm_credentials.c -index 01f29e6..c0d62e7 100644 ---- a/tpm/tpm_credentials.c -+++ b/tpm/tpm_credentials.c -@@ -211,3 +211,49 @@ TPM_RESULT TPM_ParentSignEK(TPM_NONCE *externalData, TPM_PCR_SELECTION *sel, - free_TPM_PUBKEY(pubKey); - return res; - } -+ -+static const BYTE dquot_hdr[] = { -+ 0, 0, 0, 0, 'D', 'Q', 'U', 'T' -+}; -+ -+TPM_RESULT TPM_DeepQuote(TPM_NONCE *externalData, TPM_PCR_SELECTION *myPCR, -+ TPM_PCR_SELECTION *ptPCR, TPM_AUTH *auth1, -+ UINT32 *sigSize, BYTE **sig) -+{ -+ TPM_RESULT res; -+ TPM_DIGEST hres; -+ TPM_PCR_INFO_SHORT pcrData; -+ tpm_sha1_ctx_t ctx; -+ BYTE *buf, *ptr; -+ UINT32 size, len; -+ -+ info("TPM_DeepQuote()"); -+ -+ res = tpm_verify_auth(auth1, tpmData.permanent.data.ownerAuth, TPM_KH_OWNER); -+ if (res != TPM_SUCCESS) return res; -+ -+ res = tpm_compute_pcr_digest(myPCR, &pcrData.digestAtRelease, NULL); -+ if (res != TPM_SUCCESS) return res; -+ -+ pcrData.pcrSelection.sizeOfSelect = myPCR->sizeOfSelect; -+ memcpy(pcrData.pcrSelection.pcrSelect, myPCR->pcrSelect, myPCR->sizeOfSelect); -+ pcrData.localityAtRelease = 1 << tpmData.stany.flags.localityModifier; -+ -+ size = len = sizeof_TPM_PCR_INFO_SHORT(pcrData); -+ buf = ptr = tpm_malloc(size); -+ if (buf == NULL) return TPM_NOSPACE; -+ if (tpm_marshal_TPM_PCR_INFO_SHORT(&ptr, &len, &pcrData)) -+ return TPM_FAIL; -+ -+ tpm_sha1_init(&ctx); -+ tpm_sha1_update(&ctx, dquot_hdr, 8); -+ tpm_sha1_update(&ctx, externalData->nonce, 20); -+ tpm_sha1_update(&ctx, buf, size); -+ tpm_sha1_final(&ctx, hres.digest); -+ -+ tpm_free(buf); -+ -+ res = VTPM_GetParentQuote(&hres, ptPCR, sigSize, sig); -+ -+ return res; -+} -diff --git a/tpm/tpm_structures.h b/tpm/tpm_structures.h -index b0f4625..dfb1894 100644 ---- a/tpm/tpm_structures.h -+++ b/tpm/tpm_structures.h -@@ -660,6 +660,42 @@ typedef struct tdTPM_CMK_MA_APPROVAL { - - /* VTPM-only commands: */ - /* -+ * Deep Quote - Create quote of PCRs -+ * Input: -+ * TPM_TAG tag TPM_TAG_RQU_AUTH1_COMMAND -+ * UINT32 paramSize Total size of request -+ * TPM_COMMAND_CODE ordinal TPM_ORD_DeepQuote -+ * TPM_NONCE externData 20 bytes of external data -+ * TPM_PCR_SELECTION vtSel PCR selection for virtual TPM -+ * TPM_PCR_SELECTION ptSel PCR selection for physical TPM -+ * --- -+ * UINT32 authHandle Owner authorization session (OIAP) -+ * TPM_NONCE nonceOdd Nonce for authHandle -+ * BOOL continueAuth Continue flag for authHandle -+ * TPM_AUTHDATA privAuth Authorization digest for command -+ * -+ * Output: -+ * TPM_TAG tag TPM_TAG_RSP_AUTH1_COMMAND -+ * UINT32 paramSize Total size of response -+ * TPM_RESULT returnCode Return code of the operation -+ * BYTE[] sig Signature provided by physical TPM -+ * TPM_PCRVALUE[] pcrValue Values of hardware PCRs used in the quote -+ * --- -+ * TPM_NONCE nonceEven Nonce for authHandle -+ * BOOL continueAuth Continue flag for authHandle -+ * TPM_AUTHDATA resAuth Authorization digest for response -+ * -+ * The values of the virutal TPM's PCRs are not included in the response. -+ * The signature is a standard TPM_Quote response from the physical TPM; its -+ * externalData is the SHA1 hash of the following structure: -+ * TPM_STRUCT_VER version MUST be 0.0.0.0 -+ * BYTE[4] fixed MUST be the string "DQUT" -+ * TPM_NONCE externData From input to the deep quote -+ * TPM_PCR_INFO_SHORT pcrData Virtual TPM's PCRs -+ */ -+#define TPM_ORD_DeepQuote (TPM_VENDOR_COMMAND | TPM_ORD_Quote) -+ -+/* - * ParentSignEK - Proof of fresh provisioning and EK value - * - * Input: diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-implicit-fallthrough.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-implicit-fallthrough.patch deleted file mode 100644 index e95d41fc7..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-implicit-fallthrough.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/tpm/tpm_cmd_handler.c.orig 2017-04-27 13:37:14.408000000 +0200 -+++ b/tpm/tpm_cmd_handler.c 2017-04-27 13:39:53.585000000 +0200 -@@ -3397,6 +3397,7 @@ - sizeof(rsp->auth2->nonceOdd.nonce)); - tpm_hmac_update(&hmac, (BYTE*)&rsp->auth2->continueAuthSession, 1); - tpm_hmac_final(&hmac, rsp->auth2->auth); -+ /* fall-thru */ - case TPM_TAG_RSP_AUTH1_COMMAND: - tpm_hmac_init(&hmac, rsp->auth1->secret, sizeof(rsp->auth1->secret)); - tpm_hmac_update(&hmac, rsp->auth1->digest, sizeof(rsp->auth1->digest)); diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-locality.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-locality.patch deleted file mode 100644 index 8ab7dea67..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-locality.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/tpm/tpm_capability.c b/tpm/tpm_capability.c -index 60bbb90..f8f7f0f 100644 ---- a/tpm/tpm_capability.c -+++ b/tpm/tpm_capability.c -@@ -949,6 +949,8 @@ static TPM_RESULT set_vendor(UINT32 subCap, BYTE *setValue, - UINT32 setValueSize, BOOL ownerAuth, - BOOL deactivated, BOOL disabled) - { -+ if (tpmData.stany.flags.localityModifier != 8) -+ return TPM_BAD_PARAMETER; - /* set the capability area with the specified data, on failure - deactivate the TPM */ - switch (subCap) { -diff --git a/tpm/tpm_cmd_handler.c b/tpm/tpm_cmd_handler.c -index 288d1ce..9e1cfb4 100644 ---- a/tpm/tpm_cmd_handler.c -+++ b/tpm/tpm_cmd_handler.c -@@ -4132,7 +4132,7 @@ void tpm_emulator_shutdown() - tpm_extern_release(); - } - --int tpm_handle_command(const uint8_t *in, uint32_t in_size, uint8_t **out, uint32_t *out_size) -+int tpm_handle_command(const uint8_t *in, uint32_t in_size, uint8_t **out, uint32_t *out_size, int locality) - { - TPM_REQUEST req; - TPM_RESPONSE rsp; -@@ -4140,7 +4140,9 @@ int tpm_handle_command(const uint8_t *in, uint32_t in_size, uint8_t **out, uint3 - UINT32 len; - BOOL free_out; - -- debug("tpm_handle_command()"); -+ debug("tpm_handle_command(%d)", locality); -+ if (locality != -1) -+ tpmData.stany.flags.localityModifier = locality; - - /* we need the whole packet at once, otherwise unmarshalling will fail */ - if (tpm_unmarshal_TPM_REQUEST((uint8_t**)&in, &in_size, &req) != 0) { -diff --git a/tpm/tpm_emulator.h b/tpm/tpm_emulator.h -index eed749e..4c228bd 100644 ---- a/tpm/tpm_emulator.h -+++ b/tpm/tpm_emulator.h -@@ -59,7 +59,7 @@ void tpm_emulator_shutdown(void); - * its usage. In case of an error, all internally allocated memory - * is released and the the state of out and out_size is unspecified. - */ --int tpm_handle_command(const uint8_t *in, uint32_t in_size, uint8_t **out, uint32_t *out_size); -+int tpm_handle_command(const uint8_t *in, uint32_t in_size, uint8_t **out, uint32_t *out_size, int locality); - - #endif /* _TPM_EMULATOR_H_ */ - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-parent-sign-ek.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-parent-sign-ek.patch deleted file mode 100644 index 14e66eee4..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/vtpm-parent-sign-ek.patch +++ /dev/null @@ -1,196 +0,0 @@ -diff --git a/tpm/tpm_cmd_handler.c b/tpm/tpm_cmd_handler.c -index 9e1cfb4..0fabf98 100644 ---- a/tpm/tpm_cmd_handler.c -+++ b/tpm/tpm_cmd_handler.c -@@ -3312,6 +3312,37 @@ static TPM_RESULT execute_TPM_OwnerReadPubek(TPM_REQUEST *req, TPM_RESPONSE *rsp - return res; - } - -+static TPM_RESULT execute_TPM_ParentSignEK(TPM_REQUEST *req, TPM_RESPONSE *rsp) -+{ -+ TPM_NONCE nonce; -+ TPM_RESULT res; -+ UINT32 sigSize; -+ BYTE *sig; -+ BYTE *ptr; -+ UINT32 len; -+ TPM_PCR_SELECTION targetPCR; -+ -+ tpm_compute_in_param_digest(req); -+ -+ ptr = req->param; -+ len = req->paramSize; -+ if (tpm_unmarshal_TPM_NONCE(&ptr, &len, &nonce) -+ || tpm_unmarshal_TPM_PCR_SELECTION(&ptr, &len, &targetPCR) -+ || len != 0) return TPM_BAD_PARAMETER; -+ -+ res = TPM_ParentSignEK(&nonce, &targetPCR, &req->auth1, &sigSize, &sig); -+ if (res != TPM_SUCCESS) return res; -+ rsp->paramSize = len = sigSize; -+ rsp->param = ptr = tpm_malloc(len); -+ if (ptr == NULL || tpm_marshal_BLOB(&ptr, &len, sig, sigSize)) { -+ tpm_free(rsp->param); -+ res = TPM_FAIL; -+ } -+ tpm_free(sig); -+ -+ return res; -+} -+ - static void tpm_setup_rsp_auth(TPM_COMMAND_CODE ordinal, TPM_RESPONSE *rsp) - { - tpm_hmac_ctx_t hmac; -@@ -4062,6 +4093,11 @@ void tpm_execute_command(TPM_REQUEST *req, TPM_RESPONSE *rsp) - res = execute_TPM_OwnerReadPubek(req, rsp); - break; - -+ case TPM_ORD_ParentSignEK: -+ debug("[TPM_ORD_ParentSignEK]"); -+ res = execute_TPM_ParentSignEK(req, rsp); -+ break; -+ - default: - #ifdef MTM_EMULATOR - res = mtm_execute_command(req, rsp); -diff --git a/tpm/tpm_commands.h b/tpm/tpm_commands.h -index a7666f6..7fef934 100644 ---- a/tpm/tpm_commands.h -+++ b/tpm/tpm_commands.h -@@ -3054,6 +3054,23 @@ TPM_RESULT TPM_OwnerReadPubek( - TPM_PUBKEY *pubEndorsementKey - ); - -+/** -+ * TPM_ParentSignEK - gets a hardware TPM quote of a vTPM's EK -+ * @externalData: [in] AntiReplay nonce to prevent replay of messages -+ * @sel: [in] PCR selection for the hardware TPM's quote -+ * @auth1: [in, out] Authorization protocol parameters -+ * @sigSize: [out] The length of the returned digital signature -+ * @sig: [out] The resulting digital signature and PCR values -+ * Returns: TPM_SUCCESS on success, a TPM error code otherwise. -+ */ -+TPM_RESULT TPM_ParentSignEK( -+ TPM_NONCE *externalData, -+ TPM_PCR_SELECTION *sel, -+ TPM_AUTH *auth1, -+ UINT32 *sigSize, -+ BYTE **sig -+); -+ - /* - * Error handling - * [tpm_error.c] -diff --git a/tpm/tpm_credentials.c b/tpm/tpm_credentials.c -index 9cd64af..01f29e6 100644 ---- a/tpm/tpm_credentials.c -+++ b/tpm/tpm_credentials.c -@@ -180,3 +180,34 @@ TPM_RESULT TPM_OwnerReadInternalPub(TPM_KEY_HANDLE keyHandle, TPM_AUTH *auth1, - return TPM_BAD_PARAMETER; - } - } -+ -+int endorsementKeyFresh = 0; -+ -+TPM_RESULT VTPM_GetParentQuote(TPM_DIGEST* data, TPM_PCR_SELECTION *sel, UINT32 *sigSize, BYTE **sig); -+ -+TPM_RESULT TPM_ParentSignEK(TPM_NONCE *externalData, TPM_PCR_SELECTION *sel, -+ TPM_AUTH *auth1, UINT32 *sigSize, BYTE **sig) -+{ -+ TPM_PUBKEY pubKey; -+ TPM_RESULT res; -+ TPM_DIGEST hres; -+ -+ info("TPM_ParentSignEK()"); -+ -+ res = tpm_verify_auth(auth1, tpmData.permanent.data.ownerAuth, TPM_KH_OWNER); -+ if (res != TPM_SUCCESS) return res; -+ -+ if (!endorsementKeyFresh) return TPM_DISABLED_CMD; -+ -+ res = tpm_get_pubek(&pubKey); -+ if (res != TPM_SUCCESS) return res; -+ -+ if (tpm_compute_pubkey_checksum(externalData, &pubKey, &hres)) -+ res = TPM_FAIL; -+ -+ if (res == TPM_SUCCESS) -+ res = VTPM_GetParentQuote(&hres, sel, sigSize, sig); -+ -+ free_TPM_PUBKEY(pubKey); -+ return res; -+} -diff --git a/tpm/tpm_data.c b/tpm/tpm_data.c -index 50c9697..6a0c499 100644 ---- a/tpm/tpm_data.c -+++ b/tpm/tpm_data.c -@@ -76,6 +76,8 @@ static void init_timeouts(void) - tpmData.permanent.data.cmd_durations[2] = 1000; - } - -+extern int endorsementKeyFresh; -+ - void tpm_init_data(void) - { - /* endorsement key */ -@@ -157,6 +159,7 @@ void tpm_init_data(void) - if (tpmConf & TPM_CONF_GENERATE_EK) { - /* generate a new endorsement key */ - tpm_rsa_generate_key(&tpmData.permanent.data.endorsementKey, 2048); -+ endorsementKeyFresh = 1; - } else { - /* setup endorsement key */ - tpm_rsa_import_key(&tpmData.permanent.data.endorsementKey, -diff --git a/tpm/tpm_structures.h b/tpm/tpm_structures.h -index f746c05..b0f4625 100644 ---- a/tpm/tpm_structures.h -+++ b/tpm/tpm_structures.h -@@ -658,6 +658,49 @@ typedef struct tdTPM_CMK_MA_APPROVAL { - #define TPM_ORD_TickStampBlob 242 - #define TPM_ORD_MAX 256 - -+/* VTPM-only commands: */ -+/* -+ * ParentSignEK - Proof of fresh provisioning and EK value -+ * -+ * Input: -+ * TPM_TAG tag TPM_TAG_RQU_AUTH1_COMMAND -+ * UINT32 paramSize Total size of request -+ * TPM_COMMAND_CODE ordinal TPM_ORD_ParentSignEK -+ * TPM_NONCE externData 20 bytes of external data -+ * TPM_PCR_SELECTION ptSel PCR selection for physical TPM -+ * --- -+ * UINT32 authHandle Owner authorization session (OIAP) -+ * TPM_NONCE nonceOdd Nonce for authHandle -+ * BOOL continueAuth Continue flag for authHandle -+ * TPM_AUTHDATA privAuth Authorization digest for command -+ * -+ * Output: -+ * TPM_TAG tag TPM_TAG_RSP_AUTH1_COMMAND -+ * UINT32 paramSize Total size of response -+ * TPM_RESULT returnCode Return code of the operation -+ * BYTE[] sig Signature provided by physical TPM -+ * TPM_PCRVALUE[] pcrValue Values of hardware PCRs used in the quote -+ * --- -+ * TPM_NONCE nonceEven Nonce for authHandle -+ * BOOL continueAuth Continue flag for authHandle -+ * TPM_AUTHDATA resAuth Authorization digest for response -+ * -+ * This command is only valid on the first boot of a vTPM; on any subsequent -+ * boot, the command returns TPM_DISABLED_CMD. It is intended to be used to -+ * provide evidence of proper platform configuration to the verifier/CA which is -+ * responsible for the creation of the vTPM's endorsement credential, which will -+ * be used on subsequent boots to certify AIKs via the usual Privacy CA protocol. -+ * -+ * The values of the virtual TPM's PCRs are not included in the response. -+ * The signature is a standard TPM_Quote response from the physical TPM; its -+ * externalData is the SHA1 hash of the following structure: -+ * TPM_PUBKEY pubEK The vTPM's public EK -+ * TPM_NONCE externData From input to the deep quote -+ * -+ * This structure was chosen to match the return of TPM_ReadPubek -+ */ -+#define TPM_ORD_ParentSignEK (TPM_VENDOR_COMMAND | TPM_ORD_ReadPubek) -+ - /* - * TCS Ordinals ([TPM_Part2], Section 17.1) - * diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa246-4.9.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/xsa246-4.9.patch deleted file mode 100644 index 6370a1062..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa246-4.9.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Julien Grall <julien.grall@linaro.org> -Subject: x86/pod: prevent infinite loop when shattering large pages - -When populating pages, the PoD may need to split large ones using -p2m_set_entry and request the caller to retry (see ept_get_entry for -instance). - -p2m_set_entry may fail to shatter if it is not possible to allocate -memory for the new page table. However, the error is not propagated -resulting to the callers to retry infinitely the PoD. - -Prevent the infinite loop by return false when it is not possible to -shatter the large mapping. - -This is XSA-246. - -Signed-off-by: Julien Grall <julien.grall@linaro.org> -Signed-off-by: Jan Beulich <jbeulich@suse.com> -Reviewed-by: George Dunlap <george.dunlap@citrix.com> - ---- a/xen/arch/x86/mm/p2m-pod.c -+++ b/xen/arch/x86/mm/p2m-pod.c -@@ -1071,9 +1071,8 @@ p2m_pod_demand_populate(struct p2m_domai - * NOTE: In a fine-grained p2m locking scenario this operation - * may need to promote its locking from gfn->1g superpage - */ -- p2m_set_entry(p2m, gfn_aligned, INVALID_MFN, PAGE_ORDER_2M, -- p2m_populate_on_demand, p2m->default_access); -- return 0; -+ return p2m_set_entry(p2m, gfn_aligned, INVALID_MFN, PAGE_ORDER_2M, -+ p2m_populate_on_demand, p2m->default_access); - } - - /* Only reclaim if we're in actual need of more cache. */ -@@ -1104,8 +1103,12 @@ p2m_pod_demand_populate(struct p2m_domai - - gfn_aligned = (gfn >> order) << order; - -- p2m_set_entry(p2m, gfn_aligned, mfn, order, p2m_ram_rw, -- p2m->default_access); -+ if ( p2m_set_entry(p2m, gfn_aligned, mfn, order, p2m_ram_rw, -+ p2m->default_access) ) -+ { -+ p2m_pod_cache_add(p2m, p, order); -+ goto out_fail; -+ } - - for( i = 0; i < (1UL << order); i++ ) - { -@@ -1150,13 +1153,18 @@ remap_and_retry: - BUG_ON(order != PAGE_ORDER_2M); - pod_unlock(p2m); - -- /* Remap this 2-meg region in singleton chunks */ -- /* NOTE: In a p2m fine-grained lock scenario this might -- * need promoting the gfn lock from gfn->2M superpage */ -+ /* -+ * Remap this 2-meg region in singleton chunks. See the comment on the -+ * 1G page splitting path above for why a single call suffices. -+ * -+ * NOTE: In a p2m fine-grained lock scenario this might -+ * need promoting the gfn lock from gfn->2M superpage. -+ */ - gfn_aligned = (gfn>>order)<<order; -- for(i=0; i<(1<<order); i++) -- p2m_set_entry(p2m, gfn_aligned + i, INVALID_MFN, PAGE_ORDER_4K, -- p2m_populate_on_demand, p2m->default_access); -+ if ( p2m_set_entry(p2m, gfn_aligned, INVALID_MFN, PAGE_ORDER_4K, -+ p2m_populate_on_demand, p2m->default_access) ) -+ return -1; -+ - if ( tb_init_done ) - { - struct { diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa248.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/xsa248.patch deleted file mode 100644 index 966c16e04..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa248.patch +++ /dev/null @@ -1,164 +0,0 @@ -From: Jan Beulich <jbeulich@suse.com> -Subject: x86/mm: don't wrongly set page ownership - -PV domains can obtain mappings of any pages owned by the correct domain, -including ones that aren't actually assigned as "normal" RAM, but used -by Xen internally. At the moment such "internal" pages marked as owned -by a guest include pages used to track logdirty bits, as well as p2m -pages and the "unpaged pagetable" for HVM guests. Since the PV memory -management and shadow code conflict in their use of struct page_info -fields, and since shadow code is being used for log-dirty handling for -PV domains, pages coming from the shadow pool must, for PV domains, not -have the domain set as their owner. - -While the change could be done conditionally for just the PV case in -shadow code, do it unconditionally (and for consistency also for HAP), -just to be on the safe side. - -There's one special case though for shadow code: The page table used for -running a HVM guest in unpaged mode is subject to get_page() (in -set_shadow_status()) and hence must have its owner set. - -This is XSA-248. - -Signed-off-by: Jan Beulich <jbeulich@suse.com> -Reviewed-by: Tim Deegan <tim@xen.org> -Reviewed-by: George Dunlap <george.dunlap@citrix.com> ---- -v2: Drop PGC_page_table related pieces. - ---- a/xen/arch/x86/mm/hap/hap.c -+++ b/xen/arch/x86/mm/hap/hap.c -@@ -286,8 +286,7 @@ static struct page_info *hap_alloc_p2m_p - { - d->arch.paging.hap.total_pages--; - d->arch.paging.hap.p2m_pages++; -- page_set_owner(pg, d); -- pg->count_info |= 1; -+ ASSERT(!page_get_owner(pg) && !(pg->count_info & PGC_count_mask)); - } - else if ( !d->arch.paging.p2m_alloc_failed ) - { -@@ -302,21 +301,23 @@ static struct page_info *hap_alloc_p2m_p - - static void hap_free_p2m_page(struct domain *d, struct page_info *pg) - { -+ struct domain *owner = page_get_owner(pg); -+ - /* This is called both from the p2m code (which never holds the - * paging lock) and the log-dirty code (which always does). */ - paging_lock_recursive(d); - -- ASSERT(page_get_owner(pg) == d); -- /* Should have just the one ref we gave it in alloc_p2m_page() */ -- if ( (pg->count_info & PGC_count_mask) != 1 ) { -- HAP_ERROR("Odd p2m page %p count c=%#lx t=%"PRtype_info"\n", -- pg, pg->count_info, pg->u.inuse.type_info); -+ /* Should still have no owner and count zero. */ -+ if ( owner || (pg->count_info & PGC_count_mask) ) -+ { -+ HAP_ERROR("d%d: Odd p2m page %"PRI_mfn" d=%d c=%lx t=%"PRtype_info"\n", -+ d->domain_id, mfn_x(page_to_mfn(pg)), -+ owner ? owner->domain_id : DOMID_INVALID, -+ pg->count_info, pg->u.inuse.type_info); - WARN(); -+ pg->count_info &= ~PGC_count_mask; -+ page_set_owner(pg, NULL); - } -- pg->count_info &= ~PGC_count_mask; -- /* Free should not decrement domain's total allocation, since -- * these pages were allocated without an owner. */ -- page_set_owner(pg, NULL); - d->arch.paging.hap.p2m_pages--; - d->arch.paging.hap.total_pages++; - hap_free(d, page_to_mfn(pg)); ---- a/xen/arch/x86/mm/shadow/common.c -+++ b/xen/arch/x86/mm/shadow/common.c -@@ -1503,32 +1503,29 @@ shadow_alloc_p2m_page(struct domain *d) - pg = mfn_to_page(shadow_alloc(d, SH_type_p2m_table, 0)); - d->arch.paging.shadow.p2m_pages++; - d->arch.paging.shadow.total_pages--; -+ ASSERT(!page_get_owner(pg) && !(pg->count_info & PGC_count_mask)); - - paging_unlock(d); - -- /* Unlike shadow pages, mark p2m pages as owned by the domain. -- * Marking the domain as the owner would normally allow the guest to -- * create mappings of these pages, but these p2m pages will never be -- * in the domain's guest-physical address space, and so that is not -- * believed to be a concern. */ -- page_set_owner(pg, d); -- pg->count_info |= 1; - return pg; - } - - static void - shadow_free_p2m_page(struct domain *d, struct page_info *pg) - { -- ASSERT(page_get_owner(pg) == d); -- /* Should have just the one ref we gave it in alloc_p2m_page() */ -- if ( (pg->count_info & PGC_count_mask) != 1 ) -+ struct domain *owner = page_get_owner(pg); -+ -+ /* Should still have no owner and count zero. */ -+ if ( owner || (pg->count_info & PGC_count_mask) ) - { -- SHADOW_ERROR("Odd p2m page count c=%#lx t=%"PRtype_info"\n", -+ SHADOW_ERROR("d%d: Odd p2m page %"PRI_mfn" d=%d c=%lx t=%"PRtype_info"\n", -+ d->domain_id, mfn_x(page_to_mfn(pg)), -+ owner ? owner->domain_id : DOMID_INVALID, - pg->count_info, pg->u.inuse.type_info); -+ pg->count_info &= ~PGC_count_mask; -+ page_set_owner(pg, NULL); - } -- pg->count_info &= ~PGC_count_mask; - pg->u.sh.type = SH_type_p2m_table; /* p2m code reuses type-info */ -- page_set_owner(pg, NULL); - - /* This is called both from the p2m code (which never holds the - * paging lock) and the log-dirty code (which always does). */ -@@ -3132,7 +3129,9 @@ int shadow_enable(struct domain *d, u32 - e = __map_domain_page(pg); - write_32bit_pse_identmap(e); - unmap_domain_page(e); -+ pg->count_info = 1; - pg->u.inuse.type_info = PGT_l2_page_table | 1 | PGT_validated; -+ page_set_owner(pg, d); - } - - paging_lock(d); -@@ -3170,7 +3169,11 @@ int shadow_enable(struct domain *d, u32 - if ( rv != 0 && !pagetable_is_null(p2m_get_pagetable(p2m)) ) - p2m_teardown(p2m); - if ( rv != 0 && pg != NULL ) -+ { -+ pg->count_info &= ~PGC_count_mask; -+ page_set_owner(pg, NULL); - shadow_free_p2m_page(d, pg); -+ } - domain_unpause(d); - return rv; - } -@@ -3279,7 +3282,22 @@ out: - - /* Must be called outside the lock */ - if ( unpaged_pagetable ) -+ { -+ if ( page_get_owner(unpaged_pagetable) == d && -+ (unpaged_pagetable->count_info & PGC_count_mask) == 1 ) -+ { -+ unpaged_pagetable->count_info &= ~PGC_count_mask; -+ page_set_owner(unpaged_pagetable, NULL); -+ } -+ /* Complain here in cases where shadow_free_p2m_page() won't. */ -+ else if ( !page_get_owner(unpaged_pagetable) && -+ !(unpaged_pagetable->count_info & PGC_count_mask) ) -+ SHADOW_ERROR("d%d: Odd unpaged pt %"PRI_mfn" c=%lx t=%"PRtype_info"\n", -+ d->domain_id, mfn_x(page_to_mfn(unpaged_pagetable)), -+ unpaged_pagetable->count_info, -+ unpaged_pagetable->u.inuse.type_info); - shadow_free_p2m_page(d, unpaged_pagetable); -+ } - } - - void shadow_final_teardown(struct domain *d) diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa249.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/xsa249.patch deleted file mode 100644 index ecfa4305e..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa249.patch +++ /dev/null @@ -1,42 +0,0 @@ -From: Jan Beulich <jbeulich@suse.com> -Subject: x86/shadow: fix refcount overflow check - -Commit c385d27079 ("x86 shadow: for multi-page shadows, explicitly track -the first page") reduced the refcount width to 25, without adjusting the -overflow check. Eliminate the disconnect by using a manifest constant. - -Interestingly, up to commit 047782fa01 ("Out-of-sync L1 shadows: OOS -snapshot") the refcount was 27 bits wide, yet the check was already -using 26. - -This is XSA-249. - -Signed-off-by: Jan Beulich <jbeulich@suse.com> -Reviewed-by: George Dunlap <george.dunlap@citrix.com> -Reviewed-by: Tim Deegan <tim@xen.org> ---- -v2: Simplify expression back to the style it was. - ---- a/xen/arch/x86/mm/shadow/private.h -+++ b/xen/arch/x86/mm/shadow/private.h -@@ -529,7 +529,7 @@ static inline int sh_get_ref(struct doma - x = sp->u.sh.count; - nx = x + 1; - -- if ( unlikely(nx >= 1U<<26) ) -+ if ( unlikely(nx >= (1U << PAGE_SH_REFCOUNT_WIDTH)) ) - { - SHADOW_PRINTK("shadow ref overflow, gmfn=%lx smfn=%lx\n", - __backpointer(sp), mfn_x(smfn)); ---- a/xen/include/asm-x86/mm.h -+++ b/xen/include/asm-x86/mm.h -@@ -82,7 +82,8 @@ struct page_info - unsigned long type:5; /* What kind of shadow is this? */ - unsigned long pinned:1; /* Is the shadow pinned? */ - unsigned long head:1; /* Is this the first page of the shadow? */ -- unsigned long count:25; /* Reference count */ -+#define PAGE_SH_REFCOUNT_WIDTH 25 -+ unsigned long count:PAGE_SH_REFCOUNT_WIDTH; /* Reference count */ - } sh; - - /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */ diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa250.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/xsa250.patch deleted file mode 100644 index 26aeb33fe..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa250.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: Jan Beulich <jbeulich@suse.com> -Subject: x86/shadow: fix ref-counting error handling - -The old-Linux handling in shadow_set_l4e() mistakenly ORed together the -results of sh_get_ref() and sh_pin(). As the latter failing is not a -correctness problem, simply ignore its return value. - -In sh_set_toplevel_shadow() a failing sh_get_ref() must not be -accompanied by installing the entry, despite the domain being crashed. - -This is XSA-250. - -Signed-off-by: Jan Beulich <jbeulich@suse.com> -Reviewed-by: Tim Deegan <tim@xen.org> - ---- a/xen/arch/x86/mm/shadow/multi.c -+++ b/xen/arch/x86/mm/shadow/multi.c -@@ -923,7 +923,7 @@ static int shadow_set_l4e(struct domain - shadow_l4e_t new_sl4e, - mfn_t sl4mfn) - { -- int flags = 0, ok; -+ int flags = 0; - shadow_l4e_t old_sl4e; - paddr_t paddr; - ASSERT(sl4e != NULL); -@@ -938,15 +938,16 @@ static int shadow_set_l4e(struct domain - { - /* About to install a new reference */ - mfn_t sl3mfn = shadow_l4e_get_mfn(new_sl4e); -- ok = sh_get_ref(d, sl3mfn, paddr); -- /* Are we pinning l3 shadows to handle wierd linux behaviour? */ -- if ( sh_type_is_pinnable(d, SH_type_l3_64_shadow) ) -- ok |= sh_pin(d, sl3mfn); -- if ( !ok ) -+ -+ if ( !sh_get_ref(d, sl3mfn, paddr) ) - { - domain_crash(d); - return SHADOW_SET_ERROR; - } -+ -+ /* Are we pinning l3 shadows to handle weird Linux behaviour? */ -+ if ( sh_type_is_pinnable(d, SH_type_l3_64_shadow) ) -+ sh_pin(d, sl3mfn); - } - - /* Write the new entry */ -@@ -3965,14 +3966,15 @@ sh_set_toplevel_shadow(struct vcpu *v, - - /* Take a ref to this page: it will be released in sh_detach_old_tables() - * or the next call to set_toplevel_shadow() */ -- if ( !sh_get_ref(d, smfn, 0) ) -+ if ( sh_get_ref(d, smfn, 0) ) -+ new_entry = pagetable_from_mfn(smfn); -+ else - { - SHADOW_ERROR("can't install %#lx as toplevel shadow\n", mfn_x(smfn)); - domain_crash(d); -+ new_entry = pagetable_null(); - } - -- new_entry = pagetable_from_mfn(smfn); -- - install_new_entry: - /* Done. Install it */ - SHADOW_PRINTK("%u/%u [%u] gmfn %#"PRI_mfn" smfn %#"PRI_mfn"\n", diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa251.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/xsa251.patch deleted file mode 100644 index 582ef622e..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa251.patch +++ /dev/null @@ -1,21 +0,0 @@ -From: Jan Beulich <jbeulich@suse.com> -Subject: x86/paging: don't unconditionally BUG() on finding SHARED_M2P_ENTRY - -PV guests can fully control the values written into the P2M. - -This is XSA-251. - -Signed-off-by: Jan Beulich <jbeulich@suse.com> -Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> - ---- a/xen/arch/x86/mm/paging.c -+++ b/xen/arch/x86/mm/paging.c -@@ -274,7 +274,7 @@ void paging_mark_pfn_dirty(struct domain - return; - - /* Shared MFNs should NEVER be marked dirty */ -- BUG_ON(SHARED_M2P(pfn_x(pfn))); -+ BUG_ON(paging_mode_translate(d) && SHARED_M2P(pfn_x(pfn))); - - /* - * Values with the MSB set denote MFNs that aren't really part of the diff --git a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa253.patch b/import-layers/meta-virtualization/recipes-extended/xen/files/xsa253.patch deleted file mode 100644 index 19e426935..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/files/xsa253.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Andrew Cooper <andrew.cooper3@citrix.com> -Subject: x86/msr: Free msr_vcpu_policy during vcpu destruction - -c/s 4187f79dc7 "x86/msr: introduce struct msr_vcpu_policy" introduced a -per-vcpu memory allocation, but failed to free it in the clean vcpu -destruction case. - -This is XSA-253 - -Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> -Reviewed-by: Jan Beulich <jbeulich@suse.com> - -diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c -index b17468c..0ae715d 100644 ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c -@@ -382,6 +382,9 @@ void vcpu_destroy(struct vcpu *v) - - vcpu_destroy_fpu(v); - -+ xfree(v->arch.msr); -+ v->arch.msr = NULL; -+ - if ( !is_idle_domain(v->domain) ) - vpmu_destroy(v); - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/lwip.inc b/import-layers/meta-virtualization/recipes-extended/xen/lwip.inc deleted file mode 100644 index e08363326..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/lwip.inc +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2018 kebodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require stubdom.inc - -# clear this out to break dependency circle -DEPENDS = "" - -# Nothing to configure or compile -# For stubdoms, lwip is basically a source package with a couple of patches applied. -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -# needed because this directory isn't typically part of a sysroot -SYSROOT_DIRS += "${prefix}/lwip" - -FILES_${PN} = "\ - ${prefix} \ -" - -do_install() { - install -d ${D}${prefix}/lwip - cp -r -t ${D}${prefix}/lwip ${S}/src/* -} diff --git a/import-layers/meta-virtualization/recipes-extended/xen/lwip_1.3.0.bb b/import-layers/meta-virtualization/recipes-extended/xen/lwip_1.3.0.bb deleted file mode 100644 index b7d8e95dc..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/lwip_1.3.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (C) 2018 kebodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "LWIP" -HOMEPAGE = "https://savannah.nongnu.org/projects/lwip" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=59a383b05013356e0c9899b06dc5da3f" - -SRCREV_lwip = "bcb4afa886408bf0a1dde9c2a4a00323c8b07eb1" -SRC_URI = "\ - git://git.savannah.gnu.org/lwip.git;protocol=git;nobranch=1;destsuffix=lwip;name=lwip \ - file://lwip.patch-cvs \ - file://lwip.dhcp_create_request-hwaddr_len.patch \ -" - -S="${WORKDIR}/${PN}" -B="${S}" - -require lwip.inc diff --git a/import-layers/meta-virtualization/recipes-extended/xen/mini-os.inc b/import-layers/meta-virtualization/recipes-extended/xen/mini-os.inc deleted file mode 100644 index 61c270417..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/mini-os.inc +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (C) 2018 kebodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require stubdom.inc - -# clear this out to break dependency circle -DEPENDS = "" - -do_configure() { - ${MAKE} -C ${WORKDIR}/mini-os links -} - -# Nothing to configure or compile -do_compile[noexec] = "1" - -# needed because this directory isn't typically part of a sysroot -SYSROOT_DIRS += "${prefix}/mini-os" -RDEPENDS_${PN}-dev = "perl" - -FILES_${PN}-dev = "\ - ${prefix} \ -" - -do_install() { - install -d ${D}${prefix}/mini-os - cp -r -t ${D}${prefix}/mini-os ${S}/* - rm -rf ${D}${prefix}/mini-os/scripts -} diff --git a/import-layers/meta-virtualization/recipes-extended/xen/mini-os_4.9.0.bb b/import-layers/meta-virtualization/recipes-extended/xen/mini-os_4.9.0.bb deleted file mode 100644 index 298bc8df6..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/mini-os_4.9.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "Mini-OS is a tiny OS kernel distributed with the Xen Project" -HOMEPAGE = "https://wiki.xenproject.org/wiki/Mini-OS" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=8a437231894440a8f7629caa372243d0" - -# git commit hash for tags: xen-RELEASE-4.9.0, xen-RELEASE-4.9.1, xen-RELEASE-4.9.2 -SRCREV_minios = "ca013fa9baf92f47469ba1f2e1aaa31c41d8a0bb" -SRC_URI = "\ - git://xenbits.xen.org/mini-os.git;protocol=git;nobranch=1;destsuffix=mini-os;name=minios \ - file://mini-os_udivmoddi4-gcc7.patch \ -" -S="${WORKDIR}/mini-os" -B="${S}" - -require mini-os.inc diff --git a/import-layers/meta-virtualization/recipes-extended/xen/newlib.inc b/import-layers/meta-virtualization/recipes-extended/xen/newlib.inc deleted file mode 100644 index 1fdbd0aa4..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/newlib.inc +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require stubdom.inc - -CPPFLAGS_INCLUDE_DIR = "-isystem `${HOST_PREFIX}gcc -print-file-name=include`" -STUBDOM_CFLAGS += "-D_I386MACH_ALLOW_HW_INTERRUPTS" - -export ac_cv_path_CC_FOR_TARGET="${HOST_PREFIX}gcc --sysroot=${RECIPE_SYSROOT} ${STUBDOM_CPPFLAGS} ${STUBDOM_CFLAGS}" -export CC_FOR_TARGET="${HOST_PREFIX}gcc --sysroot=${RECIPE_SYSROOT} ${STUBDOM_CPPFLAGS} ${STUBDOM_CFLAGS}" - -export ac_cv_path_CXX_FOR_TARGET="${HOST_PREFIX}g++ --sysroot=${RECIPE_SYSROOT}" -export CXX_FOR_TARGET="${HOST_PREFIX}g++ --sysroot=${RECIPE_SYSROOT}" - -export ac_cv_path_CPP_FOR_TARGET="${HOST_PREFIX}gcc -E --sysroot=${RECIPE_SYSROOT}" -export CPP_FOR_TARGET="${HOST_PREFIX}gcc -E --sysroot=${RECIPE_SYSROOT}" - -export ac_cv_path_LD_FOR_TARGET="${HOST_PREFIX}ld --sysroot=${RECIPE_SYSROOT}" -export LD_FOR_TARGET="${HOST_PREFIX}ld --sysroot=${RECIPE_SYSROOT}" - -export ac_cv_path_AS_FOR_TARGET="${HOST_PREFIX}as" -export AS_FOR_TARGET="${HOST_PREFIX}as" - -export ac_cv_path_AR_FOR_TARGET="${HOST_PREFIX}ar" -export AR_FOR_TARGET="${HOST_PREFIX}ar" - -export ac_cv_path_NM_FOR_TARGET="${HOST_PREFIX}nm" -export NM_FOR_TARGET="${HOST_PREFIX}nm" - -export ac_cv_path_RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib" -export RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib" - -export ac_cv_path_OBJDUMP_FOR_TARGET="${HOST_PREFIX}objdump" -export OBJDUMP_FOR_TARGET="${HOST_PREFIX}objdump" - -export ac_cv_path_OBJCOPY_FOR_TARGET="${HOST_PREFIX}objcopy" -export OBJCOPY_FOR_TARGET="${HOST_PREFIX}objcopy" - -export ac_cv_path_STRIP_FOR_TARGET="${HOST_PREFIX}strip" -export STRIP_FOR_TARGET="${HOST_PREFIX}strip" - -export ac_cv_path_STRINGS_FOR_TARGET="${HOST_PREFIX}strings" -export STRINGS_FOR_TARGET="${HOST_PREFIX}strings" - -export ac_cv_path_READELF_FOR_TARGET="${HOST_PREFIX}readelf" -export READELF_FOR_TARGET="${HOST_PREFIX}readelf" - -do_configure() { - ${S}/configure --verbose --prefix=${prefix} --target=${GNU_TARGET_ARCH}-xen-elf --enable-newlib-io-long-long --disable-multilib - find ${S} -type f | xargs perl -i.bak -pe 's/\b_(tzname|daylight|timezone)\b/$1/g' -} - -do_compile() { - ${MAKE} -} - -do_install() { - ${MAKE} DESTDIR=${D} install - rm -rf ${D}/cross-root-${GNU_TARGET_ARCH}/share - rm -rf ${D}/cross-root-${GNU_TARGET_ARCH}/info - install -m 644 `${HOST_PREFIX}gcc -print-file-name=include`/stdarg.h -t ${D}/${includedir} - install -m 644 `${HOST_PREFIX}gcc -print-file-name=include`/stddef.h -t ${D}/${includedir} - install -m 644 `${HOST_PREFIX}gcc -print-file-name=include`/stdbool.h -t ${D}/${includedir} -} diff --git a/import-layers/meta-virtualization/recipes-extended/xen/newlib_1.16.0.bb b/import-layers/meta-virtualization/recipes-extended/xen/newlib_1.16.0.bb deleted file mode 100644 index 60672bea0..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/newlib_1.16.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "Newlib is a C library intended for use on embedded systems." -HOMEPAGE = "http://sourceware.org/newlib" -LICENSE = "GPLv2 & LGPLv3 & GPLv3 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING.NEWLIB;md5=950f50b290e8fcf7a2d3fff61775de9b" - -# this is the hash of version tag 1_16_0 -SRCREV_newlib = "07b4b67a88f386ce4716a14e0ff2c2bce992b985" -SRC_URI = "\ - git://sourceware.org/git/newlib-cygwin.git;protocol=git;nobranch=1;destsuffix=newlib;name=newlib \ - file://newlib.patch \ - file://newlib-chk.patch \ - file://newlib-stdint-size_max-fix-from-1.17.0.patch \ -" - -S="${WORKDIR}/newlib" -B="${WORKDIR}/build" - -require newlib.inc diff --git a/import-layers/meta-virtualization/recipes-extended/xen/polarssl.inc b/import-layers/meta-virtualization/recipes-extended/xen/polarssl.inc deleted file mode 100644 index eae95f406..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/polarssl.inc +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require stubdom.inc - -DEPENDS += "\ - newlib \ -" -STUBDOM_CFLAGS += "\ - -Wno-memset-elt-size \ - -Wno-implicit-fallthrough \ -" - -# nothing to configure -do_configure[noexec] = "1" - -do_compile() { - ${MAKE} CC="${HOST_PREFIX}gcc --sysroot=${RECIPE_SYSROOT} ${STUBDOM_CPPFLAGS} ${STUBDOM_CFLAGS}" -} - -do_install() { - install -d ${D}${includedir} - cp -r -t ${D}${includedir} ${S}/include/polarssl - - install -d ${D}/${libdir} - install -m 644 -t ${D}/${libdir} ${S}/library/libpolarssl.a -} diff --git a/import-layers/meta-virtualization/recipes-extended/xen/polarssl_1.1.4.bb b/import-layers/meta-virtualization/recipes-extended/xen/polarssl_1.1.4.bb deleted file mode 100644 index 80ea45a76..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/polarssl_1.1.4.bb +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "PolarSSL (now 'mbed TLS') is an open source, portable, easy to use, readable and flexible SSL library." -HOMEPAGE = "https://tls.mbed.org" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" - -# git hash for release tag polarssl-1.1.4 -SRCREV_polarssl = "d36da11125a9c85c572a4fdf63e0a25e76d7bb18" -SRC_URI = "\ - git://github.com/ARMmbed/mbedtls.git;protocol=https;nobranch=1;destsuffix=polarssl;name=polarssl \ - file://polarssl.patch; \ -" - -S="${WORKDIR}/${PN}" -B="${S}/library" - -require polarssl.inc diff --git a/import-layers/meta-virtualization/recipes-extended/xen/stubdom-gmp.inc b/import-layers/meta-virtualization/recipes-extended/xen/stubdom-gmp.inc deleted file mode 100644 index ef6473d4b..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/stubdom-gmp.inc +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require stubdom.inc - -DEPENDS += "\ - newlib \ -" - -do_configure() { - # need to modify prefix here during configure otherwise OE-level variables - # (prefix, libdir, includedir, etc...) defined in stubdom.inc get messed up - CPPFLAGS="-isystem ${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/${GNU_TARGET_ARCH}-xen-elf/include ${STUBDOM_CPPFLAGS}" \ - CFLAGS="${STUBDOM_CFLAGS}" \ - CC="${HOST_PREFIX}gcc --sysroot=${RECIPE_SYSROOT}" \ - ${S}/configure \ - --disable-shared \ - --enable-static \ - --disable-fft \ - --without-readline \ - --with-gnu-ld \ - --prefix=${prefix}/${GNU_TARGET_ARCH}-xen-elf \ - --libdir=${libdir} \ - --build=`${HOST_PREFIX}gcc -dumpmachine` \ - --host=${GNU_TARGET_ARCH}-xen-elf - - sed -i 's/#define HAVE_OBSTACK_VPRINTF 1/\/\/#define HAVE_OBSTACK_VPRINTF 1/' ${S}/config.h -} - -do_compile() { - ${MAKE} -} - -do_install() { - ${MAKE} DESTDIR=${D} install - rm -rf ${D}${prefix}/${GNU_TARGET_ARCH}-xen-elf/share -} diff --git a/import-layers/meta-virtualization/recipes-extended/xen/stubdom-gmp_4.3.2.bb b/import-layers/meta-virtualization/recipes-extended/xen/stubdom-gmp_4.3.2.bb deleted file mode 100644 index d9a2adbd3..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/stubdom-gmp_4.3.2.bb +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "GMP library for Xen vTPM's." -HOMEPAGE = "http://gmp" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ -" - -SRC_URI = "\ - https://gmplib.org/download/gmp/archive/gmp-${PV}.tar.bz2 \ -" -SRC_URI[md5sum] = "dd60683d7057917e34630b4a787932e8" -SRC_URI[sha256sum] = "936162c0312886c21581002b79932829aa048cfaf9937c6265aeaa14f1cd1775" - -S="${WORKDIR}/gmp-${PV}" -B="${S}" - -require stubdom-gmp.inc diff --git a/import-layers/meta-virtualization/recipes-extended/xen/stubdom.inc b/import-layers/meta-virtualization/recipes-extended/xen/stubdom.inc deleted file mode 100644 index bfc675276..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/stubdom.inc +++ /dev/null @@ -1,152 +0,0 @@ -# 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" diff --git a/import-layers/meta-virtualization/recipes-extended/xen/tpm-emulator.inc b/import-layers/meta-virtualization/recipes-extended/xen/tpm-emulator.inc deleted file mode 100644 index f58a27639..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/tpm-emulator.inc +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require stubdom.inc - -DEPENDS += "\ - cmake-native \ - newlib \ - stubdom-gmp \ -" - -# nothing to configure -do_configure[noexec] = "1" - -export CMAKE_C_FLAGS = "\ - -std=c99 \ - -DTPM_NO_EXTERN \ - ${STUBDOM_CPPFLAGS} \ - ${STUBDOM_CFLAGS} \ - -Wno-declaration-after-statement \ - -Wno-implicit-fallthrough \ -" - -do_compile() { - CC="${HOST_PREFIX}gcc --sysroot=${RECIPE_SYSROOT}" cmake .. -DCMAKE_C_FLAGS:STRING="${CMAKE_C_FLAGS}" - ${MAKE} VERBOSE=1 tpm_crypto tpm -} - -do_install() { - install -d ${D}/${libdir} - install -m 644 -t ${D}/${libdir} ${B}/crypto/libtpm_crypto.a - install -m 644 -t ${D}/${libdir} ${B}/tpm/libtpm.a - - install -D -m 644 -t ${D}/${includedir}/tpm-emulator/build ${S}/build/config.h - install -D -m 644 -t ${D}/${includedir}/tpm-emulator/crypto ${S}/crypto/*.h - install -D -m 644 -t ${D}/${includedir}/tpm-emulator/tpm ${S}/tpm/*.h -} diff --git a/import-layers/meta-virtualization/recipes-extended/xen/tpm-emulator_0.7.4.bb b/import-layers/meta-virtualization/recipes-extended/xen/tpm-emulator_0.7.4.bb deleted file mode 100644 index f6269297a..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/tpm-emulator_0.7.4.bb +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "TPM Emulator" -HOMEPAGE = "http://xenbits.xen.org/xen-extfiles" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://README;md5=eeabd77cf8fd8a8bc42983884cb09863" - -SRC_URI = "\ - http://xenbits.xen.org/xen-extfiles/tpm_emulator-${PV}.tar.gz;name=tpm-emulator \ - file://tpmemu-0.7.4.patch \ - file://vtpm-bufsize.patch \ - file://vtpm-locality.patch \ - file://vtpm-parent-sign-ek.patch \ - file://vtpm-deepquote.patch \ - file://vtpm-deepquote-anyloc.patch \ - file://vtpm-cmake-Wextra.patch \ - file://vtpm-implicit-fallthrough.patch \ -" -SRC_URI[tpm-emulator.md5sum] = "e26becb8a6a2b6695f6b3e8097593db8" -SRC_URI[tpm-emulator.sha256sum] = "4e48ea0d83dd9441cc1af04ab18cd6c961b9fa54d5cbf2c2feee038988dea459" - -S="${WORKDIR}/tpm_emulator-${PV}" -B="${S}/build" - -require tpm-emulator.inc diff --git a/import-layers/meta-virtualization/recipes-extended/xen/xen-arch.inc b/import-layers/meta-virtualization/recipes-extended/xen/xen-arch.inc deleted file mode 100644 index fb0093e39..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/xen-arch.inc +++ /dev/null @@ -1,18 +0,0 @@ - -valid_xen_archs = " \ - x86_64 x86_32 \ - arm32 arm64 \ - " - -def map_xen_arch(a, d): - import re - valid_archs = d.getVar('valid_xen_archs').split() - - if re.match("i.86", a): return "x86_32" - elif re.match("x86.64", a): return "x86_64" - elif re.match("arm.*", a): return "arm32" - elif re.match("aarch64.*", a): return "arm64" - elif a in valid_archs: return a - else: - return "INVALID" - diff --git a/import-layers/meta-virtualization/recipes-extended/xen/xen-vtpm.inc b/import-layers/meta-virtualization/recipes-extended/xen/xen-vtpm.inc deleted file mode 100644 index a94c7503d..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/xen-vtpm.inc +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -require stubdom.inc - -DEPENDS = "\ - newlib \ - lwip \ - mini-os \ - polarssl \ - stubdom-gmp \ - tpm-emulator \ -" -# These were unset by stubdom.inc to allow us to scope them per recipe -export CC="${HOST_PREFIX}gcc --sysroot=${RECIPE_SYSROOT}" -export CCLD="${HOST_PREFIX}gcc --sysroot=${RECIPE_SYSROOT}" -export CXX="${HOST_PREFIX}g++ --sysroot=${RECIPE_SYSROOT}" -export CPP="${HOST_PREFIX}gcc -E --sysroot=${RECIPE_SYSROOT}" -export LD="${HOST_PREFIX}ld --sysroot=${RECIPE_SYSROOT}" -export LD_LTO="${HOST_PREFIX}ld --sysroot=${RECIPE_SYSROOT}" -export AS="${HOST_PREFIX}as" -export AR="${HOST_PREFIX}ar" -export NM="${HOST_PREFIX}nm" -export RANLIB="${HOST_PREFIX}ranlib" -export OBJDUMP="${HOST_PREFIX}objdump" -export OBJCOPY="${HOST_PREFIX}objcopy" -export STRIP="${HOST_PREFIX}strip" -export STRINGS="${HOST_PREFIX}strings" -export READELF="${HOST_PREFIX}readelf" - - -# Required for some of the config stuff -export STUBDOM_TARGETS="vtpm vtpmmgr" - -VTPM_CPPFLAGS = "\ - -I${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/${GNU_TARGET_ARCH}-xen-elf/include/tpm-emulator/build \ - -I${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/${GNU_TARGET_ARCH}-xen-elf/include/tpm-emulator/crypto \ - -I${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/${GNU_TARGET_ARCH}-xen-elf/include/tpm-emulator/tpm \ - -I${RECIPE_SYSROOT}/cross-root-${GNU_TARGET_ARCH}/${GNU_TARGET_ARCH}-xen-elf/include/tpm-emulator \ -" - -# The includes from this Xen directory are not in the MiniOS repo, although they probably should be. -STUBDOM_CPPFLAGS += "-isystem ${B}/include/" - -do_configure() { - - # GCC 7 fails linking header defined inlines if not declared 'static' or 'extern' - # This appears to be fixed in Xen 4.10.0+, so let's look at version of Xen source - # to determine if we need to modify inline declarations. - # - # 'echo -e' to enable interpretation of backslashes - # 'sort -V' to natural sort version numbers - # 'head -n1' to capture the first line of output from sort command - - if [ "${PV}" = "$(echo "${PV};4.9.999" | sed 's/;/\n/' | sort -V | head -n1)" ]; then - sed -i "s/^inline/static inline/g" ${B}/vtpmmgr/*.h - fi - - for i in AR AS NM RANLIB OBJDUMP OBJCOPY STRIP STRINGS READELF CXX LD LD_LTO CC CPP; do - sed -i "s/^\($i\s\s*\).*=/\1?=/" ${MINIOS_SRCDIR}/Config.mk - done - - # replicate the TARGETS_MINIOS target in xen/stubdom/Makefile - for i in ${STUBDOM_TARGETS}; do - [ -d ${B}/mini-os-${XEN_TARGET_ARCH}-$i ] || - for j in $(cd ${MINIOS_SRCDIR} ; find . -type d) ; do \ - mkdir -p ${B}/mini-os-${XEN_TARGET_ARCH}-$i/$j; \ - done - done -} - -do_compile() { - ${MAKE} MINIOS_CONFIG="${B}/vtpm/minios.cfg" CONFIG_FILE="${B}/vtpm-minios-config.mk" DESTDIR= -C ${MINIOS_SRCDIR} config - CPPFLAGS="`cat ${B}/vtpm-minios-config.mk` ${STUBDOM_CPPFLAGS} ${VTPM_CPPFLAGS}" CFLAGS="${STUBDOM_CFLAGS}" ${MAKE} -C ${B}/vtpm - DEF_CPPFLAGS="${STUBDOM_CPPFLAGS}" \ - DEF_CFLAGS="${STUBDOM_CFLAGS}" \ - DEF_LDFLAGS="${STUBDOM_LDFLAGS}" \ - MINIOS_CONFIG="${B}/vtpm/minios.cfg" \ - ${MAKE} -C ${MINIOS_SRCDIR} \ - OBJ_DIR=${B}/mini-os-${XEN_TARGET_ARCH}-vtpm \ - APP_OBJS="${B}/vtpm/vtpm.a" \ - APP_LDLIBS="-ltpm -ltpm_crypto -lgmp -lpolarssl" - - ${MAKE} MINIOS_CONFIG="${B}/vtpmmgr/minios.cfg" CONFIG_FILE="${B}/vtpmmgr-minios-config.mk" DESTDIR= -C ${MINIOS_SRCDIR} config - CPPFLAGS="`cat ${B}/vtpmmgr-minios-config.mk` ${STUBDOM_CPPFLAGS}" CFLAGS="${STUBDOM_CFLAGS}" ${MAKE} -C ${B}/vtpmmgr - DEF_CPPFLAGS="${STUBDOM_CPPFLAGS}" \ - DEF_CFLAGS="${STUBDOM_CFLAGS}" \ - DEF_LDFLAGS="${STUBDOM_LDFLAGS}" \ - MINIOS_CONFIG="${B}/vtpmmgr/minios.cfg" \ - ${MAKE} -C ${MINIOS_SRCDIR} \ - OBJ_DIR=${B}/mini-os-${XEN_TARGET_ARCH}-vtpmmgr \ - APP_OBJS="${B}/vtpmmgr/vtpmmgr.a" \ - APP_LDLIBS="-lm -lpolarssl" -} - -PACKAGES = "\ - ${PN}-vtpm-stubdom \ - ${PN}-vtpmmgr-stubdom \ -" -FILES_${PN}-vtpm-stubdom="\ - ${libdir}/xen/boot/vtpm-stubdom.gz \ -" - -FILES_${PN}-vtpmmgr-stubdom="\ - ${libdir}/xen/boot/vtpmmgr-stubdom.gz \ -" - -do_install() { - install -m 644 -D ${B}/mini-os-${XEN_TARGET_ARCH}-vtpm/mini-os.gz ${D}${libdir}/xen/boot/vtpm-stubdom.gz - install -m 644 -D ${B}/mini-os-${XEN_TARGET_ARCH}-vtpmmgr/mini-os.gz ${D}${libdir}/xen/boot/vtpmmgr-stubdom.gz -} diff --git a/import-layers/meta-virtualization/recipes-extended/xen/xen-vtpm_4.9.0.bb b/import-layers/meta-virtualization/recipes-extended/xen/xen-vtpm_4.9.0.bb deleted file mode 100644 index c58a02d8e..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/xen-vtpm_4.9.0.bb +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (C) 2017 Kurt Bodiker <kurt.bodiker@braintrust-us.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "MiniOS-based vTPMs for Xen" -HOMEPAGE = "https://www.xenproject.org" -LICENSE = "GPLv2 & BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=b1ceb1b03a49b202ee6f41ffd1ed0155 \ - file://vtpm/COPYING;md5=75a98062ab0322ded060d9026a1bda61 \ -" - -# git commit hash for Xen's RELEASE-4.9.0 tag -SRCREV_xen = "c30bf55594a53fae8aae08aabf16fc192faad7da" -SRC_URI = "\ - git://xenbits.xen.org/xen.git;protocol=git;nobranch=1;name=xen;subpath=stubdom \ - git://xenbits.xen.org/xen.git;protocol=git;nobranch=1;name=xen;destsuffix=stubdom/include;subpath=tools/xenstore/include \ -" - -S="${WORKDIR}/stubdom" -B="${S}" - -require xen-vtpm.inc diff --git a/import-layers/meta-virtualization/recipes-extended/xen/xen.inc b/import-layers/meta-virtualization/recipes-extended/xen/xen.inc deleted file mode 100644 index 8dfe589af..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/xen.inc +++ /dev/null @@ -1,1049 +0,0 @@ -DESCRIPTION = "Xen hypervisor" -HOMEPAGE = "http://xen.org" -LICENSE = "GPLv2" -SECTION = "console/tools" - -LIC_FILES_CHKSUM = "file://COPYING;md5=bbb4b1bdc2c3b6743da3c39d03249095" - -COMPATIBLE_HOST = '(x86_64.*).*-linux|aarch64.*-linux' - -inherit autotools-brokensep setuptools update-rc.d systemd deploy - -require xen-arch.inc - -PACKAGECONFIG ??= " \ - sdl \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ - ${@bb.utils.contains('XEN_TARGET_ARCH', 'x86_64', 'hvm', '', d)} \ - " - -FLASK_POLICY_FILE ?= "xenpolicy-${PV}" - -PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl," -PACKAGECONFIG[xsm] = "--enable-xsmpolicy,--disable-xsmpolicy,checkpolicy-native," -PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd," -PACKAGECONFIG[hvm] = "--with-system-seabios="/usr/share/firmware/bios.bin",--disable-seabios,seabios ipxe vgabios," - -DEPENDS = " \ - bison-native \ - dev86-native \ - flex-native \ - file-native \ - gettext-native \ - iasl-native \ - ncurses-native \ - util-linux-native \ - xz-native \ - bridge-utils \ - curl \ - dtc \ - gettext \ - glib-2.0 \ - gnutls \ - iproute2 \ - libnl \ - ncurses \ - openssl \ - pciutils \ - pixman \ - procps \ - python \ - libaio \ - lzo \ - util-linux \ - xz \ - yajl \ - zlib \ - gnu-efi \ - " - -# inherit setuptools adds python to RDEPENDS, override it -RDEPENDS_${PN} = "" - -RDEPENDS_${PN}-base = "\ - bash perl xz \ - ${PN}-console \ - ${PN}-libxenguest \ - ${PN}-libxenlight \ - ${PN}-libxenvchan \ - ${PN}-libxenctrl \ - ${PN}-libxlutil \ - ${PN}-libxenstat \ - ${PN}-libxenstore \ - ${PN}-libfsimage \ - ${PN}-fsimage \ - ${PN}-scripts-block \ - ${PN}-scripts-network \ - ${PN}-xen-watchdog \ - ${PN}-xencommons \ - ${PN}-xendomains \ - ${PN}-xenstore \ - ${PN}-xenstored \ - ${PN}-xl \ - " - -RDEPENDS_${PN}-dev = "" - -RRECOMMENDS_${PN}-base = " \ - ${PN}-blktap \ - ${PN}-libblktap \ - ${PN}-libblktapctl \ - ${PN}-libvhd \ - ${PN}-flask \ - ${PN}-hvmloader \ - ${PN}-xenpaging \ - " - -RDEPENDS_${PN}-devd = " \ - ${PN}-xl \ - " - -RDEPENDS_${PN}-fsimage = " \ - libext2fs \ - " - -RDEPENDS_${PN}-misc = " \ - perl \ - python \ - " - -RDEPENDS_${PN}-remus = " \ - bash \ - python \ - " - -RDEPENDS_${PN}-scripts-block = "\ - bash \ - ${PN}-scripts-common \ - ${PN}-volatiles \ - " - -RDEPENDS_${PN}-scripts-common = "bash" - -RDEPENDS_${PN}-scripts-network = "\ - bash \ - bridge-utils \ - ${PN}-scripts-common \ - ${PN}-volatiles \ - " - -RDEPENDS_${PN}-xencommons = "\ - bash \ - ${PN}-console \ - ${PN}-xenstore \ - ${PN}-xenstored \ - ${PN}-xl \ - ${PN}-scripts-common \ - " - -RDEPENDS_${PN}-xendomains = "\ - bash \ - ${PN}-console \ - ${PN}-scripts-block \ - ${PN}-scripts-common \ - ${PN}-xenstored \ - " - -RDEPENDS_${PN}-xl = "libgcc" - -RDEPENDS_${PN}-xentrace = "python" - -RDEPENDS_${PN}-xen-watchdog = "bash" - -PACKAGES = "\ - ${PN}-base \ - ${PN}-blktap \ - ${PN}-console \ - ${PN}-cpuid \ - ${PN}-dbg \ - ${PN}-dev \ - ${PN}-devd \ - ${PN}-doc \ - ${PN}-efi \ - ${PN}-flask \ - ${PN}-flask-tools \ - ${PN}-fsimage \ - ${PN}-gdbsx \ - ${PN}-hvmloader \ - ${PN}-hypervisor \ - ${PN}-init-xenstore-dom \ - ${PN}-kdd \ - ${PN}-libblktap \ - ${PN}-libblktapctl \ - ${PN}-libblktapctl-dev \ - ${PN}-libblktap-dev \ - ${PN}-libfsimage \ - ${PN}-libfsimage-dev \ - ${PN}-libvhd \ - ${PN}-libvhd-dev \ - ${PN}-libxencall \ - ${PN}-libxencall-dev \ - ${PN}-libxenctrl \ - ${PN}-libxenctrl-dev \ - ${PN}-libxendevicemodel \ - ${PN}-libxendevicemodel-dev \ - ${PN}-libxenevtchn \ - ${PN}-libxenevtchn-dev \ - ${PN}-libxenforeignmemory \ - ${PN}-libxenforeignmemory-dev \ - ${PN}-libxengnttab \ - ${PN}-libxengnttab-dev \ - ${PN}-libxenguest \ - ${PN}-libxenguest-dev \ - ${PN}-libxenlight \ - ${PN}-libxenlight-dev \ - ${PN}-libxenstat \ - ${PN}-libxenstat-dev \ - ${PN}-libxenstore \ - ${PN}-libxenstore-dev \ - ${PN}-libxentoolcore \ - ${PN}-libxentoolcore-dev \ - ${PN}-libxentoollog \ - ${PN}-libxentoollog-dev \ - ${PN}-libxenvchan \ - ${PN}-libxenvchan-dev \ - ${PN}-libxlutil \ - ${PN}-libxlutil-dev \ - ${PN}-livepatch \ - ${PN}-misc \ - ${PN}-pygrub \ - ${PN}-python \ - ${PN}-qemu \ - ${PN}-remus \ - ${PN}-scripts-block \ - ${PN}-scripts-common \ - ${PN}-scripts-network \ - ${PN}-staticdev \ - ${PN}-volatiles \ - ${PN}-xcutils \ - ${PN}-xencommons \ - ${PN}-xend \ - ${PN}-xend-examples \ - ${PN}-xendomains \ - ${PN}-xenmon \ - ${PN}-xenpaging \ - ${PN}-xenpmd \ - ${PN}-xenstat \ - ${PN}-xenstore \ - ${PN}-xenstored \ - ${PN}-xentrace \ - ${PN}-xen-watchdog \ - ${PN}-xl \ - ${PN}-xl-examples \ - ${PN}-xm \ - ${PN}-xm-examples \ - " - -FILES_${PN}-dbg += "\ - ${libdir}/.debug \ - ${libdir}/debug/* \ - ${libdir}/xen/bin/.debug \ - ${libdir}/python2.7/site-packages/.debug \ - ${libdir}/python2.7/site-packages/xen/lowlevel/.debug \ - ${libdir}/fs/xfs/.debug \ - ${libdir}/fs/ufs/.debug \ - ${libdir}/fs/ext2fs-lib/.debug \ - ${libdir}/fs/fat/.debug \ - ${libdir}/fs/zfs/.debug \ - ${libdir}/fs/reiserfs/.debug \ - ${libdir}/fs/iso9660/.debug \ - ${libdir}/fs/*/.debug \ - ${sbindir}/.debug \ - ${libdir}exec/.debug \ - ${libdir}/xen/libexec/.debug \ - ${bindir}/.debug \ - ${libdir}/python2.7/dist-packages/.debug \ - ${libdir}/python2.7/dist-packages/xen/lowlevel/.debug \ - " - -FILES_${PN}-dev = "\ - ${includedir} \ - " - -FILES_${PN}-doc = "\ - ${sysconfdir}/xen/README \ - ${sysconfdir}/xen/README.incompatibilities \ - ${datadir}/doc \ - ${datadir}/man \ - " - -FILES_${PN}-staticdev += "\ - ${libdir}/libblktapctl.a \ - ${libdir}/libxenguest.a \ - ${libdir}/libxenlight.a \ - ${libdir}/libxenvchan.a \ - ${libdir}/libxenctrl.a \ - ${libdir}/libxlutil.a \ - ${libdir}/libvhd.a \ - ${libdir}/libxenstat.a \ - ${libdir}/libxenstore.a \ - ${libdir}/libblktap.a \ - " - -FILES_${PN}-libblktapctl = "${libdir}/libblktapctl.so.*" -FILES_${PN}-libblktapctl-dev = " \ - ${libdir}/libblktapctl.so \ - ${datadir}/pkgconfig/xenblktapctl.pc \ - " - -FILES_${PN}-libxencall = "${libdir}/libxencall.so.*" -FILES_${PN}-libxencall-dev = " \ - ${libdir}/libxencall.so \ - ${datadir}/pkgconfig/xencall.pc \ - " - -FILES_${PN}-libxenctrl = "${libdir}/libxenctrl.so.*" -FILES_${PN}-libxenctrl-dev = " \ - ${libdir}/libxenctrl.so \ - ${datadir}/pkgconfig/xencontrol.pc \ - " - -FILES_${PN}-libxendevicemodel = "${libdir}/libxendevicemodel.so.*" -FILES_${PN}-libxendevicemodel-dev = " \ - ${libdir}/libxendevicemodel.so \ - ${datadir}/pkgconfig/xendevicemodel.pc \ - " - -FILES_${PN}-libxenevtchn = "${libdir}/libxenevtchn.so.*" -FILES_${PN}-libxenevtchn-dev = " \ - ${libdir}/libxenevtchn.so \ - ${datadir}/pkgconfig/xenevtchn.pc \ - " - -FILES_${PN}-libxenforeignmemory = "${libdir}/libxenforeignmemory.so.*" -FILES_${PN}-libxenforeignmemory-dev = " \ - ${libdir}/libxenforeignmemory.so \ - ${datadir}/pkgconfig/xenforeignmemory.pc \ - " - -FILES_${PN}-libxengnttab = "${libdir}/libxengnttab.so.*" -FILES_${PN}-libxengnttab-dev = " \ - ${libdir}/libxengnttab.so \ - ${datadir}/pkgconfig/xengnttab.pc \ - " - -FILES_${PN}-libxenguest = "${libdir}/libxenguest.so.*" -FILES_${PN}-libxenguest-dev = " \ - ${libdir}/libxenguest.so \ - ${datadir}/pkgconfig/xenguest.pc \ - " - -FILES_${PN}-libxenlight = "${libdir}/libxenlight.so.*" -FILES_${PN}-libxenlight-dev = " \ - ${libdir}/libxenlight.so \ - ${datadir}/pkgconfig/xenlight.pc \ - " - -FILES_${PN}-libxenstat = "${libdir}/libxenstat.so.*" -FILES_${PN}-libxenstat-dev = " \ - ${libdir}/libxenstat.so \ - ${datadir}/pkgconfig/xenstat.pc \ - " - -FILES_${PN}-libxenstore = "${libdir}/libxenstore.so.*" -FILES_${PN}-libxenstore-dev = " \ - ${libdir}/libxenstore.so \ - ${datadir}/pkgconfig/xenstore.pc \ - " - -FILES_${PN}-libxentoolcore = "${libdir}/libxentoolcore.so.*" -FILES_${PN}-libxentoolcore-dev = " \ - ${libdir}/libxentoolcore.so \ - ${datadir}/pkgconfig/xentoolcore.pc \ - " - -FILES_${PN}-libxentoollog = "${libdir}/libxentoollog.so.*" -FILES_${PN}-libxentoollog-dev = " \ - ${libdir}/libxentoollog.so \ - ${datadir}/pkgconfig/xentoollog.pc \ - " - -FILES_${PN}-libxenvchan = "${libdir}/libxenvchan.so.*" -FILES_${PN}-libxenvchan-dev = " \ - ${libdir}/libxenvchan.so \ - ${datadir}/pkgconfig/xenvchan.pc \ - " - -FILES_${PN}-libxlutil = "${libdir}/libxlutil.so.*" -FILES_${PN}-libxlutil-dev = " \ - ${libdir}/libxlutil.so \ - ${datadir}/pkgconfig/xlutil.pc \ - " -FILES_${PN}-libvhd = "${libdir}/libvhd.so.*" -FILES_${PN}-libvhd-dev = " \ - ${libdir}/libvhd.so \ - ${datadir}/pkgconfig/vhd.pc \ - " - -FILES_${PN}-libblktap = "${libdir}/libblktap.so.*" -FILES_${PN}-libblktap-dev = " \ - ${libdir}/libblktap.so \ - ${datadir}/pkgconfig/blktap.pc \ - " - -FILES_${PN}-libfsimage = "${libdir}/libfsimage.so.*" -FILES_${PN}-libfsimage-dev = " \ - ${libdir}/libfsimage.so \ - ${datadir}/pkgconfig/fsimage.pc \ - " - -FILES_${PN}-fsimage = "${libdir}/fs/*/*fsimage.so" - -FILES_${PN}-hypervisor = "\ - /boot/xen-* \ - /boot/xen \ - /boot/xen-*.gz \ - /boot/xen.gz \ - /boot/xen-syms-* \ - " - -FILES_${PN}-init-xenstore-dom = "${libdir}/xen/bin/init-xenstore-domain" - -FILES_${PN}-efi = "\ - ${exec_prefix}/lib64 \ - ${exec_prefix}/lib64/xen* \ - " - -FILES_${PN}-base = "\ - ${sysconfdir}/xen/auto \ - ${sysconfdir}/xen/cpupool \ - ${localstatedir}/xen/dump \ - " - -FILES_${PN}-blktap = "\ - ${sbindir}/blktapctrl \ - ${sbindir}/img2qcow \ - ${sbindir}/lock-util \ - ${sbindir}/qcow2raw \ - ${sbindir}/qcow-create \ - ${sbindir}/tap-ctl \ - ${sbindir}/tapdisk \ - ${sbindir}/tapdisk2 \ - ${sbindir}/tapdisk-client \ - ${sbindir}/tapdisk-diff \ - ${sbindir}/tapdisk-stream \ - ${sbindir}/td-util \ - ${sbindir}/vhd-update \ - ${sbindir}/vhd-util \ - " - -FILES_${PN}-console = "\ - ${libdir}/xen/bin/xenconsole \ - ${sbindir}/xenconsoled \ - " - -FILES_${PN}-cpuid = "\ - ${bindir}/xen-cpuid \ - " - -FILES_${PN}-devd = "\ - ${sysconfdir}/init.d/xendriverdomain \ - " - -FILES_${PN}-flask = "\ - /boot/${FLASK_POLICY_FILE} \ - " - -FILES_${PN}-flask-tools = "\ - ${sbindir}/flask-get-bool \ - ${sbindir}/flask-getenforce \ - ${sbindir}/flask-label-pci \ - ${sbindir}/flask-loadpolicy \ - ${sbindir}/flask-set-bool \ - ${sbindir}/flask-setenforce \ - " - -FILES_${PN}-gdbsx = "\ - ${sbindir}/gdbsx \ - " - -INSANE_SKIP_${PN}-hvmloader = "arch" -FILES_${PN}-hvmloader = "\ - ${libdir}/xen/boot/hvmloader \ - " - -FILES_${PN}-kdd = "\ - ${sbindir}/kdd \ - " - -FILES_${PN}-livepatch += " \ - ${sbindir}/xen-livepatch \ - " - -FILES_${PN}-misc = "\ - ${bindir}/xencons \ - ${bindir}/xencov_split \ - ${bindir}/xen-detect \ - ${libdir}/xen/bin/xenpvnetboot \ - ${sbindir}/gtracestat \ - ${sbindir}/gtraceview \ - ${sbindir}/xen-bugtool \ - ${sbindir}/xencov \ - ${sbindir}/xenperf \ - ${sbindir}/xenpm \ - ${sbindir}/xsview \ - ${sbindir}/xen-diag \ - ${sbindir}/xen-tmem-list-parse \ - ${sbindir}/xen-python-path \ - ${sbindir}/xen-ringwatch \ - ${sbindir}/xen-hptool \ - ${sbindir}/xen-hvmcrash \ - ${sbindir}/xen-hvmctx \ - ${sbindir}/xenlockprof \ - ${sbindir}/xen-lowmemd \ - ${sbindir}/xen-mfndump \ - ${libdir}/xen/bin/verify-stream-v2 \ - ${libdir}/xen/bin/convert-legacy-stream \ - " - -FILES_${PN}-pygrub = "\ - ${bindir}/pygrub \ - ${libdir}/xen/bin/pygrub \ - " - -FILES_${PN}-python = "\ - ${libdir}/python2.7 \ - " - -INSANE_SKIP_${PN} = "already-stripped" -INSANE_SKIP_${PN}-qemu = "arch" -FILES_${PN}-qemu = " \ - ${datadir}/xen/qemu \ - ${libdir}/xen/bin/qemu-system-i386 \ - ${libdir}/xen/bin/qemu-system-x86_64 \ - ${libdir}/xen/bin/qemu-img \ - ${libdir}/xen/bin/qemu-nbd \ - ${libdir}/xen/bin/qemu-ga \ - ${libdir}/xen/bin/qemu-io \ - ${libdir}/xen/bin/qemu-dm \ - ${libdir}/xen/bin/virtfs-proxy-helper \ - /usr/libexec/qemu-bridge-helper \ - ${libdir}/xen/libexec/qemu-bridge-helper \ - /usr/etc/qemu \ - /usr/etc/qemu/target-x86_64.conf \ - ${libdir}/xen/etc/qemu/target-x86_64.conf \ - ${datadir}/qemu-xen \ - ${datadir}/qemu-xen/qemu \ - ${datadir}/qemu-xen/qemu/bamboo.dtb \ - ${datadir}/qemu-xen/qemu/pxe-pcnet.rom \ - ${datadir}/qemu-xen/qemu/vgabios-vmware.bin \ - ${datadir}/qemu-xen/qemu/pxe-eepro100.rom \ - ${datadir}/qemu-xen/qemu/pxe-e1000.rom \ - ${datadir}/qemu-xen/qemu/openbios-ppc \ - ${datadir}/qemu-xen/qemu/multiboot.bin \ - ${datadir}/qemu-xen/qemu/vgabios-cirrus.bin \ - ${datadir}/qemu-xen/qemu/bios.bin \ - ${datadir}/qemu-xen/qemu/vgabios-stdvga.bin \ - ${datadir}/qemu-xen/qemu/palcode-clipper \ - ${datadir}/qemu-xen/qemu/pxe-ne2k_pci.rom \ - ${datadir}/qemu-xen/qemu/spapr-rtas.bin \ - ${datadir}/qemu-xen/qemu/slof.bin \ - ${datadir}/qemu-xen/qemu/vgabios-qxl.bin \ - ${datadir}/qemu-xen/qemu/pxe-rtl8139.rom \ - ${datadir}/qemu-xen/qemu/openbios-sparc64 \ - ${datadir}/qemu-xen/qemu/pxe-virtio.rom \ - ${datadir}/qemu-xen/qemu/kvmvapic.bin \ - ${datadir}/qemu-xen/qemu/openbios-sparc32 \ - ${datadir}/qemu-xen/qemu/petalogix-s3adsp1800.dtb \ - ${datadir}/qemu-xen/qemu/sgabios.bin \ - ${datadir}/qemu-xen/qemu/linuxboot.bin \ - ${datadir}/qemu-xen/qemu/qemu-icon.bmp \ - ${datadir}/qemu-xen/qemu/ppc_rom.bin \ - ${datadir}/qemu-xen/qemu/vgabios.bin \ - ${datadir}/qemu-xen/qemu/s390-zipl.rom \ - ${datadir}/qemu-xen/qemu/petalogix-ml605.dtb \ - ${datadir}/qemu-xen/qemu/keymaps \ - ${datadir}/qemu-xen/qemu/keymaps/common \ - ${datadir}/qemu-xen/qemu/keymaps/th \ - ${datadir}/qemu-xen/qemu/keymaps/is \ - ${datadir}/qemu-xen/qemu/keymaps/en-gb \ - ${datadir}/qemu-xen/qemu/keymaps/ar \ - ${datadir}/qemu-xen/qemu/keymaps/fr-be \ - ${datadir}/qemu-xen/qemu/keymaps/ru \ - ${datadir}/qemu-xen/qemu/keymaps/hu \ - ${datadir}/qemu-xen/qemu/keymaps/de-ch \ - ${datadir}/qemu-xen/qemu/keymaps/no \ - ${datadir}/qemu-xen/qemu/keymaps/fr \ - ${datadir}/qemu-xen/qemu/keymaps/pl \ - ${datadir}/qemu-xen/qemu/keymaps/fr-ca \ - ${datadir}/qemu-xen/qemu/keymaps/de \ - ${datadir}/qemu-xen/qemu/keymaps/fr-ch \ - ${datadir}/qemu-xen/qemu/keymaps/bepo \ - ${datadir}/qemu-xen/qemu/keymaps/lv \ - ${datadir}/qemu-xen/qemu/keymaps/ja \ - ${datadir}/qemu-xen/qemu/keymaps/da \ - ${datadir}/qemu-xen/qemu/keymaps/lt \ - ${datadir}/qemu-xen/qemu/keymaps/hr \ - ${datadir}/qemu-xen/qemu/keymaps/es \ - ${datadir}/qemu-xen/qemu/keymaps/modifiers \ - ${datadir}/qemu-xen/qemu/keymaps/sl \ - ${datadir}/qemu-xen/qemu/keymaps/it \ - ${datadir}/qemu-xen/qemu/keymaps/nl \ - ${datadir}/qemu-xen/qemu/keymaps/fo \ - ${datadir}/qemu-xen/qemu/keymaps/mk \ - ${datadir}/qemu-xen/qemu/keymaps/pt-br \ - ${datadir}/qemu-xen/qemu/keymaps/tr \ - ${datadir}/qemu-xen/qemu/keymaps/sv \ - ${datadir}/qemu-xen/qemu/keymaps/fi \ - ${datadir}/qemu-xen/qemu/keymaps/en-us \ - ${datadir}/qemu-xen/qemu/keymaps/et \ - ${datadir}/qemu-xen/qemu/keymaps/nl-be \ - ${datadir}/qemu-xen/qemu/keymaps/pt \ - ${bindir}/qemu-nbd-xen \ - ${bindir}/qemu-img-xen \ - " - -FILES_${PN}-remus = "\ - ${bindir}/remus \ - ${sysconfdir}/xen/scripts/remus-netbuf-setup \ - " - -FILES_${PN}-scripts-network = " \ - ${sysconfdir}/xen/scripts/colo-proxy-setup \ - ${sysconfdir}/xen/scripts/network-bridge \ - ${sysconfdir}/xen/scripts/network-nat \ - ${sysconfdir}/xen/scripts/network-route \ - ${sysconfdir}/xen/scripts/qemu-ifup \ - ${sysconfdir}/xen/scripts/vif2 \ - ${sysconfdir}/xen/scripts/vif-bridge \ - ${sysconfdir}/xen/scripts/vif-common.sh \ - ${sysconfdir}/xen/scripts/vif-nat \ - ${sysconfdir}/xen/scripts/vif-openvswitch \ - ${sysconfdir}/xen/scripts/vif-route \ - ${sysconfdir}/xen/scripts/vif-setup \ - " - -FILES_${PN}-scripts-block = " \ - ${sysconfdir}/xen/scripts/blktap \ - ${sysconfdir}/xen/scripts/block \ - ${sysconfdir}/xen/scripts/block-common.sh \ - ${sysconfdir}/xen/scripts/block-dummy \ - ${sysconfdir}/xen/scripts/block-enbd \ - ${sysconfdir}/xen/scripts/block-iscsi \ - ${sysconfdir}/xen/scripts/block-nbd \ - ${sysconfdir}/xen/scripts/block-drbd-probe \ - ${sysconfdir}/xen/scripts/block-tap \ - ${sysconfdir}/xen/scripts/vscsi \ - " - -FILES_${PN}-scripts-common = " \ - ${sysconfdir}/xen/scripts/external-device-migrate \ - ${sysconfdir}/xen/scripts/hotplugpath.sh \ - ${sysconfdir}/xen/scripts/locking.sh \ - ${sysconfdir}/xen/scripts/logging.sh \ - ${sysconfdir}/xen/scripts/xen-hotplug-cleanup \ - ${sysconfdir}/xen/scripts/xen-hotplug-common.sh \ - ${sysconfdir}/xen/scripts/xen-network-common.sh \ - ${sysconfdir}/xen/scripts/xen-script-common.sh \ - " - -FILES_${PN}-volatiles = "\ - ${sysconfdir}/default/volatiles/99_xen \ - ${sysconfdir}/tmpfiles.d/xen.conf \ - " - -FILES_${PN}-xcutils = "\ - ${libdir}/xen/bin/lsevtchn \ - ${libdir}/xen/bin/readnotes \ - ${libdir}/xen/bin/xc_restore \ - ${libdir}/xen/bin/xc_save \ - " - -FILES_${PN}-xend-examples = "\ - ${sysconfdir}/xen/xend-config.sxp \ - ${sysconfdir}/xen/xend-pci-permissive.sxp \ - ${sysconfdir}/xen/xend-pci-quirks.sxp \ - " - -FILES_${PN}-xenpaging = "\ - ${libdir}/xen/bin/xenpaging \ - ${localstatedir}/lib/xen/xenpaging \ - " - -FILES_${PN}-xenpmd = "\ - ${sbindir}/xenpmd \ - " - -FILES_${PN}-xenstat = "\ - ${sbindir}/xentop \ - " - -FILES_${PN}-xenstore = "\ - ${bindir}/xenstore \ - ${bindir}/xenstore-chmod \ - ${bindir}/xenstore-control \ - ${bindir}/xenstore-exists \ - ${bindir}/xenstore-list \ - ${bindir}/xenstore-ls \ - ${bindir}/xenstore-read \ - ${bindir}/xenstore-rm \ - ${bindir}/xenstore-watch \ - ${bindir}/xenstore-write \ - " - -FILES_${PN}-xenstored = "\ - ${sbindir}/xenstored \ - ${localstatedir}/lib/xenstored \ - " - -FILES_${PN}-xentrace = "\ - ${bindir}/xentrace \ - ${bindir}/xentrace_format \ - ${bindir}/xentrace_setsize \ - ${libdir}/xen/bin/xenctx \ - ${bindir}/xenalyze \ - ${sbindir}/xentrace \ - ${sbindir}/xentrace_setsize \ - " - -FILES_${PN}-xen-watchdog = "\ - ${sbindir}/xenwatchdogd \ - ${sysconfdir}/init.d/xen-watchdog \ - ${systemd_unitdir}/system/xen-watchdog.service \ - " - -FILES_${PN}-xl = "\ - ${sysconfdir}/bash_completion.d/xl.sh \ - ${sysconfdir}/xen/xl.conf \ - ${libdir}/xen/bin/libxl-save-helper \ - ${sbindir}/xl \ - ${libdir}/xen/bin/xen-init-dom0 \ - " - -FILES_${PN}-xl-examples = "\ - ${sysconfdir}/xen/xlexample.hvm \ - ${sysconfdir}/xen/xlexample.pvlinux \ - " - -FILES_${PN}-xm-examples = "\ - ${sysconfdir}/xen/xmexample1 \ - ${sysconfdir}/xen/xmexample2 \ - ${sysconfdir}/xen/xmexample3 \ - ${sysconfdir}/xen/xmexample.hvm \ - ${sysconfdir}/xen/xmexample.hvm-stubdom \ - ${sysconfdir}/xen/xmexample.nbd \ - ${sysconfdir}/xen/xmexample.pv-grub \ - ${sysconfdir}/xen/xmexample.vti \ - " - -FILES_${PN}-xenmon = "\ - ${sbindir}/xenbaked \ - ${sbindir}/xentrace_setmask \ - ${sbindir}/xenmon.py \ - " - -FILES_${PN}-xm = "\ - ${sysconfdir}/xen/xm-config.xml \ - ${datadir}/xen/create.dtd \ - ${sbindir}/xm \ - " - -FILES_${PN}-xencommons += "\ - ${sysconfdir}/default/xencommons \ - ${sysconfdir}/init.d/xencommons \ - ${sysconfdir}/xen/scripts/launch-xenstore \ - ${systemd_unitdir}/modules-load.d/xen.conf \ - ${systemd_unitdir}/system/proc-xen.mount \ - ${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service \ - ${systemd_unitdir}/system/xenconsoled.service \ - ${systemd_unitdir}/system/xen-init-dom0.service \ - ${systemd_unitdir}/system/xenstored.service \ - ${systemd_unitdir}/system/var-lib-xenstored.mount \ - " - -FILES_${PN}-xend += " \ - ${sysconfdir}/init.d/xend \ - ${sbindir}/xend \ - " - -FILES_${PN}-xendomains += "\ - ${libdir}/xen/bin/xendomains \ - ${sysconfdir}/default/xendomains \ - ${sysconfdir}/init.d/xendomains \ - ${sysconfdir}/sysconfig/xendomains \ - ${systemd_unitdir}/system/xendomains.service \ - " - -# configure init.d scripts -INITSCRIPT_PACKAGES = "${PN}-xend ${PN}-xencommons ${PN}-xen-watchdog ${PN}-xendomains ${PN}-devd" -INITSCRIPT_NAME_${PN}-xencommons = "xencommons" -INITSCRIPT_PARAMS_${PN}-xencommons = "defaults 80" -INITSCRIPT_NAME_${PN}-xen-watchdog = "xen-watchdog" -INITSCRIPT_PARAMS_${PN}-xen-watchdog = "defaults 81" -INITSCRIPT_NAME_${PN}-xend = "xend" -INITSCRIPT_PARAMS_${PN}-xend = "defaults 82" -INITSCRIPT_NAME_${PN}-xendomains = "xendomains" -INITSCRIPT_PARAMS_${PN}-xendomains = "defaults 83" -INITSCRIPT_NAME_${PN}-devd = "xendriverdomain" -INITSCRIPT_PARAMS_${PN}-devd = "defaults 82" - -# systemd packages -SYSTEMD_PACKAGES = "${PN}-xen-watchdog ${PN}-xencommons ${PN}-xendomains" -SYSTEMD_SERVICE_${PN}-xen-watchdog = "xen-watchdog.service" -SYSTEMD_SERVICE_${PN}-xencommons = " \ - proc-xen.mount \ - var-lib-xenstored.mount \ - xen-qemu-dom0-disk-backend.service \ - xenconsoled.service \ - xen-init-dom0.service \ - xenstored.service \ - " -SYSTEMD_SERVICE_${PN}-xendomains = "xendomains.service" - -#### REQUIRED ENVIRONMENT VARIABLES #### -export BUILD_SYS -export HOST_SYS -export STAGING_INCDIR -export STAGING_LIBDIR - -# specify xen hypervisor to build/target -export XEN_TARGET_ARCH = "${@map_xen_arch(d.getVar('TARGET_ARCH'), d)}" -export XEN_COMPILE_ARCH = "${@map_xen_arch(d.getVar('BUILD_ARCH'), d)}" - -python () { - if d.getVar('XEN_TARGET_ARCH') == 'INVALID': - raise bb.parse.SkipPackage('Cannot map `%s` to a xen architecture' % d.getVar('TARGET_ARCH')) -} - -# Yocto appends ${PN} to libexecdir by default and Xen appends 'xen' as well -# the result is a nested xen/xen/ so let's avoid that by shunning Yocto's -# extra ${PN} appended. -libexecdir = "${libdir}" - -# hardcoded as Linux, as the only compatible hosts are Linux. -export XEN_OS = "Linux" - -# this is used for the header (#!${bindir}/python) of the install python scripts -export PYTHONPATH="${bindir}/python" -export ac_cv_path_PYTHONPATH="${bindir}/python" - -# xen and seabios require HOSTCC and HOSTCXX set to cross-compile -export HOSTCC="${BUILD_CC}" -export HOSTCXX="${BUILD_CXX}" - -# make xen requires CROSS_COMPILE set by hand as it does not abide by ./configure -export CROSS_COMPILE="${TARGET_PREFIX}" - -# overide LDFLAGS to allow xen to build without: "x86_64-oe-linux-ld: unrecognized option '-Wl,-O1'" -export LDFLAGS="" - -# Yocto injects -mfpmath=sse for some machine types into the CFLAGS which -# conflicts with -mno-sse so instead we strip -mfpmath=sse instead of -# patching the build to be ok with this -TUNE_CCARGS := "${@oe.utils.str_filter_out('-mfpmath=sse', '${TUNE_CCARGS}', d)}" - -EXTRA_OECONF += " \ - --exec-prefix=/usr \ - --prefix=/usr \ - --host=${HOST_SYS} \ - --with-systemd=${systemd_unitdir}/system \ - --with-systemd-modules-load=${systemd_unitdir}/modules-load.d \ - --disable-stubdom \ - --disable-ioemu-stubdom \ - --disable-pv-grub \ - --disable-xenstore-stubdom \ - --disable-rombios \ - --disable-ocamltools \ - --with-initddir=${INIT_D_DIR} \ - --with-sysconfig-leaf-dir=default \ - --with-system-qemu=/usr/bin/qemu-system-i386 \ - --disable-qemu-traditional \ - " - -EXTRA_OEMAKE += "STDVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.bin" -EXTRA_OEMAKE += "CIRRUSVGA_ROM=${STAGING_DIR_HOST}/usr/share/firmware/vgabios-0.7a.cirrus.bin" -EXTRA_OEMAKE += "SEABIOS_ROM=${STAGING_DIR_HOST}/usr/share/firmware/bios.bin" -EXTRA_OEMAKE += "ETHERBOOT_ROMS=${STAGING_DIR_HOST}/usr/share/firmware/rtl8139.rom" - -# prevent the Xen build scripts from fetching things during the build -# all dependencies should be reflected in the Yocto recipe -EXTRA_OEMAKE += "WGET=/bin/false" -EXTRA_OEMAKE += "GIT=/bin/false" - -# check for XSM in package config to allow XSM_ENABLE to be set -python () { - pkgconfig = d.getVar('PACKAGECONFIG') - if ('xsm') in pkgconfig.split(): - d.setVar('XSM_ENABLED', '1') - else: - d.setVar('XSM_ENABLED', '0') -} - -do_post_patch() { - # fixup AS/CC/CCP/etc variable within StdGNU.mk - for i in LD CC CPP CXX; do - sed -i "s/^\($i\s\s*\).*=/\1?=/" ${S}/config/StdGNU.mk - done - # fixup environment passing in some makefiles - sed -i 's#\(\w*\)=\(\$.\w*.\)#\1="\2"#' ${S}/tools/firmware/Makefile - - # libsystemd-daemon -> libsystemd for newer systemd versions - sed -i 's#libsystemd-daemon#libsystemd#' ${S}/tools/configure -} - -addtask post_patch after do_patch before do_configure - -do_stubs() { - # no stubs-32.h in our 64-bit sysroot - hack it into tools/include/gnu - if ! test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-32.h ; then - if test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-64.h ; then - test -d ${S}/tools/include/gnu || mkdir ${S}/tools/include/gnu - cat ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-64.h | grep -v stub_bdflush | grep -v stub_getmsg | grep -v stub_putmsg > ${S}/tools/include/gnu/stubs-32.h - echo \#define __stub___kernel_cosl >> ${S}/tools/include/gnu/stubs-32.h - echo \#define __stub___kernel_sinl >> ${S}/tools/include/gnu/stubs-32.h - echo \#define __stub___kernel_tanl >> ${S}/tools/include/gnu/stubs-32.h - fi - fi -} - -addtask stubs after do_configure before do_compile - -# Allow all hypervisor settings in a defconfig -EXTRA_OEMAKE += "XEN_CONFIG_EXPERT=y" -# Build release versions always. Technically since we track release -# tarballs this always happens but occasionally people pull in patches -# from staging that reverts this -EXTRA_OEMAKE += "debug=n" - -do_configure() { - - #./configure --enable-xsmpolicy does not set XSM_ENABLE must be done manually - if [ "${XSM_ENABLED}" = "1" ]; then - echo "XSM_ENABLE := y" > ${S}/.config - fi - - if [ -f "${WORKDIR}/defconfig" ]; then - cp "${WORKDIR}/defconfig" "${B}/xen/.config" || \ - bbfatal "Unable to copy defconfig to .config" - fi - - # do configure - oe_runconf - if [ ! -e ${STAGING_INCDIR}/bits/long-double-32.h ]; then - cp ${STAGING_INCDIR}/bits/long-double-64.h ${STAGING_INCDIR}/bits/long-double-32.h - fi -} - -do_compile() { - # workaround for build bug when CFLAGS is exported - # https://www.mail-archive.com/xen-devel@lists.xen.org/msg67822.html - unset CFLAGS - oe_runmake -} - -do_install() { - oe_runmake DESTDIR="${D}" install - - # remove installed volatiles - rm -rf ${D}${localstatedir}/run \ - ${D}${localstatedir}/lock \ - ${D}${localstatedir}/log \ - ${D}${localstatedir}/volatile \ - ${D}${localstatedir}/lib/xen - - VOLATILE_DIRS=" \ - ${localstatedir}/run/xenstored \ - ${localstatedir}/run/xend \ - ${localstatedir}/run/xend/boot \ - ${localstatedir}/run/xen \ - ${localstatedir}/log/xen \ - ${localstatedir}/lock/xen \ - ${localstatedir}/lock/subsys \ - ${localstatedir}/lib/xen \ - " - - # install volatiles using populate_volatiles mechanism - install -d ${D}${sysconfdir}/default/volatiles - for i in $VOLATILE_DIRS; do - echo "d root root 0755 $i none" >> ${D}${sysconfdir}/default/volatiles/99_xen - done - - # workaround for xendomains script which searchs sysconfig if directory exists - install -d ${D}${sysconfdir}/sysconfig - ln -sf ${sysconfdir}/default/xendomains ${D}${sysconfdir}/sysconfig/xendomains - - # systemd - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - # install volatiles using systemd tmpfiles.d - install -d ${D}${sysconfdir}/tmpfiles.d - for i in $VOLATILE_DIRS; do - echo "d $i 0755 root root - -" >> ${D}${sysconfdir}/tmpfiles.d/xen.conf - done - fi - - # fixup default path to qemu-system-i386 - sed -i 's#\(test -z "$QEMU_XEN" && QEMU_XEN=\).*$#\1"/usr/bin/qemu-system-i386"#' ${D}/etc/init.d/xencommons - - if [ -e ${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service ]; then - sed -i 's#ExecStart=.*qemu-system-i386\(.*\)$#ExecStart=/usr/bin/qemu-system-i386\1#' \ - ${D}${systemd_unitdir}/system/xen-qemu-dom0-disk-backend.service - fi -} - -pkg_postinst_${PN}-volatiles() { - if [ -z "$D" ]; then - if command -v systemd-tmpfiles >/dev/null; then - systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/xen.conf - elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi - fi -} - -do_deploy() { - install -d ${DEPLOYDIR} - - if [ -f ${D}/boot/xen ]; then - install -m 0644 ${D}/boot/xen ${DEPLOYDIR}/xen-${MACHINE} - fi - - if [ -f ${D}/boot/xen.gz ]; then - install -m 0644 ${D}/boot/xen.gz ${DEPLOYDIR}/xen-${MACHINE}.gz - fi - - if [ -f ${D}/usr/lib64/efi/xen.efi ]; then - install -m 0644 ${D}/usr/lib64/efi/xen.efi ${DEPLOYDIR}/xen-${MACHINE}.efi - fi - - # Install the flask policy in the deploy directory if it exists - if [ -f ${D}/boot/${FLASK_POLICY_FILE} ]; then - install -m 0644 ${D}/boot/${FLASK_POLICY_FILE} ${DEPLOYDIR} - ln -sf ${FLASK_POLICY_FILE} ${DEPLOYDIR}/xenpolicy-${MACHINE} - fi -} - -addtask deploy after do_populate_sysroot - -# Enable use of menuconfig directly from bitbake and also within the devshell -OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS TERMINFO" -HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}" -HOSTLDFLAGS = "${BUILD_LDFLAGS}" -TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo" -do_devshell[depends] += "ncurses-native:do_populate_sysroot" - -KCONFIG_CONFIG_COMMAND ??= "menuconfig" -python do_menuconfig() { - import shutil - - try: - mtime = os.path.getmtime("xen/.config") - shutil.copy("xen/.config", "xen/.config.orig") - except OSError: - mtime = 0 - - 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'), - d.getVar('PN') + ' Configuration', d) - - try: - newmtime = os.path.getmtime("xen/.config") - except OSError: - newmtime = 0 - - if newmtime > mtime: - bb.note("Configuration changed, recompile will be forced") - bb.build.write_taint('do_compile', d) -} -do_menuconfig[depends] += "ncurses-native:do_populate_sysroot" -do_menuconfig[nostamp] = "1" -do_menuconfig[dirs] = "${B}" -addtask menuconfig after do_configure diff --git a/import-layers/meta-virtualization/recipes-extended/xen/xen_4.10.0.bb b/import-layers/meta-virtualization/recipes-extended/xen/xen_4.10.0.bb deleted file mode 100644 index d314b9b6a..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/xen_4.10.0.bb +++ /dev/null @@ -1,12 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -require xen.inc - -SRC_URI = " \ - https://downloads.xenproject.org/release/xen/${PV}/xen-${PV}.tar.gz \ - file://xsa253.patch \ - " - -SRC_URI[md5sum] = "ab9d320d02cb40f6b40506aed1a38d58" -SRC_URI[sha256sum] = "0262a7023f8b12bcacfb0b25e69b2a63291f944f7683d54d8f33d4b2ca556844" - -S = "${WORKDIR}/xen-${PV}" diff --git a/import-layers/meta-virtualization/recipes-extended/xen/xen_4.9.1.bb b/import-layers/meta-virtualization/recipes-extended/xen/xen_4.9.1.bb deleted file mode 100644 index 5c18bb00a..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/xen_4.9.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -require xen.inc - -SRC_URI = " \ - https://downloads.xenproject.org/release/xen/${PV}/xen-${PV}.tar.gz \ - file://xsa246-4.9.patch \ - file://0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu.patch \ - file://0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas.patch \ - file://xsa248.patch \ - file://xsa249.patch \ - file://xsa250.patch \ - file://xsa251.patch \ - " - -SRC_URI[md5sum] = "8b9d6104694b164d54334194135f7217" -SRC_URI[sha256sum] = "ecf88b01f44cd8f4ef208af3f999dceb69bdd2a316d88dd9a9535ea7b49ed356" - -S = "${WORKDIR}/xen-${PV}" diff --git a/import-layers/meta-virtualization/recipes-extended/xen/xen_git.bb b/import-layers/meta-virtualization/recipes-extended/xen/xen_git.bb deleted file mode 100644 index e10d669fa..000000000 --- a/import-layers/meta-virtualization/recipes-extended/xen/xen_git.bb +++ /dev/null @@ -1,16 +0,0 @@ -require xen.inc - -SRCREV ?= "9a6cc4f5c14b3d7542b7523f88a1b65464733d3a" - -XEN_REL ?= "4.7" -XEN_BRANCH ?= "staging-${XEN_REL}" - -PV = "${XEN_REL}+git${SRCPV}" - -S = "${WORKDIR}/git" - -SRC_URI = " \ - git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \ - " - -DEFAULT_PREFERENCE = "-1" |