Format file differences (was: Re: pdflatex does not work on win after todays update but does on linux)

Jonathan Kew jfkthame at gmail.com
Tue Jun 15 21:51:44 CEST 2021


On 15/06/2021 19:38, Marcel Fabian Krüger wrote:
> On Tue, Jun 15, 2021 at 07:26:03PM +0100, Jonathan Kew wrote:
>>
>> I suspect that the commit https://github.com/tex-mirror/pdftex/commit/70e0c9c9e95184665909dd447bc80aa08d700822
>> made dumps non-portable at least between 32-bit and 64-bit systems, because
>> it (un)dumps variables of C type |size_t|, which will typically be a 4-byte
>> value in a 32-bit environment, but 8-byte in a 64-bit system.
>>
>> Hence, I wonder if declaring the |count| and |remaining| variables in
>> |dumptounicode| and |undumptounicode| respectively as a portable web2c type
>> such as |longinteger| might resolve the problem.
>>
>> JK
>>
> 
> That commit *did* make dumps non-portable but that issue was fixed
> shortly afterwards [in texlive](https://github.com/TeX-Live/texlive-source/commit/42e871ff0eba7c26bcead6096bce36f332de3339)
> and the fix also made it into the
> [pdftex repo](https://github.com/tex-mirror/pdftex/commit/889c5ac900545e9775921b5d884716e9de48b1cf#diff-75f9f96e8dd7b2808844d343e2542f7df64aec52f669468879c200861edeec56).
> 
> Best,
> Marcel
> 

Ah, interesting - thanks. I hadn't checked for any followup, just 
glanced over the commit that Jonathan pointed out.

Looking at the current code, though, I see another suspicious piece of 
dump/undump usage. The code in tounicode.c applies |generic_dump| / 
|generic_undump| to |gu->code|. But the |code| field in 
|glyph_unicode_entry| is declared as |long| in C, which I believe could 
be either 4 or 8 bytes in size, depending on architecture.

JK


More information about the tex-live mailing list.