Page MenuHomeFreeBSD

flua: support our flua modules in the bootstrap flua
ClosedPublic

Authored by kevans on Aug 14 2025, 6:09 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Dec 31, 11:01 PM
Unknown Object (File)
Fri, Dec 26, 12:16 AM
Unknown Object (File)
Dec 18 2025, 1:54 PM
Unknown Object (File)
Dec 10 2025, 2:15 PM
Unknown Object (File)
Dec 9 2025, 6:04 AM
Unknown Object (File)
Nov 27 2025, 11:35 PM
Unknown Object (File)
Nov 23 2025, 9:37 AM
Unknown Object (File)
Nov 7 2025, 11:19 AM
Subscribers
None

Details

Summary

This version builds every module into the flua binary itself, since all
of the bootstrap tools are built -DNO_SHARED. As a result, we also
cannot dlsym(), so we can't really discover the names of our newly
builtin modules. Instead, just build out a linker set with all of our
luaopen_*() functions to register everything up-front.

Building in all of the modules isn't strictly necessary, but it means
that we have an example of how to add a bootstrap module everywhere you
go and one doesn't need to consider whether bootstrap flua can use a
module when writing scripts. On my build machine, the consequence on
our binary size is an increase from around 1.6M -> 1.9M, which isn't
really that bad.

.lua modules can install into their usual path below $WORLDTMP/legacy
and we'll pick them up automagically by way of the ctor that sets up
LUA_PATH early on.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kevans created this revision.
libexec/flua/libucl/Makefile.inc
1

intentional?

libexec/flua/libucl/Makefile.inc
1

Yes, I wanted to give us the option of raising the WARNS or excluding other modules that had an equal or lower WARNS without breaking the build

This revision is now accepted and ready to land.Sep 11 2025, 7:11 AM