Date: Sat, 4 Oct 2025 08:42:43 -0400 From: Mark Johnston <markj@freebsd.org> To: Kyle Evans <kevans@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 1953a12ee2cd - main - flua: support our flua modules in the bootstrap flua Message-ID: <aOEWQ0lTOjYn4Mn6@nuc> In-Reply-To: <dd1b5658-fe1c-4893-9935-3dfd587c4723@FreeBSD.org> References: <202510031810.593IAZE9008541@gitrepo.freebsd.org> <aOBCo2tQDevULzkY@nuc> <27098bd2-04e8-4ef7-8b8e-f7b170eb8151@FreeBSD.org> <aOBSJpmrrJuDe7vx@nuc> <dd1b5658-fe1c-4893-9935-3dfd587c4723@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Oct 03, 2025 at 07:57:31PM -0500, Kyle Evans wrote: > On 10/3/25 17:45, Mark Johnston wrote: > > On Fri, Oct 03, 2025 at 04:44:38PM -0500, Kyle Evans wrote: > > > On 10/3/25 16:39, Mark Johnston wrote: > > > > 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. > > > > > > Hi, > > > > > > Hmm, yes- I think excluding libfreebsd and libjail doesn't make it much more > > > difficult to reason about what's available in the bootstrap flua. > > > > > > re: cross-builds, yikes- I forgot that we'll end up bootstrapping flua there. I > > > bet it's also broken without libyaml and libucl here: https://reviews.freebsd.org/D52894? > > > > I don't see any bootstrap build failures in an Ubuntu chroot after I > > disable building libfreebsd. Let me know if you'd like me to submit a > > patch for that. > > I backed all of it out for the time being, because testing with the github jobs pointed out > something funky[0] with the <sys/linker_set.h> for mach-o, and I don't want to stand in the > way of breaking cross-builds for this at the moment. Thanks! On the latest main I do see some test failures from nuageinit, which I presume are fallout from the changes. For instance: Standard output: Executing command [ /usr/libexec/flua /usr/tests/libexec/nuageinit/addfile.lua ] Standard error: Fail: incorrect exit status: 1, expected: 0 stdout: stderr: /usr/libexec/flua: /usr/share/flua/nuage.lua:7: module 'posix.unistd' not found: no field package.preload['posix.unistd'] no file '/usr/share/flua/posix/unistd.lua' no file '/usr/share/flua/posix/unistd/init.lua' no file '/usr/lib/flua/posix/unistd.lua' no file '/usr/lib/flua/posix/unistd/init.lua' no file './posix/unistd.lua' no file './posix/unistd/init.lua' no file '/usr/lib/flua/posix/unistd.so' no file '/usr/lib/flua/loadall.so' no file './posix/unistd.so' no module 'posix.unistd' in file '/usr/lib/flua/posix.so' stack traceback: [C]: in function 'require' /usr/share/flua/nuage.lua:7: in main chunk [C]: in function 'require' /usr/tests/libexec/nuageinit/addfile.lua:3: in main chunk [C]: in ?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?aOEWQ0lTOjYn4Mn6>