Subject: bug#50666: 28.0.50; Fix native compilation on Cygwin

From: Eli Zaretskii <[email-masked]>
Date: Thu, 23 Sep 2021 21:57:30 +0300

> From: Achim Gratz <[email-masked]>
> Date: Thu, 23 Sep 2021 20:29:45 +0200
> 
> > No, there are no architecture-specific branches.  I guess the idea is
> > that the 2 hashes in the file name and the 3rd has in the directory
> > name (which depends on the Emacs binary) will take care of that.
> 
> Hmm, I seem to remember some post from Andrea that showed a
> x86_64-pc-linux-gnu subdirectory for the cached files.  So how are these
> hashes generated, then?

The directory where the *.eln files are installed is named XX.YY-HASH,
where XX.YY is the Emacs version and HASH is computed by hashing the
string that's the concatenation of the native-compilation ABI version,
the Emacs version, the system-configuration (that's your
x86_64-pc-linux-gnu thing), system-configuration-options, and the
signatures of all the primitives.

The *.eln file names have 2 hashes: one is computed from the absolute
file name of the source .el file, the other from the contents of the
source .el file.