Subject: bug#51104: comp-tests.elc messes up after reconfiguring for different machine

From: Eli Zaretskii <[email-masked]>
Date: Mon, 12 Sep 2022 14:43:40 +0300

> Cc: [email-masked], Andrea Corallo <[email-masked]>
> From: Lars Ingebrigtsen <[email-masked]>
> Date: Mon, 12 Sep 2022 13:15:56 +0200
> 
> Paul Eggert <[email-masked]> writes:
> 
> > When trying out the emacs-28 branch on both 32- and 64-bit platforms,
> > I had test failures that I tracked down to this line:
> >
> > test/src/comp-tests.el:933:       (integer ,most-negative-fixnum
> > ,most-positive-fixnum))
> >
> > My problem was that I'd built test/src/comp-tests.elc on a 32-bit
> > platform (using "./configure CC='gcc -m32'" on an x86-64 machine) so
> > that .elc file had been built assuming 32-bit values for
> > most-negative-fixnum and most-positive fixnum. When I then re-ran
> > 'configure' for a 64-bit platform the .elc files were not
> > automatically rebuilt for it (they're supposed to be
> > machine-independent, right?) and so the optimizations were incorrect
> > for a 64-bit platform and the tests failed.
> >
> > What's a good way to fix this problem, while still testing everything
> > that comp-tests.el wants to test?
> 
> This was a year ago, but the code in question seems unchanged now on
> "master":
> 
>       ;; 14
>       ((defun comp-tests-ret-type-spec-f (x)
>          (comp-hint-fixnum x))
>        (integer ,most-negative-fixnum ,most-positive-fixnum))
> 
> So I guess the problem is still present?  (I haven't tested myself.)
> 
> Andrea, do you see any way to fix this test for this 32-bit/64-bit
> scenarion?

Is comp-tests.el supposed to run when Emacs is built without
native-compilation? if so, what does it test in that case?

And if comp-tests.el is supposed to run only in a native-compilation
build, then I'd expect to see comp-test.eln run, not comp-test.elc,
and *.eln files are architecture-specific to begin with.