[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT/LIBLUA PATCH] Fix broken behaviour when given append parameter.



This patch makes it so that Lua now goes straight into interactive
mode when not given initrd as a parameter; previosuly it was assuming
that the --append parameter was a file name to be read and executed,
which was broken.

Signed-off-by: Felipe Huici <felipe.huici@xxxxxxxxx>
---
 Makefile.uk                                   |  2 +-
 ...t.patch => 0001-lua-main-add-initrd.patch} | 23 ++++++++++++++-----
 2 files changed, 18 insertions(+), 7 deletions(-)
 rename patches/{0001-add-initrd-rename-entry-point.patch => 
0001-lua-main-add-initrd.patch} (60%)

diff --git a/Makefile.uk b/Makefile.uk
index 3c3d05a..4a855ab 100644
--- a/Makefile.uk
+++ b/Makefile.uk
@@ -39,7 +39,7 @@ LIBLUA_SRCS-$(CONFIG_LIBLUA_MAIN_FUNCTION) += 
$(LIBLUA_BASE)/main.c
 
################################################################################
 # Library flags
 
################################################################################
-LIBLUA_SUPPRESS_FLAGS += -Wno-implicit-function-declaration
+LIBLUA_SUPPRESS_FLAGS += -Wno-implicit-function-declaration 
-Wno-unused-function
 LIBLUA_FLAGS += -DLUA_COMPAT_5_2
 
 LIBLUA_CFLAGS-y += $(LIBLUA_FLAGS) $(LIBLUA_SUPPRESS_FLAGS)
diff --git a/patches/0001-add-initrd-rename-entry-point.patch 
b/patches/0001-lua-main-add-initrd.patch
similarity index 60%
rename from patches/0001-add-initrd-rename-entry-point.patch
rename to patches/0001-lua-main-add-initrd.patch
index 135a0c4..ecfb8f0 100644
--- a/patches/0001-add-initrd-rename-entry-point.patch
+++ b/patches/0001-lua-main-add-initrd.patch
@@ -1,5 +1,5 @@
 --- a/src/lua.c        2017-04-19 19:29:57.000000000 +0200
-+++ b/src/lua.c        2019-09-03 13:36:09.437807890 +0200
++++ b/src/lua.c        2020-02-12 19:38:09.704428160 +0100
 @@ -6,6 +6,8 @@
  
  #define lua_c
@@ -19,19 +19,30 @@
    int args = collectargs(argv, &script);
    luaL_checkversion(L);  /* check that interpreter has correct version */
    if (argv[0] && argv[0][0]) progname = argv[0];
-@@ -581,6 +586,11 @@
-     return 0;
+@@ -576,24 +581,23 @@
+   }
+   if (!runargs(L, argv, script))  /* execute arguments -e and -l */
+     return 0;  /* something failed */
+-  if (script < argc &&  /* execute main script (if there is one) */
+-      handle_script(L, argv + script) != LUA_OK)
+-    return 0;
    if (args & has_i)  /* -i option? */
      doREPL(L);  /* do read-eval-print loop */
+-  else if (script == argc && !(args & (has_e | has_v))) {  /* no arguments? */
+-    if (lua_stdin_is_tty()) {  /* running in interactive mode? */
 +  /* see if script is available from initrd */
 +  else if (ukplat_memregion_find_initrd0(&img) >= 0) {
 +    cstr = (char *)img.base;
 +    dostring(L, cstr, "initrd");
 +  }
-   else if (script == argc && !(args & (has_e | has_v))) {  /* no arguments? */
-     if (lua_stdin_is_tty()) {  /* running in interactive mode? */
++  else {
        print_version();
-@@ -593,7 +603,7 @@
+       doREPL(L);  /* do read-eval-print loop */
+-    }
+-    else dofile(L, NULL);  /* executes stdin as a file */
+   }
+   lua_pushboolean(L, 1);  /* signal no errors */
+   return 1;
  }
  
  
-- 
2.20.1


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.