[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |