* Help needed fixing linux-libre-5.2 on aarch64 @ 2019-07-13 3:41 Mark H Weaver 2019-07-14 11:05 ` Pierre Langlois 0 siblings, 1 reply; 7+ messages in thread From: Mark H Weaver @ 2019-07-13 3:41 UTC (permalink / raw) To: guix-devel The 'kernel-updates' includes a preliminary commit to update linux-libre to version 5.2. Berlin has built it successfully on all supported architectures except for aarch64, where it fails: https://ci.guix.gnu.org/build/1448778/details I would be grateful if someone with access to aarch64 hardware could debug this and propose a fix. Until then, I'm reluctant to push this update to 'master'. See below for the relevant excerpt from the build log. Thanks, Mark --8<---------------cut here---------------start------------->8--- CC [M] arch/arm64/lib/xor-neon.o In file included from /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/stdint.h:34:0, from /gnu/store/7ykq1909hf7jgkvqcxdz7r0dglnbx005-gcc-7.4.0-lib/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/arm_neon.h:33, from ./arch/arm64/include/asm/neon-intrinsics.h:33, from arch/arm64/lib/xor-neon.c:11: /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/bits/stdint-intn.h:27:19: error: conflicting types for 'int64_t' typedef __int64_t int64_t; ^~~~~~~ In file included from ./include/linux/list.h:5:0, from ./include/linux/module.h:9, from arch/arm64/lib/xor-neon.c:10: ./include/linux/types.h:114:15: note: previous declaration of 'int64_t' was here typedef s64 int64_t; ^~~~~~~ In file included from /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/stdint.h:37:0, from /gnu/store/7ykq1909hf7jgkvqcxdz7r0dglnbx005-gcc-7.4.0-lib/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/arm_neon.h:33, from ./arch/arm64/include/asm/neon-intrinsics.h:33, from arch/arm64/lib/xor-neon.c:11: /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/bits/stdint-uintn.h:27:20: error: conflicting types for 'uint64_t' typedef __uint64_t uint64_t; ^~~~~~~~ In file included from ./include/linux/list.h:5:0, from ./include/linux/module.h:9, from arch/arm64/lib/xor-neon.c:10: ./include/linux/types.h:112:15: note: previous declaration of 'uint64_t' was here typedef u64 uint64_t; ^~~~~~~~ make[1]: *** [scripts/Makefile.build:285: arch/arm64/lib/xor-neon.o] Error 1 make: *** [Makefile:1071: arch/arm64/lib] Error 2 --8<---------------cut here---------------end--------------->8--- ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Help needed fixing linux-libre-5.2 on aarch64 2019-07-13 3:41 Help needed fixing linux-libre-5.2 on aarch64 Mark H Weaver @ 2019-07-14 11:05 ` Pierre Langlois 2019-07-14 12:24 ` Pierre Langlois 0 siblings, 1 reply; 7+ messages in thread From: Pierre Langlois @ 2019-07-14 11:05 UTC (permalink / raw) To: Mark H Weaver; +Cc: Guix-devel Hi Mark! Mark H Weaver writes: > The 'kernel-updates' includes a preliminary commit to update linux-libre > to version 5.2. Berlin has built it successfully on all supported > architectures except for aarch64, where it fails: > > https://ci.guix.gnu.org/build/1448778/details > > I would be grateful if someone with access to aarch64 hardware could > debug this and propose a fix. Until then, I'm reluctant to push this > update to 'master'. > > See below for the relevant excerpt from the build log. > > Thanks, > Mark > > > --8<---------------cut here---------------start------------->8--- > CC [M] arch/arm64/lib/xor-neon.o > In file included from /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/stdint.h:34:0, > from /gnu/store/7ykq1909hf7jgkvqcxdz7r0dglnbx005-gcc-7.4.0-lib/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/arm_neon.h:33, > from ./arch/arm64/include/asm/neon-intrinsics.h:33, > from arch/arm64/lib/xor-neon.c:11: > /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/bits/stdint-intn.h:27:19: error: conflicting types for 'int64_t' > typedef __int64_t int64_t; > ^~~~~~~ > In file included from ./include/linux/list.h:5:0, > from ./include/linux/module.h:9, > from arch/arm64/lib/xor-neon.c:10: > ./include/linux/types.h:114:15: note: previous declaration of 'int64_t' was here > typedef s64 int64_t; > ^~~~~~~ > In file included from /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/stdint.h:37:0, > from /gnu/store/7ykq1909hf7jgkvqcxdz7r0dglnbx005-gcc-7.4.0-lib/lib/gcc/aarch64-unknown-linux-gnu/7.4.0/include/arm_neon.h:33, > from ./arch/arm64/include/asm/neon-intrinsics.h:33, > from arch/arm64/lib/xor-neon.c:11: > /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/bits/stdint-uintn.h:27:20: error: conflicting types for 'uint64_t' > typedef __uint64_t uint64_t; > ^~~~~~~~ > In file included from ./include/linux/list.h:5:0, > from ./include/linux/module.h:9, > from arch/arm64/lib/xor-neon.c:10: > ./include/linux/types.h:112:15: note: previous declaration of 'uint64_t' was here > typedef u64 uint64_t; > ^~~~~~~~ > make[1]: *** [scripts/Makefile.build:285: arch/arm64/lib/xor-neon.o] Error 1 > make: *** [Makefile:1071: arch/arm64/lib] Error 2 > --8<---------------cut here---------------end--------------->8--- I have access to some hardware at the moment so I thought I'd give this a shot and yeah, I can reproduce it! I have access to a softiron board (that's the same as what's on berlin.guixsd.org right?) running Ubuntu with guix installed on top. The strange thing is, the failure only happens with building using guix, I can build linux on the board from source just fine: ``` # From a local checkout of linux (not linux-libre) ~/linux ((v5.2))$ guix environment -C linux-libre ~/linux [env]$ make defconfig ~/linux [env]$ make -j8 # OK ``` Whereas with `guix build linux-libre` I can see the error. And it still happens if I keep the build around with `guix build -K linux-libre`: ``` /tmp/guix-build-linux-libre-5.2.drv-0/linux-5.2$ source ../environment-variables /tmp/guix-build-linux-libre-5.2.drv-0/linux-5.2$ make -j8 CALL scripts/atomic/check-atomics.sh CALL scripts/checksyscalls.sh CHK include/generated/compile.h ./scripts/mkcompile_h: line 47: hostname: command not found CC [M] arch/arm64/lib/xor-neon.o In file included from /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/stdint.h:34:0, from /gnu/store/7ykq1909hf7jgkvqcxdz7r0dglnbx005-gcc-7.4.0-lib/lib/gcc/aarch64-unknown-linux-gnu /7.4.0/include/arm_neon.h:33, from ./arch/arm64/include/asm/neon-intrinsics.h:33, from arch/arm64/lib/xor-neon.c:11: /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/bits/stdint-intn.h:27:19: error: conflicting types for 'int64_t' typedef __int64_t int64_t; ^~~~~~~ In file included from ./include/linux/list.h:5:0, from ./include/linux/module.h:9, from arch/arm64/lib/xor-neon.c:10: ./include/linux/types.h:114:15: note: previous declaration of 'int64_t' was here typedef s64 int64_t; ^~~~~~~ In file included from /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/stdint.h:37:0, from /gnu/store/7ykq1909hf7jgkvqcxdz7r0dglnbx005-gcc-7.4.0-lib/lib/gcc/aarch64-unknown-linux-gnu /7.4.0/include/arm_neon.h:33, from ./arch/arm64/include/asm/neon-intrinsics.h:33, from arch/arm64/lib/xor-neon.c:11: /gnu/store/im7irb1qnmvwypz53dxv5i75wy94dcz5-glibc-2.28/include/bits/stdint-uintn.h:27:20: error: conflicting type s for 'uint64_t' typedef __uint64_t uint64_t; ^~~~~~~~ In file included from ./include/linux/list.h:5:0, from ./include/linux/module.h:9, from arch/arm64/lib/xor-neon.c:10: ./include/linux/types.h:112:15: note: previous declaration of 'uint64_t' was here typedef u64 uint64_t; ^~~~~~~~ make[1]: *** [scripts/Makefile.build:285: arch/arm64/lib/xor-neon.o] Error 1 make: *** [Makefile:1071: arch/arm64/lib] Error 2 make: *** Waiting for unfinished jobs.... ``` So I tried to compare the environments and saw we had a 'work-around-gcc-7-include-path-issue phase: ``` (add-before 'configure 'work-around-gcc-7-include-path-issue (lambda _ (unsetenv "C_INCLUDE_PATH") (unsetenv "CPLUS_INCLUDE_PATH") #t)) ``` And if I remove it then the error goes away! The build hasn't finished yet for me, but it's gone past the offending xor-neon.c file so we /should/ be good. I'm not really sure why though, do you know why this phase was required at the time? I haven't tested that linux-libre still builds on x86 with this phase removed yet, trying it now. Hope this helps! Thanks, Pierre ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Help needed fixing linux-libre-5.2 on aarch64 2019-07-14 11:05 ` Pierre Langlois @ 2019-07-14 12:24 ` Pierre Langlois 2019-07-14 12:48 ` swedebugia ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Pierre Langlois @ 2019-07-14 12:24 UTC (permalink / raw) To: Mark H Weaver; +Cc: Guix-devel [-- Attachment #1: Type: text/plain, Size: 581 bytes --] > And if I remove it then the error goes away! The build hasn't finished > yet for me, but it's gone past the offending xor-neon.c file so we > /should/ be good. > > I'm not really sure why though, do you know why this phase was required > at the time? I haven't tested that linux-libre still builds on x86 with > this phase removed yet, trying it now. OK, I've now built kernels with the attached patch on the kernel-updates branch for x86_64 and aarch64! I've also tested with --system=armhf-linux on the softiron and --system=i868-linux on my x86 desktop, it all looks good! [-- Attachment #2: 0001-gnu-linux-libre-Fix-build-on-aarch64.patch --] [-- Type: text/x-patch, Size: 1518 bytes --] From db0cd6773c54d9a8f9dd332cb20abab770e29a51 Mon Sep 17 00:00:00 2001 From: Pierre Langlois <pierre.langlois@gmx.com> Date: Sun, 14 Jul 2019 12:47:06 +0100 Subject: [PATCH] gnu: linux-libre: Fix build on aarch64. * gnu/packages/linux.scm (make-linux-libre)[arguments]: Remove 'work-around-gcc-7-include-path-issue phase. --- gnu/packages/linux.scm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 41991c9e45..d63755d791 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -35,6 +35,7 @@ ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com> +;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -355,11 +356,6 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (substitute* (find-files "." "^Makefile(\\.include)?$") (("/bin/pwd") "pwd")) #t)) - (add-before 'configure 'work-around-gcc-7-include-path-issue - (lambda _ - (unsetenv "C_INCLUDE_PATH") - (unsetenv "CPLUS_INCLUDE_PATH") - #t)) (replace 'configure (lambda* (#:key inputs native-inputs target #:allow-other-keys) ;; Avoid introducing timestamps -- 2.22.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: Help needed fixing linux-libre-5.2 on aarch64 2019-07-14 12:24 ` Pierre Langlois @ 2019-07-14 12:48 ` swedebugia 2019-07-14 14:01 ` Pierre Langlois 2019-07-14 14:46 ` Ludovic Courtès 2 siblings, 0 replies; 7+ messages in thread From: swedebugia @ 2019-07-14 12:48 UTC (permalink / raw) To: guix-devel On 2019-07-14 14:24, Pierre Langlois wrote: > >> And if I remove it then the error goes away! The build hasn't finished >> yet for me, but it's gone past the offending xor-neon.c file so we >> /should/ be good. >> >> I'm not really sure why though, do you know why this phase was required >> at the time? I haven't tested that linux-libre still builds on x86 with >> this phase removed yet, trying it now. > > OK, I've now built kernels with the attached patch on the kernel-updates > branch for x86_64 and aarch64! I've also tested with > --system=armhf-linux on the softiron and --system=i868-linux on my x86 > desktop, it all looks good! Nice work! -- Cheers Swedebugia ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Help needed fixing linux-libre-5.2 on aarch64 2019-07-14 12:24 ` Pierre Langlois 2019-07-14 12:48 ` swedebugia @ 2019-07-14 14:01 ` Pierre Langlois 2019-07-14 14:46 ` Ludovic Courtès 2 siblings, 0 replies; 7+ messages in thread From: Pierre Langlois @ 2019-07-14 14:01 UTC (permalink / raw) To: Mark H Weaver; +Cc: Guix-devel [-- Attachment #1: Type: text/plain, Size: 1409 bytes --] Pierre Langlois writes: >> And if I remove it then the error goes away! The build hasn't finished >> yet for me, but it's gone past the offending xor-neon.c file so we >> /should/ be good. >> >> I'm not really sure why though, do you know why this phase was required >> at the time? I haven't tested that linux-libre still builds on x86 with >> this phase removed yet, trying it now. > > OK, I've now built kernels with the attached patch on the kernel-updates > branch for x86_64 and aarch64! I've also tested with > --system=armhf-linux on the softiron and --system=i868-linux on my x86 > desktop, it all looks good! > * gnu/packages/linux.scm (make-linux-libre)[arguments]: Remove > 'work-around-gcc-7-include-path-issue phase. > --- > gnu/packages/linux.scm | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm > index 41991c9e45..d63755d791 100644 > --- a/gnu/packages/linux.scm > +++ b/gnu/packages/linux.scm > @@ -35,6 +35,7 @@ > ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> > ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> > ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com> > +;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> Whoops, I hadn't realized I had edited this file before, see attached for a fixed patch. [-- Attachment #2: 0001-gnu-linux-libre-Fix-build-on-aarch64.patch --] [-- Type: text/x-patch, Size: 1725 bytes --] From 1f855451dfd4c3068eebcc09cacf79bb6df97cc8 Mon Sep 17 00:00:00 2001 From: Pierre Langlois <pierre.langlois@gmx.com> Date: Sun, 14 Jul 2019 12:47:06 +0100 Subject: [PATCH] gnu: linux-libre: Fix build on aarch64. * gnu/packages/linux.scm (make-linux-libre)[arguments]: Remove 'work-around-gcc-7-include-path-issue phase. --- gnu/packages/linux.scm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 41991c9e45..c1a5bbebc0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -30,7 +30,7 @@ ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2018 Manuel Graf <graf@init.at> -;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> @@ -355,11 +355,6 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (substitute* (find-files "." "^Makefile(\\.include)?$") (("/bin/pwd") "pwd")) #t)) - (add-before 'configure 'work-around-gcc-7-include-path-issue - (lambda _ - (unsetenv "C_INCLUDE_PATH") - (unsetenv "CPLUS_INCLUDE_PATH") - #t)) (replace 'configure (lambda* (#:key inputs native-inputs target #:allow-other-keys) ;; Avoid introducing timestamps -- 2.22.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: Help needed fixing linux-libre-5.2 on aarch64 2019-07-14 12:24 ` Pierre Langlois 2019-07-14 12:48 ` swedebugia 2019-07-14 14:01 ` Pierre Langlois @ 2019-07-14 14:46 ` Ludovic Courtès 2019-07-14 19:39 ` Mark H Weaver 2 siblings, 1 reply; 7+ messages in thread From: Ludovic Courtès @ 2019-07-14 14:46 UTC (permalink / raw) To: Pierre Langlois; +Cc: Guix-devel Hello, Pierre Langlois <pierre.langlois@gmx.com> skribis: > OK, I've now built kernels with the attached patch on the kernel-updates > branch for x86_64 and aarch64! I've also tested with > --system=armhf-linux on the softiron and --system=i868-linux on my x86 > desktop, it all looks good! > > From db0cd6773c54d9a8f9dd332cb20abab770e29a51 Mon Sep 17 00:00:00 2001 > From: Pierre Langlois <pierre.langlois@gmx.com> > Date: Sun, 14 Jul 2019 12:47:06 +0100 > Subject: [PATCH] gnu: linux-libre: Fix build on aarch64. > > * gnu/packages/linux.scm (make-linux-libre)[arguments]: Remove > 'work-around-gcc-7-include-path-issue phase. Any idea why this hack is no longer needed, and also why things behaved differently on AArch64? Thanks for working on this! Ludo’. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Help needed fixing linux-libre-5.2 on aarch64 2019-07-14 14:46 ` Ludovic Courtès @ 2019-07-14 19:39 ` Mark H Weaver 0 siblings, 0 replies; 7+ messages in thread From: Mark H Weaver @ 2019-07-14 19:39 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel Hi, Pierre Langlois <pierre.langlois@gmx.com> wrote: > OK, I've now built kernels with the attached patch on the kernel-updates > branch for x86_64 and aarch64! I've also tested with > --system=armhf-linux on the softiron and --system=i868-linux on my x86 > desktop, it all looks good! Thank you Pierre, this is much appreciated. I went ahead and pushed the 5.2 update and your fix to 'master'. Ludovic Courtès <ludo@gnu.org> wrote: > Any idea why this hack is no longer needed, and also why things behaved > differently on AArch64? I'm not sure. I added that workaround in the commit that enabled compilation of GCC plugins in our 'linux-libre' packages, and also enabled use of GCC-7 on all architectures, whereas previously GCC-7 was used only on x86_64 and i686. In general, that kind of workaround was often needed when compiling packages with GCC-7, because the C include path generated by 'set-paths' was somehow breaking some uses of "#include_next" in the C standard library, maybe because the path elements were in the wrong order. I don't remember the precise details. Here's the relevant commit, for the record: commit ce899af10901bf9ed06fe0528b8c4f628ebba4fd Author: Mark H Weaver <mhw@netris.org> Date: Mon Dec 31 22:33:33 2018 -0500 gnu: linux-libre: Build with GCC-7 on all systems. * gnu/packages/linux.scm (make-linux-libre)[native-inputs]: Include GCC-7 unconditionally. Previously it was included only on Intel systems. Add GMP, MPFR, and MPC. [arguments]: Add 'work-around-gcc-7-include-path-issue' phase. Anyway, thanks again Pierre! Mark ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-07-14 19:40 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-07-13 3:41 Help needed fixing linux-libre-5.2 on aarch64 Mark H Weaver 2019-07-14 11:05 ` Pierre Langlois 2019-07-14 12:24 ` Pierre Langlois 2019-07-14 12:48 ` swedebugia 2019-07-14 14:01 ` Pierre Langlois 2019-07-14 14:46 ` Ludovic Courtès 2019-07-14 19:39 ` Mark H Weaver
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).