# [tlbuild] sharable format files

Karl Berry karl at freefriends.org
Fri Sep 25 02:37:10 CEST 2009

Hello Nelson, TL builders, and all,

The Sun Solaris SPARC and SGI IRIX versions work fine, but I see the
error on GNU/Linux (AMD64, SPARC, IA-32, IA-64), and Solaris AMD64.

Sorry to hear it :(.

1. It is true that we do not ship .fmt's on the DVD.

2. It is nevertheless true that we want .fmt's for the different
platforms to interoperate.  I believe this has been true in previous
releases.

3. I can confirm that a tex.fmt written with the checked-in i386-linux
tex binary cannot be read with the checked-in sparc-solaris tex, and
vice versa.  But the sparc-linux and i386-linux tex.fmt's are
compatible.  So it is not solely endianness at issue.

3a. These things are also true for pdftex and luatex, so it's not
engine-specific, either.  (Good.)

4. Debugging in the loadfmtfile routine showed me that the very first
check, of the fmt file magic number, is failing.  Running

od -N 4 -t x1 ~/sparc-solaris-tex.fmt

results in the four (hex) bytes 58 54 32 57, which is wrong.
They should be 57 32 54 58, which is what i386-linux and sparc-linux
output.  I assume the converse problem happens on input.

5. This comes from line 4012 of tex.ch:
dump_int(@"57325458);  {Web2C \TeX's magic constant: "W2TX"}

6. By default, the top-level configure is supposed to enable "dump
sharing" (i.e., --enable-dump-share).  So unless you explicitly
said configure --disable-dump-share (which I doubt), items should be
swapped as needed.

7. I wonder if bigendianness was not correctly detected on sparc (maybe
due to that weird endian-neutral thing it does now)?  Or if there is
some (64-bit?) compiler flag interfering?

8. Vladimir, you built the sparc-solaris binaries.  Can you check your
configure results?  And what is happening on aix, etc.?

9. I put a copy of my tex.fmt which I hope/believe is supposed to be the
sharable one at http://tug.org/~karl/sharable-tex.fmt.gz.

Platform builders, can you please see if your tex can read this?
I'm out of time for today.  That is:

wget http://tug.org/~karl/sharable-tex.fmt.gz
gunzip sharable-tex.fmt.gz
tex \&./sharable-tex \\end

If you don't get the dreaded "Fatal format error", it is good.

Thanks,
Karl