Re: git: 1953a12ee2cd - main - flua: support our flua modules in the bootstrap flua
Date: Fri, 03 Oct 2025 21:39:47 UTC
On Fri, Oct 03, 2025 at 06:10:35PM +0000, Kyle Evans wrote:
> The branch main has been updated by kevans:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=1953a12ee2cde1afacb3e3f7612d89695c96e04f
>
> commit 1953a12ee2cde1afacb3e3f7612d89695c96e04f
> Author: Kyle Evans <kevans@FreeBSD.org>
> AuthorDate: 2025-10-03 18:09:03 +0000
> Commit: Kyle Evans <kevans@FreeBSD.org>
> CommitDate: 2025-10-03 18:09:14 +0000
>
> flua: support our flua modules in the bootstrap flua
>
> 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.
>
> Reviewed by: bapt, emaste
> Differential Revision: https://reviews.freebsd.org/D51890
This breaks cross-building from other OSes since linker.h and kenv.h
aren't available. I guess we can safely exclude those from the
bootstrap build? It could be done conditionally on ${.MAKE.OS} perhaps,
but it's probably better to be consistent.