bug#36811: Guix fails to build with libgc 8.0.4

2020-03-12 Thread Jonathan Brielmaier






bug#36811: Guix fails to build with libgc 8.0.4

2020-03-12 Thread Jonathan Brielmaier
On 11.03.20 15:13, Ludovic Courtès wrote:> With Guile 3.0.1 + the patch for
> , the command above succeeds.
>
> Specifically:
>
>   guix pull --commit=e4b5bdf7993590fefeb7182ae71beec4a9f69e3f
>   guix build --with-input=libgc@7=libgc@8 guile3.0-guix
>
> Could you confirm that it works for you?

That's working for me. I built guix with guile 3.0.1 plus the patch from
#39266 and the crash when building guix with more then two threads went
away!

Thank you, Ludovic! Closing this bug now :)





bug#36811: Guix fails to build with libgc 8.0.4

2020-02-06 Thread Jonathan Brielmaier

On 06.02.20 15:07, Ludovic Courtès wrote:

Hi Jonathan,

As discussed yesterday on #guix, I tried this:

   guix build guile3.0-guix --with-input=libgc@7=libgc@8

as of Guix commit 9d0dfd9a9a7c43363a4e140c20d49f119fe6f2e3.  Guile 3.0.0
itself builds fine (test suite included), but the build of Guix crashes
like this (on x86_64-linux-gnu):

--8<---cut here---start->8---
[ 76%] GUILEC   gnu/packages/icu4c.go
[ 77%] GUILEC   gnu/packages/idris.go
[ 77%] GUILEC   gnu/packages/idutils.go
[ 77%] GUILEC   gnu/packages/image.go
[ 77%] GUILEC   gnu/packages/image-processing.go
[ 77%] GUILEC   gnu/packages/image-viewers.go
mmap(PROT_NONE) failed
/gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7/bin/bash: line 
7: 26886 Aborted XDG_CACH
E_HOME=/nowhere host=x86_64-unknown-linux-gnu srcdir="." ./pre-inst-env 
/gnu/store/dcsjagbjlhjj40g30lb88wx3zybmh07g-gui
le-next-3.0.0/bin/guile -L "." -L "." --no-auto-compile -s 
"."/build-aux/compile-all.scm guix/base16.scm guix/base32.sc
m guix/base64.scm guix/ci.scm guix/cpio.scm guix/deprecation.scm 
guix/docker.scm guix/json.scm guix/records.scm guix/pk
--8<---cut here---end--->8---


This is exactly the error I see on Tumbleweed and what this issue is
about :) This is good, so I guess it also has the same root somewhere in
guile<->libgc8.


Apparently the message and abort come from ‘GC_unmap’ or ‘GC_unmap_gap’
in libgc, but I have no idea what to think about it.  Could it be a heap
exhaustion issue or similar?  That’s not impossible.


Thanks for providing the reproducer!





bug#36811: Guix fails to build with libgc 8.0.4

2020-02-03 Thread Jonathan Brielmaier

Just for the record: Ludo added libgc-8 in
69961ac3b9db2dbb99abb5c45ff6be3a9c01b5de on master. It's not yet used,
so we need to replace libgc-7.6 with it and see how it goes...





bug#38890: 2.9.8 fails to build on 32bit (armv7l and i586)

2020-01-11 Thread Jonathan Brielmaier

The build failure was fixed in commit
74f46efc73012c508850749579cef927e895726b.

Build is now fine again on armv7l and i586.





bug#38890: 2.9.8 fails to build on 32bit (armv7l and i586)

2020-01-03 Thread Jonathan Brielmaier
While building guile 2.9.8 on openSUSE Tumbleweed, you get the same
build failure on armv7l and i586. So I assume it has something to do
with 32bit.

libtool: compile:  gcc -std=gnu11 -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1
-I.. -I.. -I../lib -I../lib -iquote. -I../libguile/lightening
-I/home/abuild/rpmbuild/BUILD/guile-2.9.8 -pthread -Wall
-Wmissing-prototypes -Wpointer-arith -fno-strict-aliasing -fwrapv
-fvisibility=hidden -fomit-frame-pointer -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fstack-clash-protection -Werror=return-type -flto=auto -c jit.c  -fPIC
-DPIC -o .libs/libguile_3.0_la-jit.o
jit.c: In function 'compile_s64_to_f64':
jit.c:5007:27: error: incompatible type for argument 3 of 'emit_sp_ref_s64'
5007 |   emit_sp_ref_s64 (j, T0, src);
 |   ^~~
 |   |
 |   uint16_t {aka short unsigned int}
