unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#36811: Guix fails to build with libgc 8.0.4
@ 2019-07-25 18:26 Jonathan Brielmaier
  2019-11-18 14:13 ` Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Brielmaier @ 2019-07-25 18:26 UTC (permalink / raw)
  To: 36811, bug-guix

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

Some days ago Guix failed to build on openSUSE Tumbleweed. Today I
started to investigate it.

Guix fails to build on Tumbleweed with `make -j4` or a greater thread
count (see guile_coredump_building_guix.log)

It doesn't fail to build with `make -j3` or less threads and when
building inside of `guix environment --pure guix`.

I then started to look around what could differ between Tumbleweed and
guix environment. My first assumption was kind of hit :)

Tumbleweed is built since some days with libgc 8.0.4 and Guix is still
on 7.6.6. In my home project[0] I have built now Guix (and Guile) with
libgc 7.6.4, the version Tumbleweed used before. Guix builds now with
`make -j4` and greater again on Tumbleweed...

So it seems that guile is not compatible with libgc 8.x yet? Is this
correct?

I wanted to update libgc in guix but it has 5k dependencies, so I did not :P

Any Ideas how to fix this? Do you need any further information from me?

Cheers Jonathan

[0] https://build.opensuse.org/project/show/home:jbrielmaier:guix




[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: guile_coredump_building_guix.log --]
[-- Type: text/x-log; name="guile_coredump_building_guix.log", Size: 4427 bytes --]

Core was generated by `/usr/bin/guile -L . -L . --no-auto-compile -s ./build-aux/compile-all.scm guix/'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	  return ret;
[Current thread is 1 (Thread 0x7f3126d79700 (LWP 3968))]
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f313e9b5549 in __GI_abort () at abort.c:79
#2  0x00007f313e5e95e1 in GC_unmap (start=<optimized out>, bytes=<optimized out>) at extra/../os_dep.c:2576
#3  GC_unmap (start=<optimized out>, bytes=<optimized out>) at extra/../os_dep.c:2535
#4  0x00007f313e5fb3f9 in GC_unmap_old () at extra/../allchblk.c:419
#5  GC_unmap_old () at extra/../allchblk.c:400
#6  GC_finish_collection () at extra/../alloc.c:1115
#7  0x00007f313e5fba05 in GC_try_to_collect_inner (stop_func=0x7f313e5f26a0 <GC_never_stop_func>)
    at extra/../alloc.c:553
#8  GC_try_to_collect_inner (stop_func=stop_func@entry=0x7f313e5f26a0 <GC_never_stop_func>) at extra/../alloc.c:485
#9  0x00007f313e5fe0b6 in GC_grow_table (table=table@entry=0x7f313e64c300 <GC_fnlz_roots>,
    log_size_ptr=log_size_ptr@entry=0x7f313e60a888 <log_fo_table_size>,
    entries_ptr=entries_ptr@entry=0x7f313e64c2f0 <GC_fo_entries>) at extra/../finalize.c:133
#10 0x00007f313e5fe4ba in GC_register_finalizer_inner (obj=0x7f312dba27a0, fn=0x7f313e8ff380 <finalize_bignum>,
    cd=0x0, ofn=0x7f3126d785e0, ocd=0x7f3126d785d8, mp=0x7f313e5f2690 <GC_null_finalize_mark_proc>)
    at extra/../finalize.c:703
#11 0x00007f313e5fea9c in GC_register_finalizer_no_order (obj=<optimized out>, fn=<optimized out>,
    cd=<optimized out>, ofn=<optimized out>, ocd=<optimized out>) at extra/../finalize.c:844
#12 0x00007f313e91a683 in scm_i_set_finalizer (obj=<optimized out>, proc=<optimized out>, data=<optimized out>)
    at finalizers.c:53
#13 0x00007f313e8fd30e in make_bignum () at numbers.c:265
#14 scm_i_mkbig () at numbers.c:275
#15 scm_logior (n1=<optimized out>, n2=0x7f312dba2840) at numbers.c:4439
#16 0x00007f313e8ba25f in vm_regular_engine (thread=0x2, vp=0x7f312b1d0e10, registers=0x0, resume=1050459601)
    at vm-engine.c:2575
#17 0x00007f313e8ab660 in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=0) at vm.c:1260
#18 0x00007f313e93874e in scm_call_with_unblocked_asyncs (proc=0x7f3135cd3f20) at async.c:400
#19 0x00007f313e8b637f in vm_regular_engine (thread=0x2, vp=0x7f312b1d0e10, registers=0x0, resume=1050459601)
    at vm-engine.c:786
#20 0x00007f313e8ab660 in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=0) at vm.c:1260
#21 0x00007f313e8bee56 in really_launch (d=0x7f3135cad9c0) at threads.c:794
#22 0x00007f313e92c29a in c_body (d=0x7f3126d78e40) at continuations.c:422
--Type <RET> for more, q to quit, c to continue without paging--
#23 0x00007f313e8b637f in vm_regular_engine (thread=0x2, vp=0x7f312b1d0e10, registers=0x0, resume=1050459601)
    at vm-engine.c:786
#24 0x00007f313e8ab660 in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=0) at vm.c:1260
#25 0x00007f313e8bbaf3 in catch (tag=<optimized out>, thunk=0x7f3135cc3620, handler=0x7f3135cc3600,
    pre_unwind_handler=0x7f3135cc3400) at throw.c:137
