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: Gerd Möllmann
Subject: Re: How to make aot native-compilation and pdmp creation reproduceable
Date: Mon, 09 Oct 2023 06:19:16 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

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];




reply via email to

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