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: Eli Zaretskii
Subject: Re: How to make aot native-compilation and pdmp creation reproduceable
Date: Mon, 09 Oct 2023 14:05:39 +0300

> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> Cc: emacs-devel@gnu.org
> Date: Mon, 09 Oct 2023 06:19:16 +0200
> 
> Björn Bidar <bjorn.bidar@thaodan.de> writes:
> 
> > Gerd Möllmann <gerd.moellmann@gmail.com> writes:
> >
> >>> One example of pdmp of one of the variants:
> >>> /usr/bin/emacs-x11 differs in ELF sections
> >>> --- old /usr/bin/emacs-x11 (objdump)
> >>> +++ new /usr/bin/emacs-x11 (objdump)
> >>> @@ -519888,8 +519888,8 @@
> >>>   7f1410 2d2d6e6f 2d73706c 61736800 00000000  --no-splash.....
> >>>   7f1420 00400000 00000000 00000000 00000000  .@..............
> >>>   7f1430 00000000 00000000 00000000 00000000  ................
> >>> - 7f1440 81e3b8e4 33011ec5 18db85f2 9586197c  ....3..........|
> >>> - 7f1450 be6fb703 f761afd4 c6d7bd74 f2168be2  .o...a.....t....
> >>> + 7f1440 a2c05c34 51540c6d eae96bed 21a90a3c  ..\4QT.m..k.!..<
> >>> + 7f1450 c0cf321a e7c634d2 89ae7791 2fe90967  ..2...4...w./..g
> >>>   7f1460 2c010000 00000000 20003900 00000000  ,....... .9.....
> >>>   7f1470 ffffffff 15000000 3e000000 7c000000  ........>...|...
> >>>   7f1480 12000000 00000000 00000000 00000000  ................
> >>
> >> That's confusing.  Is that an executable, if you do an objdump?  You
> >> write it's an example of pdmp.
> > Th Emacs executable also changes each time.
> > Oh that's an oversight on my side. Here is the diff:
> > /usr/libexec/emacs/29.1/x86_64-suse-linux/emacs-x11.pdmp differs at offset 
> > '17' (GNU/Emacs pdumper image)
> > --- old /usr/libexec/emacs/29.1/x86_64-suse-linux/emacs-x11.pdmp (hex)
> > +++ new /usr/libexec/emacs/29.1/x86_64-suse-linux/emacs-x11.pdmp (hex)
> > @@ -1,6 +1,6 @@
> >  00000000  44 55 4d 50 45 44 47 4e  55 45 4d 41 43 53 00 00  
> > |DUMPEDGNUEMACS..|
> > -00000010  81 e3 b8 e4 33 01 1e c5  18 db 85 f2 95 86 19 7c  
> > |....3..........||
> > -00000020  be 6f b7 03 f7 61 af d4  c6 d7 bd 74 f2 16 8b e2  
> > |.o...a.....t....|
> > +00000010  a2 c0 5c 34 51 54 0c 6d  ea e9 6b ed 21 a9 0a 3c  
> > |..\4QT.m..k.!..<|
> > +00000020  c0 cf 32 1a e7 c6 34 d2  89 ae 77 91 2f e9 09 67  
> > |..2...4...w./..g|
> >  00000030  98 ce c2 00 bc d7 08 00  88 2d e6 00 5b 00 00 00  
> > |.........-..[...|
> >  00000040  f8 2e e6 00 b8 16 00 00  d8 89 e6 00 e3 e9 03 00  
> > |................|
> >  00000050  68 31 f6 00 03 0d 00 00  20 4c 98 00 00 00 9c 00
> >  |h1...... L......|
> 
> Offset 17 is the stat of the dump fingerprint (the first 16 bytes are a
> magic number).
> 
> struct dump_header
> {
>   /* File type magic.  */
>   char magic[sizeof (dump_magic)];
> 
>   /* Associated Emacs binary.  */
>   unsigned char fingerprint[sizeof fingerprint];

The fingerprint is supposed to remain unchanged if you rebuild the
same code base.



reply via email to

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