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: Björn Bidar
Subject: Re: How to make aot native-compilation and pdmp creation reproduceable
Date: Mon, 09 Oct 2023 20:06:40 +0300
User-agent: Gnus/5.13 (Gnus v5.13)

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> Björn Bidar <bjorn.bidar@thaodan.de> writes:
>
>> Gerd Möllmann <gerd.moellmann@gmail.com> writes:
>>
>>> Björn Bidar <bjorn.bidar@thaodan.de> writes:
>>>
>>>>> My hypothesis is that x-win.eln changes between builds (print-circle
>>>>> etc.) => make-fingerprint computes a different ingerprint and so on
>>>>
>>>> But the emacs execute and pdmp even changes for builds without
>>>> native-comp, see my earlier message:
>>>> https://mail.gnu.org/archive/html/emacs-devel/2023-10/msg00133.html
>>>
>>> Is that the right link?  Where does it say that that is w/o native-comp?
>>> Anyway, so the facts are which now?
>>
>> The link only contains the diff. I attach the full build log now yes.
>
> To be honest, I don't understand what you mean by the first sentence.
> The linked message didn't say it's w/o native-compilation?

The first log I send only did contain the log of the diff between the
two builds. The attached log was the full build log.

>>
>>> - all builds are from scratch?
>>
>> Yes they are from scratch in a clean build environment, a open build
>> service worker (see attachment).
>>
>>> - Executable and pdmp change with every build, independent of
>>>   native-comp?
>> yes
>>> - x-win.eln changes with native-comp?
>> yes
>
> Let me add another question, just to be as precise as possible:
>
> I understand We have differences between 2 independent builds with
> native compilation.  When you say executable and pdmp differ without
> native compilation, do you mean between 2 builds both without native
> comp?
>
>> Build log without native-comp:
>
> Not of great help, I'm afraid.  Lots of stuff nobody wants to know, here
> at least :-).
>
> Anyway--what are these CFLAGS for, esp. -DPDMP_BASE=...?  I don't know
> what they do.

These are general cflags (-pipe), harding and lto cflags but they have
no impact on Emacs being reproduceable or not.

PDMP base is so that each variant of the Emacs binary picks up the right
pdmp, again no impact on being reproduceable or not. 

>> [ 187s] + CFLAGS='-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3
>> -fstack-protector-strong -funwind-tables
>> -fasynchronous-unwind-tables -fstack-clash-protection
>> -Werror=return-type -flto=auto -g -D_GNU_SOURCE
>> -DGDK_DISABLE_DEPRECATION_WARNINGS
>> -DGLIB_DISABLE_DEPRECATION_WARNINGS -pipe -Wno-pointer-sign
>> -Wno-unused-variable -Wno-unused-label -fno-optimize-sibling-calls
>> -DPDMP_BASE='\''"emacs-wayland"'\'''
>> [  187s] + ./configure --disable-build-details ...
>
> I'd recommend simplifying things by building Emacs with standard options
> (no CFLAGS=...) and without any of your build tools.  Just 2 clean build
> directories, and then compare.

I don't think how that simplifies things, cflags don't impact if the
build is reproduceable or not.



reply via email to

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