unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#37593: [core-updates] Linux-Libre fails to build on aarch64-linux
@ 2019-10-02 20:47 Marius Bakke
  2019-10-02 22:09 ` Pierre Langlois
  0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2019-10-02 20:47 UTC (permalink / raw)
  To: 37593

[-- Attachment #1: Type: text/plain, Size: 2211 bytes --]

Berlin fails to build "linux-libre" for AArch64 on the 'core-updates'
branch.  Here is a recent attempt:

https://ci.guix.gnu.org/build/1758844/details

Log file for the latest build:

https://ci.guix.gnu.org/log/aq2rnrmjsgnyk8vmsm7aa3mgdj39dcwh-linux-libre-5.2.17.drv

This seems to be the salient bit:

CC [M]  arch/arm64/lib/xor-neon.o
In file included from /gnu/store/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:34:0,
                 from /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:37:0,
                 from /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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:1073: arch/arm64/lib] Error 2
make: *** Waiting for unfinished jobs....

Not sure what's going on here.  Ideas?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#37593: [core-updates] Linux-Libre fails to build on aarch64-linux
  2019-10-02 20:47 bug#37593: [core-updates] Linux-Libre fails to build on aarch64-linux Marius Bakke
@ 2019-10-02 22:09 ` Pierre Langlois
  2019-10-05 12:38   ` Marius Bakke
  0 siblings, 1 reply; 5+ messages in thread
From: Pierre Langlois @ 2019-10-02 22:09 UTC (permalink / raw)
  To: 37593

Hi Marius,

Marius Bakke writes:

> Berlin fails to build "linux-libre" for AArch64 on the 'core-updates'
> branch.  Here is a recent attempt:
>
> https://ci.guix.gnu.org/build/1758844/details
>
> Log file for the latest build:
>
> https://ci.guix.gnu.org/log/aq2rnrmjsgnyk8vmsm7aa3mgdj39dcwh-linux-libre-5.2.17.drv
>
> This seems to be the salient bit:
>
> CC [M]  arch/arm64/lib/xor-neon.o
> In file included from /gnu/store/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:34:0,
>                  from /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:37:0,
>                  from /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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:1073: arch/arm64/lib] Error 2
> make: *** Waiting for unfinished jobs....
>
> Not sure what's going on here.  Ideas?

Ha, that looks familiar, the same issue happened back in July:
https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00175.html

I don't think we worked out what was the problem exactly though :-/

Thanks,
Pierre

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#37593: [core-updates] Linux-Libre fails to build on aarch64-linux
  2019-10-02 22:09 ` Pierre Langlois
@ 2019-10-05 12:38   ` Marius Bakke
  2019-10-05 16:01     ` Gábor Boskovits
  0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2019-10-05 12:38 UTC (permalink / raw)
  To: Pierre Langlois, 37593


[-- Attachment #1.1: Type: text/plain, Size: 2679 bytes --]

Pierre Langlois <pierre.langlois@gmx.com> writes:

> Hi Marius,
>
> Marius Bakke writes:
>
>> Berlin fails to build "linux-libre" for AArch64 on the 'core-updates'
>> branch.  Here is a recent attempt:
>>
>> https://ci.guix.gnu.org/build/1758844/details
>>
>> Log file for the latest build:
>>
>> https://ci.guix.gnu.org/log/aq2rnrmjsgnyk8vmsm7aa3mgdj39dcwh-linux-libre-5.2.17.drv
>>
>> This seems to be the salient bit:
>>
>> CC [M]  arch/arm64/lib/xor-neon.o
>> In file included from /gnu/store/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:34:0,
>>                  from /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:37:0,
>>                  from /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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:1073: arch/arm64/lib] Error 2
>> make: *** Waiting for unfinished jobs....
>>
>> Not sure what's going on here.  Ideas?
>
> Ha, that looks familiar, the same issue happened back in July:
> https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00175.html
>
> I don't think we worked out what was the problem exactly though :-/

So I was able to build it with this patch:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-linux-libre-Hide-glibc-from-CPATH-during-build.patch --]
[-- Type: text/x-patch, Size: 1968 bytes --]

From 43d2ab5a046e5da378f062cb2885c1345278d378 Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@berlin.guixsd.org>
Date: Fri, 4 Oct 2019 21:36:42 +0200
Subject: [PATCH] gnu: linux-libre: Hide glibc from CPATH during build.

Fixes <https://bugs.gnu.org/37593>.

* gnu/packages/linux.scm (make-linux-libre*)[arguments]: Drop "libc" from CPATH.
---
 gnu/packages/linux.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index dda95c29ac..525b18d1e2 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -663,6 +663,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
                   (srfi srfi-1)
