emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to make aot native-compilation and pdmp creation reproduceable


From: Ulrich Mueller
Subject: Re: How to make aot native-compilation and pdmp creation reproduceable
Date: Tue, 10 Oct 2023 10:30:10 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

>>>>> On Mon, 09 Oct 2023, Alan Mackenzie wrote:

> For what it's worth, I just built Emacs twice on one of my development
> repositories on GNU/Linux, and the two emacsen produced were identical,
> checked by cmp and md5sum.

> Each build was set off with

>     $ make -j17 bootstrap

> ..  My configuration was created by:

>     $ configure --with-gpm --with-native-compilation --with-gif=no 
> --with-tiff=no

> ..  Maybe I don't understand what the problem is, but I'm seeing
> repeatable builds.

When building on a Gentoo system, I get a reproducible emacs binary,
but the dump is different every time:

$ USE="-*" MAKEOPTS="-j1" EVCS_OFFLINE=1 ebuild emacs-30.0.9999.ebuild clean 
compile
[...]
 * Emacs branch: master
 * Commit: 336c3674119f61bd78a056476769ce83b97230bb
[...]
$ md5sum /tmp/portage/app-editors/emacs-30.0.9999/work/emacs/src/emacs{,.pdmp}
805903ff5a7a5efc289e1e66240cddff  
/tmp/portage/app-editors/emacs-30.0.9999/work/emacs/src/emacs
d3a98def495185bb818f6521f36417e0  
/tmp/portage/app-editors/emacs-30.0.9999/work/emacs/src/emacs.pdmp

$ USE="-*" MAKEOPTS="-j1" EVCS_OFFLINE=1 ebuild emacs-30.0.9999.ebuild clean 
compile
[...]
 * Emacs branch: master
 * Commit: 336c3674119f61bd78a056476769ce83b97230bb
[...]
$ md5sum /tmp/portage/app-editors/emacs-30.0.9999/work/emacs/src/emacs{,.pdmp}
805903ff5a7a5efc289e1e66240cddff  
/tmp/portage/app-editors/emacs-30.0.9999/work/emacs/src/emacs
2f9c59181684c3070a1684cd2d030dea  
/tmp/portage/app-editors/emacs-30.0.9999/work/emacs/src/emacs.pdmp

I have verified that all *.el and *.elc files are identical in both
cases. I get different checksums for lib/libgnu.a, which is expected
because the archive contains timestamps.

My configuration is this (with USE="-* almost all options are disabled):

./configure --prefix=/usr --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
--localstatedir=/var/lib --datarootdir=/usr/share --disable-silent-rules
--docdir=/usr/share/doc/emacs-30.0.9999
--htmldir=/usr/share/doc/emacs-30.0.9999/html --libdir=/usr/lib64
--program-suffix=-emacs-30-vcs --includedir=/usr/include/emacs-30-vcs
--infodir=/usr/share/info/emacs-30-vcs --localstatedir=/var
--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
--without-compress-install --without-hesiod --without-pop
--with-file-notification=no --with-pdumper --disable-acl --disable-xattr
--without-dbus --without-modules --without-gameuser --without-libgmp
--without-gpm --without-native-compilation --without-json
--without-kerberos --without-kerberos5 --without-lcms2 --without-xml2
--without-mailutils --without-selinux --without-small-ja-dic
--without-sqlite3 --without-gnutls --without-libsystemd --without-threads
--without-tree-sitter --without-wide-int --with-sound=no --without-zlib
--without-x --without-pgtk --without-ns --with-dumping=pdumper



reply via email to

[Prev in Thread] Current Thread [Next in Thread]