flua: kick out the remaining builtin modules

Bootstrap flua has some magic now to handle modules by building them in
and discovering them via linker sets.  This is slightly cleaner than
always building them in and baking them into loadedlibs for both
bootstrap and system flua.

Adjust the stand build now that these three libs have their own new
homes.

Reviewed by:	bapt, emaste
Differential Revision:	https://reviews.freebsd.org/D51891
This commit is contained in:
Kyle Evans 2025-10-03 21:16:51 -05:00
parent 151bd3516b
commit b11a5709ec
17 changed files with 43 additions and 11 deletions

View file

@ -6,6 +6,8 @@
# than mucking about with the infrastructure to make them linkable -- thus, why
# these are all structured to have a Makefile that describes what we want
# *installed*, and a Makefile.inc that describes what we need to *build*.
FLUA_MODULES+= lfbsd
FLUA_MODULES+= lfs
FLUA_MODULES+= libhash
.ifndef BOOTSTRAPPING
# Bootstrap flua can't usefully do anything with libjail anyways, because it
@ -14,6 +16,7 @@ FLUA_MODULES+= libjail
.endif
FLUA_MODULES+= libucl
FLUA_MODULES+= liblyaml
FLUA_MODULES+= lposix
.ifdef BOOTSTRAPPING
# libfreebsd is generally omitted from the bootstrap flua because its
@ -52,7 +55,6 @@ SRCS+= lua.c
# FreeBSD Extensions
.PATH: ${.CURDIR}/modules
SRCS+= linit_flua.c
SRCS+= lfs.c lposix.c lfbsd.c
CFLAGS+= -I${SRCTOP}/lib/liblua -I${.CURDIR}/modules -I${LUASRC}
CFLAGS+= -DLUA_PROGNAME="\"${PROG}\""

View file

@ -0,0 +1,5 @@
SHLIB_NAME= fbsd.so
WARNS?= 3
.include "Makefile.inc"
.include <bsd.lib.mk>

View file

@ -0,0 +1,2 @@
.PATH: ${.PARSEDIR}
SRCS+= lfbsd.c

View file

@ -40,6 +40,8 @@
#include "lauxlib.h"
#include "lfbsd.h"
#include "bootstrap.h"
#define FBSD_PROCESSHANDLE "fbsd_process_t*"
struct fbsd_process {
@ -283,3 +285,5 @@ luaopen_fbsd(lua_State *L)
return (1);
}
FLUA_MODULE(fbsd);

View file

@ -0,0 +1,5 @@
SHLIB_NAME= lfs.so
WARNS?= 3
.include "Makefile.inc"
.include <bsd.lib.mk>

View file

@ -0,0 +1,2 @@
.PATH: ${.PARSEDIR}
SRCS+= lfs.c

View file

@ -66,9 +66,10 @@
#ifdef _STANDALONE
#include "lstd.h"
#include "lutils.h"
#include "bootstrap.h"
#endif
#include "bootstrap.h"
#ifndef nitems
#define nitems(x) (sizeof((x)) / sizeof((x)[0]))
#endif
@ -446,3 +447,7 @@ luaopen_lfs(lua_State *L)
#endif
return 1;
}
#ifndef _STANDALONE
FLUA_MODULE(lfs);
#endif

View file

@ -178,4 +178,6 @@ luaopen_hash(lua_State *L)
return 1;
}
#ifndef _STANDALONE
FLUA_MODULE(hash);
#endif

View file

@ -33,9 +33,6 @@
#include "lualib.h"
#include "lauxlib.h"
#include "lfs.h"
#include "lposix.h"
#include "lfbsd.h"
#include "bootstrap.h"
@ -57,10 +54,6 @@ static const luaL_Reg loadedlibs[] = {
#if defined(LUA_COMPAT_BITLIB)
{LUA_BITLIBNAME, luaopen_bit32},
#endif
/* FreeBSD Extensions */
{"lfs", luaopen_lfs},
{"posix", luaopen_posix},
{"fbsd", luaopen_fbsd},
{NULL, NULL}
};

View file

@ -0,0 +1,5 @@
SHLIB_NAME= posix.so
WARNS?= 3
.include "Makefile.inc"
.include <bsd.lib.mk>

View file

@ -0,0 +1,2 @@
.PATH: ${.PARSEDIR}
SRCS+= lposix.c

View file

@ -21,6 +21,8 @@
#include "lauxlib.h"
#include "lposix.h"
#include "bootstrap.h"
static void
enforce_max_args(lua_State *L, int max)
{
@ -697,3 +699,6 @@ luaopen_posix(lua_State *L)
return (1);
}
/* Only this one needed in our bootstrap set, it will load the others. */
FLUA_MODULE(posix);

View file

@ -24,7 +24,7 @@ SRCS+= lauxlib.c lbaselib.c lstrlib.c loadlib.c
SRCS+= lerrno.c lpager.c lstd.c lutils.c
SRCS+= gfx_utils.c
.PATH: ${FLUASRC}/modules
.PATH: ${FLUASRC}/lfs
SRCS+= lfs.c
.PATH: ${FLUALIB}/libhash
SRCS+= lhash.c

View file

@ -89,7 +89,7 @@ SRCS+= interp_lua.c
.include "${BOOTSRC}/lua.mk"
LDR_INTERP= ${LIBLUA}
LDR_INTERP32= ${LIBLUA32}
CFLAGS.interp_lua.c= -DLUA_PATH=\"${LUAPATH}\" -I${FLUASRC}/modules
CFLAGS.interp_lua.c= -DLUA_PATH=\"${LUAPATH}\" -I${FLUASRC}/lfs
.elif ${LOADER_INTERP} == "4th"
SRCS+= interp_forth.c
.include "${BOOTSRC}/ficl.mk"