[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/LIBUCONTEXT PATCH 4/4] Initial port of libucontext on unikraft
This is the initial port of libucontext to Unikraft as an external library. libucontext depends on newlib for some headers. Signed-off-by: Charalampos Mainas <Charalampos.Mainas@xxxxxxxxx> --- Config.uk | 5 ++++ Makefile.uk | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 Config.uk create mode 100644 Makefile.uk diff --git a/Config.uk b/Config.uk new file mode 100644 index 0000000..d0675aa --- /dev/null +++ b/Config.uk @@ -0,0 +1,5 @@ +menuconfig LIBUCONTEXT + bool "ucontext.h API" + default n + select LIBNEWLIBC + diff --git a/Makefile.uk b/Makefile.uk new file mode 100644 index 0000000..df2cff4 --- /dev/null +++ b/Makefile.uk @@ -0,0 +1,84 @@ +# libucontext Makefile.uk +# +# Authors: Charalampos Mainas <Charalampos.Mainas@xxxxxxxxx> +# +# Copyright (c) 2019, NEC Europe Ltd., NEC Corporation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. +# + + +################################################################################ +# Library registration +################################################################################ +$(eval $(call addlib_s,libucontext,$(CONFIG_LIBUCONTEXT))) + +################################################################################ +# Sources +################################################################################ +LIBUCONTEXT_VERSION=libucontext-master +LIBUCONTEXT_URL=https://github.com/AdelieLinux/libucontext/archive/master.zip +LIBUCONTEXT_DIR=$(LIBUCONTEXT_VERSION) + +LIBUCONTEXT_PATCHDIR=$(LIBUCONTEXT_BASE)/patches +$(eval $(call fetch,libucontext,$(LIBUCONTEXT_URL),master.zip)) +$(eval $(call patch,libucontext,$(LIBUCONTEXT_PATCHDIR),$(LIBUCONTEXT_DIR))) + +################################################################################ +# Helpers +################################################################################ +LIBUCONTEXT_SRC=$(LIBUCONTEXT_ORIGIN)/$(LIBUCONTEXT_DIR)/arch/x86_64/ + +################################################################################ +# Library includes +################################################################################ +CINCLUDES-$(CONFIG_LIBUCONTEXT) += -I$(LIBUCONTEXT_BASE)/include + +################################################################################ +# Global flags +################################################################################ +# Suppress some warnings to make the build process look neater +SUPPRESS_FLAGS += -Wno-unused-parameter -Wno-unused-variable -Wno-nonnull \ +-Wno-unused-but-set-variable -Wno-unused-label -Wno-char-subscripts \ +-Wno-unused-function -Wno-missing-field-initializers -Wno-uninitialized \ +-Wno-array-bounds -Wno-maybe-uninitialized -Wno-pointer-sign -Wno-unused-value \ +-Wno-unused-macros -Wno-parentheses -Wno-implicit-function-declaration \ +-Wno-missing-braces -Wno-endif-labels -Wno-unused-but-set-variable \ +-Wno-implicit-function-declaration -Wno-type-limits -Wno-sign-compare + +LIBUCONTEXT_CFLAGS-y += $(SUPPRESS_FLAGS) +LIBUCONTEXT_CXXFLAGS-y += $(SUPPRESS_FLAGS) + +################################################################################ +# Sources +################################################################################ +LIBUCONTEXT_SRCS-y += $(LIBUCONTEXT_SRC)/getcontext.S +LIBUCONTEXT_SRCS-y += $(LIBUCONTEXT_SRC)/makecontext.c +LIBUCONTEXT_SRCS-y += $(LIBUCONTEXT_SRC)/setcontext.S +LIBUCONTEXT_SRCS-y += $(LIBUCONTEXT_SRC)/startcontext.S +LIBUCONTEXT_SRCS-y += $(LIBUCONTEXT_SRC)/swapcontext.S -- 2.17.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |