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