guix-patches
[Top][All Lists]
Advanced

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

[bug#47921] [PATCH] build: Fix elf-dynamic-info-soname.


From: Dion Mendel
Subject: [bug#47921] [PATCH] build: Fix elf-dynamic-info-soname.
Date: Wed, 21 Apr 2021 23:46:12 +0800
User-agent: Mutt/1.9.4 (2018-02-28)

Thanks for the follow up.

1. IIUC, this change would cause a world-rebuild, so this patch would have to applied on core-updates. The subject line should have been
[PATCH core-updates]: etcetera.

Are you sure?  This patch will modify guix.

  guix graph --type=reverse-package guix

Only shows a few packages to be rebuilt. I am new to guix so I may be wrong about this.

2. How did you test this patch?

Tested in the repl.

Current behaviour:

   (elf-dynamic-info-soname
     (call-with-input-file "/path/to/libz.so.1.2.11"
                           (compose elf-dynamic-info parse-elf
                                    get-bytevector-all)))
   => #<<dynamic-entry> type: 14 value: "libz.so.1" offset: 5764>

There is no way to extract the value as dynamic-entry is private to the module.

After the patch:

   (elf-dynamic-info-soname
     (call-with-input-file "/path/to/libz.so.1.2.11"
                           (compose elf-dynamic-info parse-elf
                                    get-bytevector-all)))
   => "libz.so.1"

3. What does this patch fix?

Module (guix build gremlin) exports several functions to extract information from the dynamic section of an elf file.

elf-dynamic-info-soname is one of these functions. It is not called anywhere in guix. I would like to use it for packaging, but it is currently non functioning.

4. elf-dynamic-info-soname is a record accessor. Did you mean elf-dynamic-info?

No, I do not mean elf-dynamic-info.

elf-dynamic-info-soname is a record accessor which is currently broken because it doesn't unwrap an internal structure, namely <dynamic-entry>. All the other accessors unwrap this internal structure.

This patch brings this accessor into line with the others.

5. According to the docstring (core-updates, 
c9a61dff8242612ae8275829a5ee31ff45ff08b1):

 "Return dynamic-link information for ELF as an <elf-dynamic-info> object, or
#f if ELF lacks dynamic-link information."

 So this patch actually _introduces_ a bug.  Or you need to modify the docstring
 as well.

No. This patch does not affect elf-dynamic-info. It fixes one of its accessors. Nothing else is affected.





reply via email to

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