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

Re: [Minios-devel] [UNIKRAFT/LIBLUA PATCH] Add optional main and PRECIOUS target



Hi Roxana,

Thanks for the review! Please see inline.

-- Felipe

On 15.10.19, 12:22, "Minios-devel on behalf of Roxana Nicolescu" 
<minios-devel-bounces@xxxxxxxxxxxxxxxxxxxx on behalf of 
nicolescu.roxana1996@xxxxxxxxx> wrote:

    Hi Helipe,
    
    Thanks for the patch!
    
    I tried to compile a simple app with liblua included, and the build 
    systems doesn't do the fetching.
    
    This behaviour doesn't happen with the previous version. I have no clue 
    why, since you did not change the fetch instruction in Makefile.uk.
    
Ok, I'll have a look.

    Also, please see my comments inline.
    
    On 08.10.2019 16:39, Felipe Huici wrote:
    > We add a menu option to provide a main() function. We also add a
    > target to Makefile.uk such that make does not delete the library's
    > public headers after the build.
    
    I think the commit message should also include the fact that 
    `exportsyms.uk` file is deleted.
    
    Or do a separate patch.

Ok, I'll do a separate patch.
    
    > Signed-off-by: Felipe Huici <felipe.huici@xxxxxxxxx>
    > ---
    >   Config.uk     |  12 +-
    >   Makefile.uk   |  30 +++--
    >   exportsyms.uk | 338 --------------------------------------------------
    >   main.c        |  10 ++
    >   4 files changed, 42 insertions(+), 348 deletions(-)
    >   delete mode 100644 exportsyms.uk
    >   create mode 100644 main.c
    >
    > diff --git a/Config.uk b/Config.uk
    > index 343a214..541c460 100644
    > --- a/Config.uk
    > +++ b/Config.uk
    > @@ -1,4 +1,12 @@
    > -config LIBLUA
    > +menuconfig LIBLUA
    >           bool "The Lua programming language"
    >           default n
    > - depends on HAVE_LIBC
    > + select LIBNEWLIBC
    > + select LIBUKTIME
    > + select UKUNISTD
    > +
    > +if LIBLUA
    > +config LIBLUA_MAIN_FUNCTION
    > + bool "Provide main function"
    > + default y
    
    Can you move it to the right since it's under `if LIBLUA` rule?
    
Sure.

    > +endif
    > diff --git a/Makefile.uk b/Makefile.uk
    > index 8e62fea..575e287 100644
    > --- a/Makefile.uk
    > +++ b/Makefile.uk
    > @@ -26,17 +26,30 @@ 
LIBLUA_SRCS_BASE=$(LIBLUA_ORIGIN)/$(LIBLUA_TARBALL)/src
    >   # The prepare step below takes care of populating the folder.
    >   $(call mk_sub_build_dir,liblua/include)
    >   CINCLUDES-$(CONFIG_LIBLUA)   += -I$(LIBLUA_BUILD)/include
    > -CPPINCLUDES-$(CONFIG_LIBLUA) += -I$(LIBLUA_BUILD)/include
    > +CXXINCLUDES-$(CONFIG_LIBLUA) += -I$(LIBLUA_BUILD)/include
    >   
    >   # Private headers
    >   LIBLUA_CINCLUDES-y += -I$(LIBLUA_SRCS_BASE)
    >   
    >   
################################################################################
    > -# Compilation unit
    > +# Glue code
    >   
################################################################################
    > -LIBLUA_CFLAGS-y += -DLUA_COMPAT_5_2
    > +LIBLUA_SRCS-$(CONFIG_LIBLUA_MAIN_FUNCTION) += $(LIBLUA_BASE)/main.c
    >   
    > 
+################################################################################
    > +# Library flags
    > 
+################################################################################
    > +LIBLUA_SUPPRESS_FLAGS += -Wno-implicit-function-declaration
    > +LIBLUA_FLAGS += -DLUA_COMPAT_5_2
    > +
    > +LIBLUA_CFLAGS-y += $(LIBLUA_FLAGS) $(LIBLUA_SUPPRESS_FLAGS)
    > +LIBLUA_CXXFLAGS-y += $(LIBLUA_FLAGS) $(LIBLUA_SUPPRESS_FLAGS)
    > +
    > 
