[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/LIBUUID PATCH v3 2/4] Add Makefile.uk and glue.
Hi Justin, On 11.10.19, 09:37, "Minios-devel on behalf of Jia He" <minios-devel-bounces@xxxxxxxxxxxxxxxxxxxx on behalf of jiakernel2@xxxxxxxxx> wrote: Hi Felipe On 2019/10/8 21:15, Felipe Huici wrote: > We hook into wamr's main loop by patching wamr's linux's main.c. > > Signed-off-by: Felipe Huici <felipe.huici@xxxxxxxxx> > --- > Makefile.uk | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > glue.c | 10 +++++ > 2 files changed, 122 insertions(+) > create mode 100644 Makefile.uk > create mode 100644 glue.c > > diff --git a/Makefile.uk b/Makefile.uk > new file mode 100644 > index 0000000..7bbf500 > --- /dev/null > +++ b/Makefile.uk > @@ -0,0 +1,112 @@ > +# wamr Makefile.uk > +# > +# Authors: Felipe Huici <felipe.huici@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,libwamr,$(CONFIG_LIBWAMR))) > + > +################################################################################ > +# Sources > +################################################################################ > +# Sept 9th commit > +LIBWAMR_VERSION=bc762fe9e2cf2d26a0cde42931c4b6ed79860047 > +LIBWAMR_URL=https://github.com/intel/wasm-micro-runtime/archive/$(LIBWAMR_VERSION).zip > + > +LIBWAMR_DIR=wasm-micro-runtime-$(LIBWAMR_VERSION) > +LIBWAMR_PATCHDIR=$(LIBWAMR_BASE)/patches > + > +$(eval $(call fetchas,libwamr,$(LIBWAMR_URL),$(LIBWAMR_VERSION).zip)) > +$(eval $(call patch,libwamr,$(LIBWAMR_PATCHDIR),wasm-micro-runtime-$(LIBWAMR_VERSION))) > + > +################################################################################ > +# Helpers > +################################################################################ > +LIBWAMR_SRC=$(LIBWAMR_ORIGIN)/$(LIBWAMR_DIR) > + > +################################################################################ > +# Library includes > +################################################################################ > +CINCLUDES-$(CONFIG_LIBWAMR) += -I$(LIBWAMR_BASE)/include \ > + -I$(LIBWAMR_SRC)/core/iwasm/runtime/vmcore-wasm \ > + -I$(LIBWAMR_SRC)/core/iwasm/runtime/platform/include \ > + -I$(LIBWAMR_SRC)/core/iwasm/runtime/include \ > + -I$(LIBWAMR_SRC)/core/shared-lib/platform/include \ > + -I$(LIBWAMR_SRC)/core/shared-lib/include \ > + > +################################################################################ > +# Library flags > +################################################################################ > +LIBWAMR_SUPPRESS_FLAGS += -Wno-implicit-function-declaration \ > + -Wno-sign-compare \ > + -Wno-pointer-to-int-cast \ > + -Wno-unused-parameter \ > + -Wno-int-conversion \ > + -Wno-unused-label \ > + -Wno-unused-but-set-variable \ > + -Wno-cast-function-type \ > + -Wno-implicit-fallthrough > + > +LIBWAMR_CFLAGS-y += -DNVALGRIND $(LIBWAMR_SUPPRESS_FLAGS) > +LIBWAMR_CXXFLAGS-y += -DNVALGRIND $(LIBWAMR_SUPPRESS_FLAGS) > + > +################################################################################ > +# Glue code > +################################################################################ > +LIBWAMR_SRCS-$(CONFIG_LIBWAMR_MAIN_FUNCTION) += $(LIBWAMR_BASE)/glue.c > + > +################################################################################ > +# Sources > +################################################################################ > +LIBWAMR_MAIN_FLAGS-y += -Dmain=wamr_main > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/products/linux/main.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/vmcore-wasm/invokeNative_general.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/vmcore-wasm/wasm_application.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/vmcore-wasm/wasm_interp.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/vmcore-wasm/wasm_loader.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/vmcore-wasm/wasm_runtime.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/shared-lib/mem-alloc/bh_memory.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/utils/wasm_log.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/shared-lib/platform/linux/bh_thread.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/utils/wasm_hashmap.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/lib/native/libc/libc_wrapper.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/utils/wasm_dlfcn.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/shared-lib/mem-alloc/mem_alloc.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/shared-lib/platform/linux/bh_platform.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/runtime/platform/zephyr/wasm_native.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/lib/native/base/base_lib_export.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/iwasm/products/linux/ext_lib_export.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/shared-lib/mem-alloc/ems/ems_kfc.c > +LIBWAMR_SRCS-y += $(LIBWAMR_SRC)/core/shared-lib/mem-alloc/ems/ems_alloc.c > diff --git a/glue.c b/glue.c > new file mode 100644 > index 0000000..0538772 > --- /dev/null > +++ b/glue.c > @@ -0,0 +1,10 @@ > +#include <stdio.h> > + > +/* Import user configuration: */ > +#include <uk/config.h> > + > +int main(int argc, char *argv[]) > +{ > + wamr_main(argc, argv); Could we add a warning for the user if he/she implemented the main() under app directory? Well, if that's the case the linker will say so. If the user didn't add "--repl" and didn't append a -initrd XXX.wasm, could we give a graceful warning instead of quiting quitely? Yes, no problem. Regarding my previous comments to the other patches and fixing nits on upstreaming: since I'll have to send a (minor) fix for this one, I might as well fix the other bits in a v4 which I'll hopefully send out soon. Thanks, -- Felipe --- Cheers, Justin (Jia He) _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |