guix-devel
[Top][All Lists]
Advanced

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

Re: Fixing xen build


From: Ludovic Courtès
Subject: Re: Fixing xen build
Date: Thu, 24 Mar 2022 22:50:30 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hi Skyler,

Skyler via "Development of GNU Guix and the GNU System distribution."
<guix-devel@gnu.org> skribis:

> Xen currently does not build on x86_64-linux 
> (http://ci.guix.gnu.org/search?query=xen+system:x86_64-linux). It will build 
> if all instances of .note.gnu.build-id are quoted in
> xen/arch/x86/xen.lds.S. This is because of the hyphen in the symbol in the 
> argument to ADDR. I tested this by placing the following into a file named 
> xen.scm and running guix build -f
> xen.scm:

I added this to the ‘patch’ phase of ‘xen’ and can confirm that it
solves the problem (will push shortly).

> (define (transform-keyword-value search-key transformer input output)
>   (let ((next-key (first input))
>         (next-value (second input))
>         (remaining (drop input 2)))
>     (if (eq? search-key next-key)
>         (append (list search-key (transformer next-value)) remaining output)
>         (transform-keyword-value search-key transformer remaining (cons* 
> next-key next-value output)))))

You can use ‘substitute-keyword-arguments’ from (guix utils) to do
that (unfortunately undocumented right now).

> I'm not sure if this should be reported elsewhere. It might be that it's 
> intended that symbols with hyphens need to be quoted when used in numeric 
> expressions (which would make sense, it
> could be confused with subtraction) in which case Xen's script needs to be 
> updated. It might be that ld is supposed to be able to understand that it's 
> part of the symbol, in which case
> there's a bug in ld. But neither makes sense to me. Xen's package definition 
> (including the source form) has not changed since the successful builds in 
> December, so it worked before. Quoting
> the symbol seems reasonable based on how other languages behave, but 
> .note.gnu.build-id seems like a standard practice based on some searches, and 
> it's mentioned in ld's man page, so I would
> expect it to work easily. If the hyphen was going to cause issues, would the 
> standard practice not use an underscore? I don't understand enough to know 
> where else this should be reported,
> but the above code fixes the guix build which is what I care about most.

I’m not sure exactly where the problem is, but I’m glad you found a
fix.  :-)

Hopefully we can eventually get rid of this hack.

Thanks!

Ludo’.



reply via email to

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