+################################################################################
    > +# Sources
    > 
+################################################################################
    >   # Main loop
    > +LIBLUA_LUA_FLAGS-y += -Dmain=lua_main
    >   LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lua.c
    >   
    >   # CORE_O
    > @@ -76,18 +89,19 @@ LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/lutf8lib.c
    >   LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/loadlib.c
    >   LIBLUA_SRCS-y += $(LIBLUA_SRCS_BASE)/linit.c
    >   
    > -
    >   
################################################################################
    > -# libray API headers
    > +# library API headers
    >   
################################################################################
    > -$(LIBLUA_SRCS_BASE)/%.h: $(LIBLUA_BUILD)/.origin
    > - @# empty recipe to enforce dependency to archive extraction
    > +.PRECIOUS: $(LIBLUA_EXTRACTED)/%.h
    > +
    
    Can you give a little bit of context here?
    
    What is the value of `LIBLUA_EXTRACTED` variable more precisely?
    
Oh, that shouldn't be LIBLUA_EXTRACTED but rather LIBLUA_SRCS_BASE, I'll fix 
that.

    > +$(LIBLUA_SRCS_BASE)/%.h: $(LIBLUA_EXTRACTED)/%.h
    > + @: # empty recipe to enforce dependency to archive extraction
    >   
    >   $(LIBLUA_BUILD)/include/%.h: $(LIBLUA_SRCS_BASE)/%.h
    >           $(call build_cmd,LN,liblua,$@,\
    >           ln -sf $< $@)
    >   
    > -$(LIBLUA_SRCS_BASE)/%.hpp: $(LIBLUA_BUILD)/.origin
    > +$(LIBLUA_SRCS_BASE)/%.hpp: $(LIBLUA_EXTRACTED)/%.h
    >           @# empty recipe to enforce dependency to archive extraction
    >   
    >   $(LIBLUA_BUILD)/include/%.hpp: $(LIBLUA_SRCS_BASE)/%.hpp
    > diff --git a/exportsyms.uk b/exportsyms.uk
    > deleted file mode 100644
    > index cbb857e..0000000
    > --- a/exportsyms.uk
    > +++ /dev/null
    > @@ -1,338 +0,0 @@
    > -luaB_assert
    > -luaB_auxwrap
    > -luaB_cocreate
    > -luaB_collectgarbage
    > -luaB_coresume
    > -luaB_corunning
    > -luaB_costatus
    > -luaB_cowrap
    > -luaB_dofile
    > -luaB_error
    > -luaB_getmetatable
    > -luaB_ipairs
    > -luaB_load
    > -luaB_loadfile
    > -luaB_next
    > -luaB_pairs
    > -luaB_pcall
    > -luaB_print
    > -luaB_rawequal
    > -luaB_rawget
    > -luaB_rawlen
    > -luaB_rawset
    > -luaB_select
    > -luaB_setmetatable
    > -luaB_tonumber
    > -luaB_tostring
    > -luaB_type
    > -luaB_xpcall
    > -luaB_yield
    > -luaB_yieldable
    > -luaC_barrier_
    > -luaC_barrierback_
    > -luaC_checkfinalizer
    > -luaC_fix
    > -luaC_freeallobjects
    > -luaC_fullgc
    > -luaC_newobj
    > -luaC_runtilstate
    > -luaC_step
    > -luaC_upvalbarrier_
    > -luaC_upvdeccount
    > -luaD_call
    > -luaD_callnoyield
    > -luaD_growstack
    > -luaD_hook
    > -luaD_inctop
    > -luaD_pcall
    > -luaD_poscall
    > -luaD_precall
    > -luaD_protectedparser
    > -luaD_rawrunprotected
    > -luaD_reallocstack
    > -luaD_shrinkstack
    > -luaD_throw
    > -luaE_extendCI
    > -luaE_freeCI
    > -luaE_freethread
    > -luaE_setdebt
    > -luaE_shrinkCI
    > -luaF_close
    > -luaF_findupval
    > -luaF_freeproto
    > -luaF_getlocalname
    > -luaF_initupvals
    > -luaF_newCclosure
    > -luaF_newLclosure
    > -luaF_newproto
    > -luaG_addinfo
    > -luaG_concaterror
    > -luaG_errormsg
    > -luaG_opinterror
    > -luaG_ordererror
    > -luaG_runerror
    > -luaG_tointerror
    > -luaG_traceexec
    > -luaG_typeerror
    > -luaH_free
    > -luaH_get
    > -luaH_getint
    > -luaH_getn
    > -luaH_getshortstr
    > -luaH_getstr
    > -luaH_new
    > -luaH_newkey
    > -luaH_next
    > -luaH_resize
    > -luaH_resizearray
    > -luaH_set
    > -luaH_setint
    > -luaK_checkstack
    > -luaK_code
    > -luaK_codeABC
    > -luaK_codeABx
    > -luaK_codek
    > -luaK_concat
    > -luaK_dischargevars
    > -luaK_exp2RK
    > -luaK_exp2anyreg
    > -luaK_exp2anyregup
    > -luaK_exp2nextreg
    > -luaK_exp2val
    > -luaK_fixline
    > -luaK_getlabel
    > -luaK_goiffalse
    > -luaK_goiftrue
    > -luaK_indexed
    > -luaK_infix
    > -luaK_intK
    > -luaK_jump
    > -luaK_nil
    > -luaK_patchclose
    > -luaK_patchlist
    > -luaK_patchtohere
    > -luaK_posfix
    > -luaK_prefix
    > -luaK_reserveregs
    > -luaK_ret
    > -luaK_self
    > -luaK_setlist
    > -luaK_setoneret
    > -luaK_setreturns
    > -luaK_storevar
    > -luaK_stringK
    > -luaL_addlstring
    > -luaL_addstring
    > -luaL_addvalue
    > -luaL_argerror
    > -luaL_buffinit
    > -luaL_buffinitsize
    > -luaL_callmeta
    > -luaL_checkany
    > -luaL_checkinteger
    > -luaL_checklstring
    > -luaL_checknumber
    > -luaL_checkoption
    > -luaL_checkstack
    > -luaL_checktype
    > -luaL_checkudata
    > -luaL_checkversion_
    > -luaL_error
    > -luaL_execresult
    > -luaL_fileresult
    > -luaL_getmetafield
    > -luaL_getsubtable
    > -luaL_gsub
    > -luaL_len
    > -luaL_loadbufferx
    > -luaL_loadfilex
    > -luaL_loadstring
    > -luaL_newmetatable
    > -luaL_newstate
    > -luaL_openlibs
    > -luaL_optinteger
    > -luaL_optlstring
    > -luaL_optnumber
    > -luaL_prepbuffsize
    > -luaL_pushresult
    > -luaL_pushresultsize
    > -luaL_ref
    > -luaL_requiref
    > -luaL_setfuncs
    > -luaL_setmetatable
    > -luaL_testudata
    > -luaL_tolstring
    > -luaL_traceback
    > -luaL_unref
    > -luaL_where
    > -luaM_growaux_
    > -luaM_realloc_
    > -luaM_toobig
    > -luaO_arith
    > -luaO_ceillog2
    > -luaO_chunkid
    > -luaO_fb2int
    > -luaO_hexavalue
    > -luaO_int2fb
    > -luaO_nilobject_
    > -luaO_pushfstring
    > -luaO_pushvfstring
    > -luaO_str2num
    > -luaO_tostring
    > -luaO_utf8esc
    > -luaP_opmodes
    > -luaP_opnames
    > -luaS_clearcache
    > -luaS_createlngstrobj
    > -luaS_eqlngstr
    > -luaS_hash
    > -luaS_hashlongstr
    > -luaS_init
    > -luaS_new
    > -luaS_newlstr
    > -luaS_newudata
    > -luaS_remove
    > -luaS_resize
    > -luaT_callTM
    > -luaT_callbinTM
    > -luaT_callorderTM
    > -luaT_eventname.3270
    > -luaT_gettm
    > -luaT_gettmbyobj
    > -luaT_init
    > -luaT_objtypename
    > -luaT_trybinTM
    > -luaT_typenames_
    > -luaU_dump
    > -luaU_undump
    > -luaV_concat
    > -luaV_div
    > -luaV_equalobj
    > -luaV_execute
    > -luaV_finishOp
    > -luaV_finishget
    > -luaV_finishset
    > -luaV_lessequal
    > -luaV_lessthan
    > -luaV_mod
    > -luaV_objlen
    > -luaV_shiftl
    > -luaV_tointeger
    > -luaV_tonumber_
    > -luaX_init
    > -luaX_lookahead
    > -luaX_newstring
    > -luaX_next
    > -luaX_setinput
    > -luaX_syntaxerror
    > -luaX_token2str
    > -luaX_tokens
    > -luaY_parser
    > -luaZ_fill
    > -luaZ_init
    > -luaZ_read
    > -lua_absindex
    > -lua_arith
    > -lua_atpanic
    > -lua_callk
    > -lua_checkstack
    > -lua_close
    > -lua_compare
    > -lua_concat
    > -lua_copy
    > -lua_createtable
    > -lua_dump
    > -lua_error
    > -lua_gc
    > -lua_getallocf
    > -lua_getfield
    > -lua_getglobal
    > -lua_gethook
    > -lua_gethookcount
    > -lua_gethookmask
    > -lua_geti
    > -lua_getinfo
    > -lua_getlocal
    > -lua_getmetatable
    > -lua_getstack
    > -lua_gettable
    > -lua_gettop
    > -lua_getupvalue
    > -lua_getuservalue
    > -lua_ident
    > -lua_iscfunction
    > -lua_isinteger
    > -lua_isnumber
    > -lua_isstring
    > -lua_isuserdata
    > -lua_isyieldable
    > -lua_len
    > -lua_load
    > -lua_main
    > -lua_newstate
    > -lua_newthread
    > -lua_newuserdata
    > -lua_next
    > -lua_pcallk
    > -lua_pushboolean
    > -lua_pushcclosure
    > -lua_pushfstring
    > -lua_pushinteger
    > -lua_pushlightuserdata
    > -lua_pushlstring
    > -lua_pushnil
    > -lua_pushnumber
    > -lua_pushstring
    > -lua_pushthread
    > -lua_pushvalue
    > -lua_pushvfstring
    > -lua_rawequal
    > -lua_rawget
    > -lua_rawgeti
    > -lua_rawgetp
    > -lua_rawlen
    > -lua_rawset
    > -lua_rawseti
    > -lua_rawsetp
    > -lua_resume
    > -lua_rotate
    > -lua_setallocf
    > -lua_setfield
    > -lua_setglobal
    > -lua_sethook
    > -lua_seti
    > -lua_setlocal
    > -lua_setmetatable
    > -lua_settable
    > -lua_settop
    > -lua_setupvalue
    > -lua_setuservalue
    > -lua_status
    > -lua_stringtonumber
    > -lua_toboolean
    > -lua_tocfunction
    > -lua_tointegerx
    > -lua_tolstring
    > -lua_tonumberx
    > -lua_topointer
    > -lua_tothread
    > -lua_touserdata
    > -lua_type
    > -lua_typename
    > -lua_upvalueid
    > -lua_upvaluejoin
    > -lua_version
    > -lua_xmove
    > -lua_yieldk
    > -luai_ctype_
    > -luaopen_base
    > -luaopen_bit32
    > -luaopen_coroutine
    > -luaopen_debug
    > -luaopen_io
    > -luaopen_math
    > -luaopen_os
    > -luaopen_package
    > -luaopen_string
    > -luaopen_table
    > -luaopen_utf8
    > diff --git a/main.c b/main.c
    > new file mode 100644
    > index 0000000..4964b69
    > --- /dev/null
    > +++ b/main.c
    > @@ -0,0 +1,10 @@
    > +#include <stdio.h>
    > +
    > +/* Import user configuration: */
    > +#include <uk/config.h>
    > +
    > +int main(int argc, char *argv[])
    > +{
    > +  lua_main(argc, argv);
    > +  return 0;
    > +}
    I think it will improve readability if we split this patch.
    
    One for main function, one for PRECIOUS and one for deletion of 
    exportsyms.uk.

Ok, will do.

Thanks,

-- Felipe
    
    
    _______________________________________________
    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

 


Rackspace

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