unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* ARM compilation via qemu binfmt - Assertion failure
       [not found]   ` <87k1vqv23v.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me>
@ 2018-02-08 16:42     ` Danny Milosavljevic
  2018-02-10 23:45       ` Chris Marusich
  2018-02-16 10:35       ` bug#30394: " Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Danny Milosavljevic @ 2018-02-08 16:42 UTC (permalink / raw)
  To: ng0, guix-devel, bug-guix

Hi ng0,

On Tue, 06 Feb 2018 10:33:56 +0000
ng0@n0.is wrote:

> recently I've read about slow but native compiling of ARM on qemu.

Unfortunately, there's a (pretty reproducible) problem with it.

guix-master/guix $ ./pre-inst-env guix system disk-image --system=armhf-linux -e "(@ (gnu system install) installation-os)"
[... building grub-2.02 ...]
phase `configure' succeeded after 821.8 seconds
starting phase `patch-generated-file-shebangs'
patch-makefile-SHELL: ./po/Makefile: changing `SHELL' from `/bin/sh' to `/gnu/st[...]
phase `patch-generated-file-shebangs' succeeded after 14.6 seconds
starting phase `build'
bison -d -p grub_script_yy -b grub_script ./grub-core/script/parser.y
flex -o grub_script.yy.c --header-file=grub_script.yy.h ./grub-core/script/yylex[...]
bison: ../sysdeps/unix/sysv/linux/spawni.c:360: __spawnix: Assertion `ec >= 0' failed

This is only fixed in glibc 2.27 (not in core-updates).

The fix is:

https://sourceware.org/bugzilla/show_bug.cgi?id=22273
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index dea1650..f02ac19 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -365,9 +365,15 @@ __spawnix (pid_t * pid, const char *file,
   if (new_pid > 0)
     {
       ec = args.err;
-      assert (ec >= 0);
       if (ec != 0)
-         __waitpid (new_pid, NULL, 0);
+       {
+         /* It handles the unlikely case where the auxiliary vfork process
+            is killed before calling _exit or execve.  */
+         int status;
+         __waitpid (new_pid, &status, 0);
+         if (WIFSIGNALED (status))
+           ec = 0;
+       }
     }
   else
     ec = -new_pid;

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

* Re: ARM compilation via qemu binfmt - Assertion failure
  2018-02-08 16:42     ` ARM compilation via qemu binfmt - Assertion failure Danny Milosavljevic
@ 2018-02-10 23:45       ` Chris Marusich
  2018-02-11  1:07         ` bug#30394: " Leo Famulari
  2018-02-11  9:53         ` Pjotr Prins
  2018-02-16 10:35       ` bug#30394: " Ludovic Courtès
  1 sibling, 2 replies; 5+ messages in thread
From: Chris Marusich @ 2018-02-10 23:45 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel, bug-guix, ng0

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

Danny Milosavljevic <dannym@scratchpost.org> writes:

> This is only fixed in glibc 2.27 (not in core-updates).

Should we upgrade glibc in core-updates, then?  Or is it better to do it
in the next core-updates cycle, to avoid still more unexpected breakage?

-- 
Chris

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

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

* bug#30394: ARM compilation via qemu binfmt - Assertion failure
  2018-02-10 23:45       ` Chris Marusich
@ 2018-02-11  1:07         ` Leo Famulari
  2018-02-11  9:53         ` Pjotr Prins
  1 sibling, 0 replies; 5+ messages in thread
From: Leo Famulari @ 2018-02-11  1:07 UTC (permalink / raw)
  To: Chris Marusich; +Cc: guix-devel, 30394, ng0

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

On Sun, Feb 11, 2018 at 12:45:18AM +0100, Chris Marusich wrote:
> Danny Milosavljevic <dannym@scratchpost.org> writes:
> 
> > This is only fixed in glibc 2.27 (not in core-updates).
> 
> Should we upgrade glibc in core-updates, then?  Or is it better to do it
> in the next core-updates cycle, to avoid still more unexpected breakage?

It's too late in this cycle. Upgrading glibc would require a full
rebuild and would introduce new failures.

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

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

* Re: ARM compilation via qemu binfmt - Assertion failure
  2018-02-10 23:45       ` Chris Marusich
  2018-02-11  1:07         ` bug#30394: " Leo Famulari
@ 2018-02-11  9:53         ` Pjotr Prins
  1 sibling, 0 replies; 5+ messages in thread
From: Pjotr Prins @ 2018-02-11  9:53 UTC (permalink / raw)
  To: Chris Marusich; +Cc: guix-devel, bug-guix, ng0

On Sun, Feb 11, 2018 at 12:45:18AM +0100, Chris Marusich wrote:
> Danny Milosavljevic <dannym@scratchpost.org> writes:
> 
> > This is only fixed in glibc 2.27 (not in core-updates).
> 
> Should we upgrade glibc in core-updates, then?  Or is it better to do it
> in the next core-updates cycle, to avoid still more unexpected breakage?

I think we should not update packages deep in the tree unless there is
a security patch. What we have now is well tested.

Pj.


-- 

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

* bug#30394: ARM compilation via qemu binfmt - Assertion failure
  2018-02-08 16:42     ` ARM compilation via qemu binfmt - Assertion failure Danny Milosavljevic
  2018-02-10 23:45       ` Chris Marusich
@ 2018-02-16 10:35       ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2018-02-16 10:35 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel, 30394, ng0

Hello,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> Unfortunately, there's a (pretty reproducible) problem with it.
>
> guix-master/guix $ ./pre-inst-env guix system disk-image --system=armhf-linux -e "(@ (gnu system install) installation-os)"
> [... building grub-2.02 ...]
> phase `configure' succeeded after 821.8 seconds
> starting phase `patch-generated-file-shebangs'
> patch-makefile-SHELL: ./po/Makefile: changing `SHELL' from `/bin/sh' to `/gnu/st[...]
> phase `patch-generated-file-shebangs' succeeded after 14.6 seconds
> starting phase `build'
> bison -d -p grub_script_yy -b grub_script ./grub-core/script/parser.y
> flex -o grub_script.yy.c --header-file=grub_script.yy.h ./grub-core/script/yylex[...]
> bison: ../sysdeps/unix/sysv/linux/spawni.c:360: __spawnix: Assertion `ec >= 0' failed

[...]

> https://sourceware.org/bugzilla/show_bug.cgi?id=22273
> diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
> index dea1650..f02ac19 100644
> --- a/sysdeps/unix/sysv/linux/spawni.c
> +++ b/sysdeps/unix/sysv/linux/spawni.c
> @@ -365,9 +365,15 @@ __spawnix (pid_t * pid, const char *file,
>    if (new_pid > 0)
>      {
>        ec = args.err;
> -      assert (ec >= 0);
>        if (ec != 0)

Note that this is only a problem for code that uses the ‘posix_spawn’
interface, such as Bison in the example above.

In practice that interface is rarely used, which is probably why I never
hit that assertion before.

Ludo’.

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

end of thread, other threads:[~2018-02-16 10:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <87bmh4qrf5.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me>
     [not found] ` <87bmh3kbd9.fsf@gnu.org>
     [not found]   ` <87k1vqv23v.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me>
2018-02-08 16:42     ` ARM compilation via qemu binfmt - Assertion failure Danny Milosavljevic
2018-02-10 23:45       ` Chris Marusich
2018-02-11  1:07         ` bug#30394: " Leo Famulari
2018-02-11  9:53         ` Pjotr Prins
2018-02-16 10:35       ` bug#30394: " Ludovic Courtès

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