jit.c:1082:64: note: expected 'jit_gpr_t' {aka 'struct jit_gpr'} but
argument is of type 'uint16_t' {aka 'short unsigned int'}
1082 | emit_sp_ref_s64 (scm_jit_state *j, jit_gpr_t dst_lo, jit_gpr_t
dst_hi,
 |   ~^~
jit.c:5007:3: error: too few arguments to function 'emit_sp_ref_s64'
5007 |   emit_sp_ref_s64 (j, T0, src);
 |   ^~~
jit.c:1082:1: note: declared here
1082 | emit_sp_ref_s64 (scm_jit_state *j, jit_gpr_t dst_lo, jit_gpr_t
dst_hi,
 | ^~~
At top level:
jit.c:1028:1: warning: 'sp_s32_operand' defined but not used
[-Wunused-function]
1028 | sp_s32_operand (scm_jit_state *j, uint32_t src)
 | ^~
jit.c:974:1: warning: 'sp_u64_operand' defined but not used
[-Wunused-function]
974 | sp_u64_operand (scm_jit_state *j, uint32_t slot)
| ^~





bug#36811: Guix fails to build with libgc 8.0.4

2019-11-20 Thread Jonathan Brielmaier

On 20.11.19 16:39, Ludovic Courtès wrote> I think so, yes.


Can you post your patch to the libgc package, though?  It’s weird that
Guile passed its test suite but then crashes when compiling Guix.


I already posted all I have in a previous mail:
https://issues.guix.gnu.org/issue/36811#3

For the openSUSE package I just build guile against libgc 7.6.4





bug#36811: Guix fails to build with libgc 8.0.4

2019-11-20 Thread Jonathan Brielmaier

On 20.11.19 15:09, Ludovic Courtès wrote:

Hi Jonathan,

Jonathan Brielmaier  skribis:


This failed with the same result:

/gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7/bin/bash:
line 7: 25584 Aborted (core dumped)
XDG_CACHE_HOME=/nowhere host=x86_64-unknown-linux-gnu srcdir="."
./pre-inst-env
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/bin/guile -L "."
-L "." --no-auto-compile -s "."/build-aux/compile-all.scm [*.scm]


So you built Guile (through Guix) against libgc 8.0.4, and then you
tried to use that Guile to build Guix, is that correct?


Yes, that's what I did. So the problem really is with Guile not
supporting libgc 8.0.4...





bug#36811: Guix fails to build with libgc 8.0.4

2019-11-19 Thread Jonathan Brielmaier

This failed with the same result:

/gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7/bin/bash:
line 7: 25584 Aborted (core dumped)
XDG_CACHE_HOME=/nowhere host=x86_64-unknown-linux-gnu srcdir="."
./pre-inst-env
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/bin/guile -L "."
-L "." --no-auto-compile -s "."/build-aux/compile-all.scm [*.scm]

Core was generated by
`/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/bin/guile -L .
-L . --n'.
Program terminated with signal SIGABRT, Aborted.
#0  0x778bd7fa in raise () from
/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/libc.so.6
[Current thread is 1 (LWP 25883)]
(gdb) bt
#0  0x778bd7fa in raise () from
/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/libc.so.6
#1  0x778be891 in abort () from
/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/libc.so.6
#2  0x77e404ee in GC_unmap () from
/gnu/store/ak1jbgi0pfrvyqkgl1y1k1gl4qadjiqv-libgc-8.0.4/lib/libgc.so.1
#3  0x77e405d1 in GC_unmap_old.part.30 ()
   from
/gnu/store/ak1jbgi0pfrvyqkgl1y1k1gl4qadjiqv-libgc-8.0.4/lib/libgc.so.1
#4  0x77e47882 in GC_finish_collection ()
   from
/gnu/store/ak1jbgi0pfrvyqkgl1y1k1gl4qadjiqv-libgc-8.0.4/lib/libgc.so.1
#5  0x77e47cf5 in GC_try_to_collect_inner ()
   from
/gnu/store/ak1jbgi0pfrvyqkgl1y1k1gl4qadjiqv-libgc-8.0.4/lib/libgc.so.1
#6  0x77e4b570 in GC_grow_table ()
   from
/gnu/store/ak1jbgi0pfrvyqkgl1y1k1gl4qadjiqv-libgc-8.0.4/lib/libgc.so.1
#7  0x77e4bc8a in GC_register_finalizer_inner ()
   from
/gnu/store/ak1jbgi0pfrvyqkgl1y1k1gl4qadjiqv-libgc-8.0.4/lib/libgc.so.1
#8  0x77ef55f1 in scm_i_set_finalizer ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#9  0x77f12b3e in scm_logior ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#10 0x77f66062 in vm_regular_engine ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#11 0x77f69fd7 in scm_call_n ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#12 0x77edd3b8 in scm_call_with_unblocked_asyncs ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#13 0x77f6779f in vm_regular_engine ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#14 0x77f69fd7 in scm_call_n ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#15 0x77f57726 in really_launch ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#16 0x77ee635a in c_body ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#17 0x77f6779f in vm_regular_engine ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#18 0x77f69fd7 in scm_call_n ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#19 0x77f58c12 in catch ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#20 0x77ee6940 in scm_i_with_continuation_barrier ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#21 0x77ee69d5 in scm_c_with_continuation_barrier ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#22 0x77f5784c in with_guile ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#23 0x77e3ec78 in GC_call_with_stack_base ()
   from
/gnu/store/ak1jbgi0pfrvyqkgl1y1k1gl4qadjiqv-libgc-8.0.4/lib/libgc.so.1
#24 0x77f56ebd in launch_thread ()
   from
/gnu/store/xrcl2csd0ps5n0zwj8r7knkxjnz4pfbh-guile-2.2.6/lib/libguile-2.2.so.1
#25 0x77e15015 in start_thread ()
   from
/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/libpthread.so.0
#26 0x7797b91f in clone () from
/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib/libc.so.6





bug#36811: Guix fails to build with libgc 8.0.4

2019-11-19 Thread Jonathan Brielmaier

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





bug#36812: Guix fails to build with libgc 8.0.4

2019-07-25 Thread Jonathan Brielmaier
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



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  0x7f313e9b5549 in __GI_abort () at abort.c:79
#2  0x7f313e5e95e1 in GC_unmap (start=, bytes=) at extra/../os_dep.c:2576
#3  GC_unmap (start=, bytes=) at extra/../os_dep.c:2535
#4  0x7f313e5fb3f9 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  0x7f313e5fba05 in GC_try_to_collect_inner (stop_func=0x7f313e5f26a0 )
at extra/../alloc.c:553
#8  GC_try_to_collect_inner (stop_func=stop_func@entry=0x7f313e5f26a0 ) at extra/../alloc.c:485
#9  0x7f313e5fe0b6 in GC_grow_table (table=table@entry=0x7f313e64c300 ,
log_size_ptr=log_size_ptr@entry=0x7f313e60a888 ,
entries_ptr=entries_ptr@entry=0x7f313e64c2f0 ) at extra/../finalize.c:133
#10 0x7f313e5fe4ba in GC_register_finalizer_inner (obj=0x7f312dba27a0, fn=0x7f313e8ff380 ,
cd=0x0, ofn=0x7f3126d785e0, ocd=0x7f3126d785d8, mp=0x7f313e5f2690 )
at extra/../finalize.c:703
#11 0x7f313e5fea9c in GC_register_finalizer_no_order (obj=, fn=,
cd=, ofn=, ocd=) at extra/../finalize.c:844
#12 0x7f313e91a683 in scm_i_set_finalizer (obj=, proc=, data=)
at finalizers.c:53
#13 0x7f313e8fd30e in make_bignum () at numbers.c:265
#14 scm_i_mkbig () at numbers.c:275
#15 scm_logior (n1=, n2=0x7f312dba2840) at numbers.c:4439
#16 0x7f313e8ba25f in vm_regular_engine (thread=0x2, vp=0x7f312b1d0e10, registers=0x0, resume=1050459601)
at vm-engine.c:2575
#17 0x7f313e8ab660 in scm_call_n (proc=, argv=, nargs=0) at vm.c:1260
#18 0x7f313e93874e in scm_call_with_unblocked_asyncs (proc=0x7f3135cd3f20) at async.c:400
#19 0x7f313e8b637f in vm_regular_engine (thread=0x2, vp=0x7f312b1d0e10, registers=0x0, resume=1050459601)
at vm-engine.c:786
#20 0x7f313e8ab660 in scm_call_n (proc=, argv=, nargs=0) at vm.c:1260
#21 0x7f313e8bee56 in really_launch (d=0x7f3135cad9c0) at threads.c:794
#22 0x7f313e92c29a in c_body (d=0x7f3126d78e40) at continuations.c:422
--Type  for more, q to quit, c to continue without paging--
#23 0x7f313e8b637f in vm_regular_engine (thread=0x2, vp=0x7f312b1d0e10, registers=0x0, resume=1050459601)
at vm-engine.c:786
#24 0x7f313e8ab660 in scm_call_n (proc=, argv=, nargs=0) at vm.c:1260
#25 0x7f313e8bbaf3 in catch (tag=, thunk=0x7f3135cc3620, handler=0x7f3135cc3600,
pre_unwind_handler=0x7f3135cc3400) at throw.c:137
#26 0x7f313e931745 in scm_i_with_continuation_barrier (body=body@entry=0x7f313e92c290 ,
body_data=body_data@entry=0x7f3126d78e40, handler=handler@entry=0x7f313e931650 ,
handler_data=handler_data@entry=0x7f3126d78e40,
pre_unwind_handler=pre_unwind_handler@entry=0x7f313e931560 ,
pre_unwind_handler_data=0x7f313a50da20) at continuations.c:360
#27 0x7f313e931a55 in scm_c_with_continuation_barrier (func=, data=)
at continuations.c:456
#28 0x7f313e8bf156 in with_guile (base=0x7f3126d78ea0, data=0x7f3126d78ed0) at threads.c:661
#29 0x7f313e5eedc7 in GC_call_with_stack_base (fn=fn@entry=0x7f313e8bf080 ,
arg=arg@entry=0x7f3126d78ed0) at extra/../misc.c:2106
#30 0x7f313e8bc2dd in scm_i_with_guile (dynamic_state=, data=0x7f3135cad9c0,
func=0x7f313e8bede0 ) at threads.c:704
#31 launch_thread (d=0x7f3135cad9c0) at threads.c:803
#32 0x7f313e212faa in start_thread (arg=) at pthread_create.c:486
#33 0x7f313ea8d73f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95