all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Skyler via "Development of GNU Guix and the GNU System
	distribution." <guix-devel@gnu.org>
Cc: Skyler <skyvine@protonmail.com>
Subject: Re: Fixing xen build
Date: Thu, 24 Mar 2022 22:50:30 +0100	[thread overview]
Message-ID: <877d8j9g0p.fsf@gnu.org> (raw)
In-Reply-To: <5Kp9uY-wxUeedRyLF-De7KTRCrd10fXSb8slRzO95xC5lxmVH99idmHlEVGMG0B8L1Bp1E5O_I3hsraQvvgH-82FC53mX-7sjTwQBbfIu2A=@protonmail.com> (Skyler via's message of "Sun, 20 Mar 2022 18:12:05 +0000")

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	other threads:[~2022-03-24 21:50 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-20 18:12 Fixing xen build Skyler via Development of GNU Guix and the GNU System distribution.
2022-03-24 21:50 ` Ludovic Courtès [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877d8j9g0p.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=skyvine@protonmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.