[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/DUKTAPE PATCH] Provide main(), jump into interactive mode.
Add the ability for the duktape library to provide a main() so that the application doesn't have to (selectable from the menu). In addition, duktape now goes straight into interactive mode; previosuly it was assuming that the --append parameter was a file name to be read and executed, which was broken. At some point we should add initrd support to this port. Signed-off-by: Felipe Huici <felipe.huici@xxxxxxxxx> --- Config.uk | 8 +++++- Makefile.uk | 8 ++++++ glue.c | 11 ++++++++ patches/0001-jump-into-interactive-mode.patch | 28 +++++++++++++++++++ patches/0001-rename-main-function.patch | 11 -------- 5 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 glue.c create mode 100644 patches/0001-jump-into-interactive-mode.patch delete mode 100644 patches/0001-rename-main-function.patch diff --git a/Config.uk b/Config.uk index 6a3c59c..b9e2274 100644 --- a/Config.uk +++ b/Config.uk @@ -1,4 +1,10 @@ -config DUKTAPE +menuconfig DUKTAPE bool "Duktape - an embeddable Javascript engine" default n select LIBNEWLIBC + +if DUKTAPE +config DUKTAPE_MAIN_FUNCTION + bool "Provide main function" + default y +endif diff --git a/Makefile.uk b/Makefile.uk index 45dffcc..bcb3def 100644 --- a/Makefile.uk +++ b/Makefile.uk @@ -60,9 +60,17 @@ DUKTAPE_GENERATED=$(DUKTAPE_EXTRACTED)/duktape-src CINCLUDES-$(CONFIG_DUKTAPE) += -I$(DUKTAPE_EXTRACTED)/duktape-src CXXINCLUDES-$(CONFIG_DUKTAPE) += -I$(DUKTAPE_EXTRACTED)/duktape-src +################################################################################ +# Library flags +################################################################################ +DUKTAPE_CFLAGS-y += -Wno-unused-function +DUKTAPE_CXXFLAGS-y += -Wno-unused-function + ################################################################################ # Sources ################################################################################ +DUKTAPE_DUK_CMDLINE_FLAGS-y += -Dmain=duktape_main +DUKTAPE_SRCS-$(CONFIG_DUKTAPE_MAIN_FUNCTION) += $(DUKTAPE_BASE)/glue.c DUKTAPE_SRCS-y += $(DUKTAPE_GENERATED)/duktape.c DUKTAPE_SRCS-y += $(DUKTAPE_EXTRACTED)/examples/cmdline/duk_cmdline.c diff --git a/glue.c b/glue.c new file mode 100644 index 0000000..7cee52d --- /dev/null +++ b/glue.c @@ -0,0 +1,11 @@ +#include <stdio.h> + +/* Import user configuration: */ +#include <uk/config.h> + +extern int duktape_main(int argc, char *argv[]); + +int main(int argc, char *argv[]) +{ + return duktape_main(argc, argv); +} diff --git a/patches/0001-jump-into-interactive-mode.patch b/patches/0001-jump-into-interactive-mode.patch new file mode 100644 index 0000000..7ba2f01 --- /dev/null +++ b/patches/0001-jump-into-interactive-mode.patch @@ -0,0 +1,28 @@ +--- a/examples/cmdline/duk_cmdline.c 2020-02-12 14:43:19.599772761 +0100 ++++ b/examples/cmdline/duk_cmdline.c 2020-02-12 14:41:23.393106690 +0100 +@@ -1265,7 +1265,7 @@ + int retval = 0; + int have_files = 0; + int have_eval = 0; +- int interactive = 0; ++ int interactive = 1; + int memlimit_high = 1; + int alloc_provider = ALLOC_DEFAULT; + int lowmem_log = 0; +@@ -1456,6 +1456,7 @@ + continue; + } + ++ /* + if (verbose) { + fprintf(stderr, "*** Executing file: %s\n", arg); + fflush(stderr); +@@ -1465,7 +1466,7 @@ + retval = 1; + goto cleanup; + } +- ++ */ + if (recreate_heap) { + if (verbose) { + fprintf(stderr, "*** Recreating heap...\n"); diff --git a/patches/0001-rename-main-function.patch b/patches/0001-rename-main-function.patch deleted file mode 100644 index 8c4a8cc..0000000 --- a/patches/0001-rename-main-function.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/examples/cmdline/duk_cmdline.c 2019-09-09 08:23:15.891284704 +0200 -+++ b/examples/cmdline/duk_cmdline.c 2019-09-09 08:22:57.783472251 +0200 -@@ -1260,7 +1260,7 @@ - * Main - */ - --int main(int argc, char *argv[]) { -+int duktape_main(int argc, char *argv[]) { - duk_context *ctx = NULL; - int retval = 0; - int have_files = 0; -- 2.20.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 |