[tlbuild] Broken TL build

Michael Orlitzky michael at orlitzky.com
Mon Jan 17 12:35:19 CET 2022


On Mon, 2022-01-17 at 07:18 +0100, Mojca Miklavec wrote:
> 
> What has caught my attention after reading Norbert's email is that
> i386 and x86_64 linux weren't broken for me. But on a closer
> investigation it looks like the error is random.
> i386-linux always worked, x86_64-linux worked in 1 out of 3 attempts,
> x86_64-linuxmusl worked in 2 out of 3 attempts, amd64-openbsd6.9
> worked in 1 out of 3 attempts (while no other OpenBSD build ever
> succeeded: neither the same OS version nor the same architecture)
> 

Yesterday I was able to reproduce *a* race condition,

  libtool: link: gcc -Wimplicit -Wreturn-type -O0 -pipe -fuse-ld=mold
  -Wl,-O1 -Wl,--as-needed -o makecpool makecpool.o 
  rm -f libweb2c.a
  ar cru libweb2c.a kps.o 
  echo timestamp >stamp-makecpool
  ranlib libweb2c.a
  rm -f libweb2c.a
  ar cru libweb2c.a kps.o 
  ranlib: 'libweb2c.a': No such file

but that's not the one in your build logs. Today I put `make clean &&
make -j6` on a loop and was able to reproduce the one you saw as well,

  libtool: link: gcc -Wimplicit -Wreturn-type -O0 -pipe -fuse-ld=mold 
  -Wl,-O1 -Wl,--as-needed -o makecpool makecpool.o 
  echo timestamp >stamp-makecpool
  mv: cannot stat '.deps/kps.Tpo'rm -f libweb2c.a

I can only be stochastically sure, but adding

  web2c_DEPENDENCIES =
  fixwrites_DEPENDENCIES =
  splitup_DEPENDENCIES =

to Makefile.am seems to solve the problem. I find this plausible,
because it would explain why

  web2c_LDADD = -L. -lweb2c

was used instead of the usual

  web2c_LDADD = libweb2c.a

in the first place. The former keeps *_DEPENDENCIES empty.





More information about the tlbuild mailing list.