[tlbuild] tl25 start

Ken Brown kbrow1i at gmail.com
Mon Feb 10 16:29:23 CET 2025


On 2/8/2025 4:38 PM, Karl Berry wrote:
> I've switched the TL repo's trunk to target the pretest and am
> committing a first set of autobuilt binaries. Those doing their own
> commits, please do.

I'm having trouble building luajit on Cygwin.  I get lots of link errors 
like this:

/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
LuaJIT-src/src/.libs/lib_aux.o: in function `luaL_fileresult':
/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/../../../libs/luajit/LuaJIT-src/src/lib_aux.c:34: 
multiple definition of `luaL_fileresult'; 
.libs/lib_aux.o:/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/lib_aux.c:34: 
first defined here

If I'm interpreting this right, ld is trying to link two copies of 
lib_aux.o, one in

   Work/libs/luajit/LuaJIT-src/src/.libs/

and one in

   Work/libs/luajit/.libs

And of course the same thing happens for other object files.  Does 
anyone know why lib_aux.c and other source files are being compiled 
twice?  It must have something to do with the fact that the source files 
are symlinked into the Work directory.  For example, I have the 
following in source/Work/libs/luajit:

   lib_aux.c -> ../../../libs/luajit/LuaJIT-src/src/lib_aux.c

But I've looked at Makefile.am and can't see what's going on.  In 
particular, I don't know why the behavior on Cygwin is apparently 
different from the behavior on other Unix-like systems.

I'm appending to the end of this message an excerpt from build.log in 
case it helps someone figure this out.

Thanks in advance for any pointers.

Ken

Making all in luajit
make[3]: Entering directory 
'/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit'
make  all-recursive
make[4]: Entering directory 
'/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit'
Making all in .
make[5]: Entering directory 
'/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit'
   LINK     lib_aux.c
   LINK     lib_base.c
   LINK     lib_bit.c
   LINK     lib_buffer.c
   LINK     lib_debug.c
   LINK     lib_ffi.c
   LINK     lib_init.c
   LINK     lib_io.c
   LINK     lib_jit.c
   LINK     lib_math.c
   LINK     lib_os.c
   LINK     lib_package.c
   LINK     lib_string.c
   LINK     lib_table.c
   LINK     lj_opt_fold.c
cd native && make  buildvm-stamp
make[6]: Entering directory 
'/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/native'
   CC       ../LuaJIT-src/src/host/minilua-minilua.o
   CCLD     minilua.exe
   GEN      buildvm_arch.h
   GEN      luajit.h
   CC       ../LuaJIT-src/src/host/buildvm-buildvm.o
   CC       ../LuaJIT-src/src/host/buildvm-buildvm_asm.o
   CC       ../LuaJIT-src/src/host/buildvm-buildvm_fold.o
   CC       ../LuaJIT-src/src/host/buildvm-buildvm_lib.o
   CC       ../LuaJIT-src/src/host/buildvm-buildvm_peobj.o
   CCLD     buildvm.exe
make[6]: Leaving directory 
'/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/native'
   GEN      lj_bcdef.h
   GEN      lj_ffdef.h
   GEN      lj_libdef.h
   GEN      lj_recdef.h
cd native && make  luajit.h
   GEN      lj_folddef.h
