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

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



Thanks for this improvement.

Reviewed-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>

On 12.02.20 19:51, Felipe Huici wrote:
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;
   }

_______________________________________________
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®.