#26 0x00007f313e931745 in scm_i_with_continuation_barrier (body=body@entry=0x7f313e92c290 <c_body>,
    body_data=body_data@entry=0x7f3126d78e40, handler=handler@entry=0x7f313e931650 <c_handler>,
    handler_data=handler_data@entry=0x7f3126d78e40,
    pre_unwind_handler=pre_unwind_handler@entry=0x7f313e931560 <pre_unwind_handler>,
    pre_unwind_handler_data=0x7f313a50da20) at continuations.c:360
#27 0x00007f313e931a55 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>)
    at continuations.c:456
#28 0x00007f313e8bf156 in with_guile (base=0x7f3126d78ea0, data=0x7f3126d78ed0) at threads.c:661
#29 0x00007f313e5eedc7 in GC_call_with_stack_base (fn=fn@entry=0x7f313e8bf080 <with_guile>,
    arg=arg@entry=0x7f3126d78ed0) at extra/../misc.c:2106
#30 0x00007f313e8bc2dd in scm_i_with_guile (dynamic_state=<optimized out>, data=0x7f3135cad9c0,
    func=0x7f313e8bede0 <really_launch>) at threads.c:704
#31 launch_thread (d=0x7f3135cad9c0) at threads.c:803
#32 0x00007f313e212faa in start_thread (arg=<optimized out>) at pthread_create.c:486
#33 0x00007f313ea8d73f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95


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

* bug#36811: Guix fails to build with libgc 8.0.4
  2019-07-25 18:26 bug#36811: Guix fails to build with libgc 8.0.4 Jonathan Brielmaier
@ 2019-11-18 14:13 ` Ludovic Courtès
  2019-11-19 12:09   ` Jonathan Brielmaier
  0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2019-11-18 14:13 UTC (permalink / raw)
  To: Jonathan Brielmaier; +Cc: 36811, bug-guix

Hi Jonathan,

Jonathan Brielmaier <jonathan.brielmaier@web.de> skribis:

> Guix fails to build on Tumbleweed with `make -j4` or a greater thread
> count (see guile_coredump_building_guix.log)
>
> It doesn't fail to build with `make -j3` or less threads and when
> building inside of `guix environment --pure guix`.
>
> I then started to look around what could differ between Tumbleweed and
> guix environment. My first assumption was kind of hit :)
>
> Tumbleweed is built since some days with libgc 8.0.4 and Guix is still
> on 7.6.6. In my home project[0] I have built now Guix (and Guile) with
> libgc 7.6.4, the version Tumbleweed used before. Guix builds now with
> `make -j4` and greater again on Tumbleweed...
>
> So it seems that guile is not compatible with libgc 8.x yet? Is this
> correct?

To isolate the problem, how about:

  1. Defining a Guix package for libgc 8.0.4;

  2. Running “guix build guile --with-input=libgc@7=libgc@8” (or
     defining a package along these lines).

?

Thanks in advance,
Ludo’.

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

* bug#36811: Guix fails to build with libgc 8.0.4
  2019-11-18 14:13 ` Ludovic Courtès
@ 2019-11-19 12:09   ` Jonathan Brielmaier
  0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Brielmaier @ 2019-11-19 12:09 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 36811, bug-guix

On 18.11.19 15:13, Ludovic Courtès wrote:
> To isolate the problem, how about:
>
>    1. Defining a Guix package for libgc 8.0.4;
>
>    2. Running “guix build guile --with-input=libgc@7=libgc@8” (or
>       defining a package along these lines).

I did this and the build was fine as I expected. Guile builds fine
against libgc-8. But building Guix with a guile-libgc8 goes wrong.

I got now this little patch and try to build guix with:
./pre-inst-env guix build guix -K

```
diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index 7196ffcd32..172833780f 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -91,6 +91,19 @@ C or C++ programs, though that is not its primary goal.")

     (license (x11-style (string-append home-page "license.txt")))))

+(define-public libgc-8
+  (package
+    (inherit libgc)
+    (version "8.0.4")
+    (name "libgc")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/ivmai/bdwgc/releases"
+                                "/download/v" version "/gc-" version
".tar.gz"))
+            (sha256
+             (base32
+              "1798rp3mcfkgs38ynkbg2p47bq59pisrc6mn0l20pb5iczf0ssj3"))))))
+
  (define-public libgc/back-pointers
    (package
      (inherit libgc)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 4419c48d1a..bc69488fa2 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -250,6 +250,14 @@ without requiring the source code to be rewritten.")
              (variable "GUILE_LOAD_COMPILED_PATH")
              (files '("lib/guile/2.2/site-ccache")))))))

+(define-public guile-2.2-libgc8
+  (package
+    (inherit guile-2.2)
+    (propagated-inputs
+     `(("libgc" ,libgc-8)
+       ,@(srfi-1:alist-delete "bdw-gc"
+                      (package-propagated-inputs guile-2.2))))))
+
  (define-public guile-2.2/fixed
    ;; A package of Guile 2.2 that's rarely changed.  It is the one used
    ;; in the `base' module, and thus changing it entails a full rebuild.
diff --git a/gnu/packages/package-management.scm
b/gnu/packages/package-management.scm
index 1daab4e879..d80e71749d 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -285,7 +285,7 @@
           ("sqlite" ,sqlite)
           ("libgcrypt" ,libgcrypt)

-         ("guile" ,guile-2.2)
+         ("guile" ,guile-2.2-libgc8)

           ;; Some of the tests use "unshare" when it is available.
           ("util-linux" ,util-linux)
```

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

end of thread, other threads:[~2019-11-19 12:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-25 18:26 bug#36811: Guix fails to build with libgc 8.0.4 Jonathan Brielmaier
2019-11-18 14:13 ` Ludovic Courtès
2019-11-19 12:09   ` Jonathan Brielmaier

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