make[6]: Entering directory 
'/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/native'
make[6]: 'luajit.h' is up to date.
make[6]: Leaving directory 
'/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/native'
ln -s native/luajit.h	
   GEN      lj_vm_obj.o
   CC       lbitlib.lo
   CC       lib_aux.lo
   CC       lib_base.lo
   CC       lib_bit.lo
   CC       lib_buffer.lo
   CC       lib_debug.lo
   CC       lib_ffi.lo
   CC       lib_init.lo
   CC       lib_io.lo
   CC       lib_jit.lo
   CC       lib_math.lo
   CC       lib_os.lo
   CC       lib_package.lo
   CC       lib_string.lo
   CC       lib_table.lo
   CC       LuaJIT-src/src/lib_aux.lo
   CC       LuaJIT-src/src/lib_base.lo
   CC       LuaJIT-src/src/lib_bit.lo
   CC       LuaJIT-src/src/lib_buffer.lo
   CC       LuaJIT-src/src/lib_debug.lo
   CC       LuaJIT-src/src/lib_ffi.lo
   CC       LuaJIT-src/src/lib_init.lo
   CC       LuaJIT-src/src/lib_io.lo
   CC       LuaJIT-src/src/lib_math.lo
   CC       LuaJIT-src/src/lib_jit.lo
   CC       LuaJIT-src/src/lib_os.lo
   CC       LuaJIT-src/src/lib_package.lo
   CC       LuaJIT-src/src/lib_string.lo
   CC       LuaJIT-src/src/lib_table.lo
   CC       LuaJIT-src/src/lj_alloc.lo
   CC       LuaJIT-src/src/lj_api.lo
   CC       LuaJIT-src/src/lj_asm.lo
   CC       LuaJIT-src/src/lj_assert.lo
   CC       LuaJIT-src/src/lj_bc.lo
   CC       LuaJIT-src/src/lj_bcread.lo
   CC       LuaJIT-src/src/lj_bcwrite.lo
   CC       LuaJIT-src/src/lj_buf.lo
   CC       LuaJIT-src/src/lj_carith.lo
   CC       LuaJIT-src/src/lj_ccallback.lo
   CC       LuaJIT-src/src/lj_ccall.lo
   CC       LuaJIT-src/src/lj_cconv.lo
   CC       LuaJIT-src/src/lj_cdata.lo
   CC       LuaJIT-src/src/lj_char.lo
   CC       LuaJIT-src/src/lj_clib.lo
   CC       LuaJIT-src/src/lj_cparse.lo
   CC       LuaJIT-src/src/lj_crecord.lo
   CC       LuaJIT-src/src/lj_ctype.lo
   CC       LuaJIT-src/src/lj_debug.lo
   CC       LuaJIT-src/src/lj_dispatch.lo
   CC       LuaJIT-src/src/lj_err.lo
   CC       LuaJIT-src/src/lj_ffrecord.lo
   CC       LuaJIT-src/src/lj_func.lo
   CC       LuaJIT-src/src/lj_gc.lo
   CC       LuaJIT-src/src/lj_gdbjit.lo
   CC       LuaJIT-src/src/lj_ir.lo
   CC       LuaJIT-src/src/lj_lex.lo
   CC       LuaJIT-src/src/lj_lib.lo
   CC       LuaJIT-src/src/lj_load.lo
   CC       LuaJIT-src/src/lj_mcode.lo
   CC       LuaJIT-src/src/lj_meta.lo
   CC       LuaJIT-src/src/lj_obj.lo
   CC       LuaJIT-src/src/lj_opt_dce.lo
   CC       LuaJIT-src/src/lj_opt_fold.lo
   CC       LuaJIT-src/src/lj_opt_loop.lo
   CC       LuaJIT-src/src/lj_opt_mem.lo
   CC       LuaJIT-src/src/lj_opt_narrow.lo
   CC       LuaJIT-src/src/lj_opt_sink.lo
   CC       LuaJIT-src/src/lj_opt_split.lo
   CC       LuaJIT-src/src/lj_parse.lo
   CC       LuaJIT-src/src/lj_prng.lo
   CC       LuaJIT-src/src/lj_profile.lo
   CC       LuaJIT-src/src/lj_record.lo
   CC       LuaJIT-src/src/lj_serialize.lo
   CC       LuaJIT-src/src/lj_snap.lo
   CC       LuaJIT-src/src/lj_state.lo
   CC       LuaJIT-src/src/lj_str.lo
   CC       LuaJIT-src/src/lj_strfmt.lo
   CC       LuaJIT-src/src/lj_strfmt_num.lo
   CC       LuaJIT-src/src/lj_strscan.lo
   CC       LuaJIT-src/src/lj_tab.lo
   CC       LuaJIT-src/src/lj_trace.lo
   CC       LuaJIT-src/src/lj_udata.lo
   CC       LuaJIT-src/src/lj_vmevent.lo
   CC       LuaJIT-src/src/lj_vmmath.lo
   CC       LuaJIT-src/src/luajit.lo
   GEN      lj_vm_obj.lo
   CCLD     libtexluajit.la
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
LuaJIT-src/src/.libs/lib_aux.o: in function `luaL_fileresult':
/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/../../../libs/luajit/LuaJIT-src/src/lib_aux.c:34: 
multiple definition of `luaL_fileresult'; 
.libs/lib_aux.o:/home/kbrown/src/texlive/trunk/Build/source/Work/libs/luajit/lib_aux.c:34: 
first defined here
[More errors like this.]


More information about the tlbuild mailing list.