[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’.