+                  (srfi srfi-26)
                   (ice-9 match))
        #:phases
        (modify-phases %standard-phases
@@ -679,6 +680,18 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
              ,@(if (%current-target-system)
                    '((unsetenv "CROSS_CPATH"))
                    '())
+
+             ;; On AArch64 (at least), we need to remove glibc headers from CPATH
+             ;; (they are still available as "system headers"), so that the kernel
+             ;; can override uint64_t.  See <https://bugs.gnu.org/37593>.
+             (setenv "CPATH"
+                     (string-join
+                      (remove (cut string-prefix? (assoc-ref inputs "libc") <>)
+                              (string-split (getenv "CPATH") #\:))
+                      ":"))
+             (format #t "environment variable `CPATH' changed to `~a'~%"
+                     (getenv "CPATH"))
+
              ;; Avoid introducing timestamps
              (setenv "KCONFIG_NOTIMESTAMP" "1")
              (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
-- 
2.23.0


[-- Attachment #1.3: Type: text/plain, Size: 41 bytes --]


It's not very pretty though.  Thoughts?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#37593: [core-updates] Linux-Libre fails to build on aarch64-linux
  2019-10-05 12:38   ` Marius Bakke
@ 2019-10-05 16:01     ` Gábor Boskovits
  2019-10-06 16:13       ` Marius Bakke
  0 siblings, 1 reply; 5+ messages in thread
From: Gábor Boskovits @ 2019-10-05 16:01 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 37593

[-- Attachment #1: Type: text/plain, Size: 3394 bytes --]

Hello Marius,

Marius Bakke <mbakke@fastmail.com> ezt írta (időpont: 2019. okt. 5., Szo,
14:40):

> Pierre Langlois <pierre.langlois@gmx.com> writes:
>
> > Hi Marius,
> >
> > Marius Bakke writes:
> >
> >> Berlin fails to build "linux-libre" for AArch64 on the 'core-updates'
> >> branch.  Here is a recent attempt:
> >>
> >> https://ci.guix.gnu.org/build/1758844/details
> >>
> >> Log file for the latest build:
> >>
> >>
> https://ci.guix.gnu.org/log/aq2rnrmjsgnyk8vmsm7aa3mgdj39dcwh-linux-libre-5.2.17.drv
> >>
> >> This seems to be the salient bit:
> >>
> >> CC [M]  arch/arm64/lib/xor-neon.o
> >> In file included from
> /gnu/store/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:34:0,
> >>                  from
> /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:37:0,
> >>                  from
> /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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:1073: arch/arm64/lib] Error 2
> >> make: *** Waiting for unfinished jobs....
> >>
> >> Not sure what's going on here.  Ideas?
> >
> > Ha, that looks familiar, the same issue happened back in July:
> > https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00175.html
> >
> > I don't think we worked out what was the problem exactly though :-/
>
> So I was able to build it with this patch:
>
>
> It's not very pretty though.  Thoughts?
>

I believe that we encountered similar CPATH related problems earlier, which
were fixed by pathes like this, so it looks good to me. Maybe it would
worth investigating the pattern though, and create some generic mechanism
to deal with it. Wdyt?


Best regards,
g_bor
-- 
OpenPGP Key Fingerprint: 7988:3B9F:7D6A:4DBF:3719:0367:2506:A96C:CF63:0B21

[-- Attachment #2: Type: text/html, Size: 4827 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#37593: [core-updates] Linux-Libre fails to build on aarch64-linux
  2019-10-05 16:01     ` Gábor Boskovits
@ 2019-10-06 16:13       ` Marius Bakke
  0 siblings, 0 replies; 5+ messages in thread
From: Marius Bakke @ 2019-10-06 16:13 UTC (permalink / raw)
  To: Gábor Boskovits; +Cc: 37593-done

[-- Attachment #1: Type: text/plain, Size: 3933 bytes --]

Gábor Boskovits <boskovits@gmail.com> writes:

> Hello Marius,
>
> Marius Bakke <mbakke@fastmail.com> ezt írta (időpont: 2019. okt. 5., Szo,
> 14:40):
>
>> Pierre Langlois <pierre.langlois@gmx.com> writes:
>>
>> > Hi Marius,
>> >
>> > Marius Bakke writes:
>> >
>> >> Berlin fails to build "linux-libre" for AArch64 on the 'core-updates'
>> >> branch.  Here is a recent attempt:
>> >>
>> >> https://ci.guix.gnu.org/build/1758844/details
>> >>
>> >> Log file for the latest build:
>> >>
>> >>
>> https://ci.guix.gnu.org/log/aq2rnrmjsgnyk8vmsm7aa3mgdj39dcwh-linux-libre-5.2.17.drv
>> >>
>> >> This seems to be the salient bit:
>> >>
>> >> CC [M]  arch/arm64/lib/xor-neon.o
>> >> In file included from
>> /gnu/store/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:34:0,
>> >>                  from
>> /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/include/stdint.h:37:0,
>> >>                  from
>> /gnu/store/yckkivhynk4hjcr0iry9vbcyc0lqqnxj-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/nr1aw4i32h7rmxwmq7d2da0mwcwg551j-glibc-2.29/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:1073: arch/arm64/lib] Error 2
>> >> make: *** Waiting for unfinished jobs....
>> >>
>> >> Not sure what's going on here.  Ideas?
>> >
>> > Ha, that looks familiar, the same issue happened back in July:
>> > https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00175.html
>> >
>> > I don't think we worked out what was the problem exactly though :-/
>>
>> So I was able to build it with this patch:
>>
>>
>> It's not very pretty though.  Thoughts?
>>
>
> I believe that we encountered similar CPATH related problems earlier, which
> were fixed by pathes like this, so it looks good to me. Maybe it would
> worth investigating the pattern though, and create some generic mechanism
> to deal with it. Wdyt?

I don't think we've had to remove libc from CPATH before.  We could do
that in gnu-build-system if it becomes a pattern.

A more general solution to the CPATH vs C_INCLUDE_PATH problem could be
to present GCC a union of all the inputs as C_INCLUDE_PATH, because I
suspect the main problem is having multiple entries in arbitrary order.
Not sure if that would help this particular issue though.

In any case I pushed the fix as
c5ceec4150f6a6cdc1b64781afa2d05547cf8542.  Thanks for the feedback!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-10-06 16:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-02 20:47 bug#37593: [core-updates] Linux-Libre fails to build on aarch64-linux Marius Bakke
2019-10-02 22:09 ` Pierre Langlois
2019-10-05 12:38   ` Marius Bakke
2019-10-05 16:01     ` Gábor Boskovits
2019-10-06 16:13       ` Marius Bakke

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