unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* master with threaded gc
@ 2009-09-21 15:44 Greg Troxel
  2009-09-21 15:51 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Greg Troxel @ 2009-09-21 15:44 UTC (permalink / raw)
  To: guile-devel

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


After installing boehm-gc threaded, the build succeeds on NetBSD/amd64 5.0ish!!

make check makes a lot of progress, but the hits a segfault.  This may
be a BSD libc problem.

Making check in lib
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/lib'
gmake  check-recursive
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/lib'
gmake[3]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/lib'
gmake[3]: Nothing to be done for `check-am'.
gmake[3]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/lib'
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/lib'
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/lib'
Making check in meta
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/meta'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/meta'
Making check in libguile
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/libguile'
gmake  check-am
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/libguile'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/libguile'
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/libguile'
Making check in guile-readline
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/guile-readline'
gmake  check-am
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/guile-readline'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/guile-readline'
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/guile-readline'
Making check in emacs
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/emacs'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/emacs'
Making check in srfi
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/srfi'
gmake  check-am
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/srfi'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/srfi'
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/srfi'
Making check in doc
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/doc'
Making check in ref
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/doc/ref'
gmake  check-am
gmake[3]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/doc/ref'
gmake[3]: Nothing to be done for `check-am'.
gmake[3]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/doc/ref'
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/doc/ref'
Making check in tutorial
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/doc/tutorial'
gmake[2]: Nothing to be done for `check'.
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/doc/tutorial'
Making check in r5rs
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/doc/r5rs'
gmake[2]: Nothing to be done for `check'.
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/doc/r5rs'
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/doc'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/doc'
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/doc'
Making check in examples
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/examples'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/examples'
Making check in test-suite
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/test-suite'
Making check in standalone
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
gmake  check-am
gmake[3]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
gmake  test-num2integral test-round test-list test-unwind test-conversion test-scm-c-read test-scm-take-locale-symbol test-scm-take-u8vector test-with-guile-module test-scm-with-guile test-system-cmds test-bad-identifiers test-require-extension test-asmobs test-fast-slot-ref test-use-srfi test-extensions
gmake[4]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
gmake[4]: `test-num2integral' is up to date.
gmake[4]: `test-round' is up to date.
gmake[4]: `test-list' is up to date.
gmake[4]: `test-unwind' is up to date.
gmake[4]: `test-conversion' is up to date.
gmake[4]: `test-scm-c-read' is up to date.
gmake[4]: `test-scm-take-locale-symbol' is up to date.
gmake[4]: `test-scm-take-u8vector' is up to date.
gmake[4]: `test-with-guile-module' is up to date.
gmake[4]: `test-scm-with-guile' is up to date.
gmake[4]: Nothing to be done for `test-system-cmds'.
gmake[4]: Nothing to be done for `test-bad-identifiers'.
gmake[4]: Nothing to be done for `test-require-extension'.
gmake[4]: Nothing to be done for `test-asmobs'.
gmake[4]: `test-fast-slot-ref' is up to date.
gmake[4]: `test-use-srfi' is up to date.
gmake[4]: Nothing to be done for `test-extensions'.
gmake[4]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
gmake  check-TESTS
gmake[4]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
PASS: test-system-cmds
PASS: test-bad-identifiers
PASS: test-require-extension
PASS: test-num2integral
PASS: test-round
PASS: test-asmobs
PASS: test-list
PASS: test-unwind
PASS: test-conversion
PASS: test-fast-slot-ref
PASS: test-use-srfi
PASS: test-scm-c-read
PASS: test-scm-take-locale-symbol
PASS: test-scm-take-u8vector
PASS: test-extensions
PASS: test-with-guile-module
PASS: test-scm-with-guile
===================
All 17 tests passed
===================
gmake[4]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
gmake[3]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/test-suite/standalone'
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/test-suite'
gmake[2]: Nothing to be done for `check-am'.
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/test-suite'
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/test-suite'
Making check in benchmark-suite
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/benchmark-suite'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/benchmark-suite'
Making check in lang
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/lang'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/lang'
Making check in am
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/am'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/am'
Making check in module
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/module'
gmake[1]: Nothing to be done for `check'.
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/module'
Making check in testsuite
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/testsuite'
gmake  check-TESTS
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile/testsuite'
running `./t-basic-contructs.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-basic-contructs.scm
running `./t-global-bindings.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-global-bindings.scm
running `./t-catch.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-catch.scm
running `./t-call-cc.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-call-cc.scm
running `./t-closure.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-closure.scm
running `./t-closure2.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-closure2.scm
running `./t-closure3.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-closure3.scm
running `./t-closure4.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-closure4.scm
running `./t-do-loop.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-do-loop.scm
running `./t-literal-integers.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-literal-integers.scm
running `./t-macros.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-macros.scm
running `./t-macros2.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-macros2.scm
running `./t-map.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-map.scm
running `./t-or.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-or.scm
running `./t-proc-with-setter.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-proc-with-setter.scm
running `./t-quasiquote.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-quasiquote.scm
running `./t-values.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-values.scm
running `./t-records.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-records.scm
running `./t-match.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-match.scm
running `./t-mutual-toplevel-defines.scm'...  reading...  compiling...  running...  reading...  ok
PASS: t-mutual-toplevel-defines.scm
===================
All 20 tests passed
===================
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/testsuite'
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile/testsuite'
gmake[1]: Entering directory `/home/gdt/BUILD-GUILE-master/guile'
gmake  check-TESTS
gmake[2]: Entering directory `/home/gdt/BUILD-GUILE-master/guile'
Testing /home/gdt/BUILD-GUILE-master/guile/meta/guile ...
with GUILE_LOAD_PATH=/home/gdt/BUILD-GUILE-master/guile/test-suite
Memory fault (core dumped) 
FAIL: check-guile
==================================
1 of 1 test failed
Please report to bug-guile@gnu.org
==================================
gmake[2]: *** [check-TESTS] Error 1
gmake[2]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile'
gmake[1]: *** [check-am] Error 2
gmake[1]: Leaving directory `/home/gdt/BUILD-GUILE-master/guile'
gmake: *** [check-recursive] Error 1

Core was generated by `guile'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f7ffd6cac90 in strcmp () from /usr/lib/libc.so.12
(gdb) bt
#0  0x00007f7ffd6cac90 in strcmp () from /usr/lib/libc.so.12
#1  0x00007f7ffd65f23e in _citrus_iconv_open () from /usr/lib/libc.so.12
#2  0x00007f7ffd64dc6f in iconv_open () from /usr/lib/libc.so.12
#3  0x00007f7ffdbd075f in rpl_iconv_open (tocode=0x7f7ffdbd4a2b "UTF-8", fromcode=0x7f7ffdbded05 "ISO-8859-1") at iconv_open.c:111
#4  0x00007f7ffdbcf22f in mem_iconveh (src=0x6a3530 " - arguments: ", srclen=14, from_codeset=0x7f7ffdbded05 "ISO-8859-1", to_codeset=0x7f7ffc4290ec "646", 
    handler=iconveh_escape_sequence, offsets=0x0, resultp=0x7f7fffffb500, lengthp=0x7f7fffffb4f8) at striconveh.c:1018
#5  0x00007f7ffdba8f35 in scm_to_stringn (str=0x6e4720, lenp=0x7f7fffffb550, encoding=<value optimized out>, handler=SCM_FAILED_CONVERSION_ESCAPE_SEQUENCE)
    at strings.c:1654
#6  0x00007f7ffdb80605 in scm_lfwrite_str (str=0x6e4720, port=0x5bcba0) at ports.c:1276
#7  0x00007f7ffdb848fc in iprin1 (exp=0xfffffffffffffff8, port=0x5bcba0, pstate=0xdd6770) at print.c:723
#8  0x00007f7ffdb84f18 in scm_prin1 (exp=0x6e4720, port=0x5bcba0, writingp=0) at print.c:890
#9  0x00007f7ffdb853a6 in scm_display (obj=0x6e4720, port=0x5bcba0) at print.c:1099
#10 0x00007f7ffdb528aa in ceval (x=<value optimized out>, env=0x1de68f0) at eval.i.c:1357
#11 0x00007f7ffdb51cc4 in ceval (x=<value optimized out>, env=0x1de68f0) at eval.i.c:359
#12 0x00007f7ffdb51cc4 in ceval (x=<value optimized out>, env=0x1de68f0) at eval.i.c:359
#13 0x00007f7ffdbba17d in vm_debug_engine (vp=0x5cdf00, program=0x559340, argv=0x5bcba0, nargs=<value optimized out>) at vm-i-system.c:605
#14 0x00007f7ffdbb2065 in scm_vm_apply (vm=0x5ca760, program=0x559340, args=0x404) at vm.c:406
#15 0x00007f7ffdb528f3 in ceval (x=<value optimized out>, env=0x1de6a40) at eval.i.c:1577


[-- Attachment #2: Type: application/pgp-signature, Size: 193 bytes --]

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

* Re: master with threaded gc
  2009-09-21 15:44 master with threaded gc Greg Troxel
@ 2009-09-21 15:51 ` Ludovic Courtès
  2009-09-21 17:21   ` Mike Gran
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2009-09-21 15:51 UTC (permalink / raw)
  To: guile-devel

Hi,

Greg Troxel <gdt@ir.bbn.com> writes:

> After installing boehm-gc threaded, the build succeeds on NetBSD/amd64 5.0ish!!

Nice!

> make check makes a lot of progress, but the hits a segfault.  This may
> be a BSD libc problem.

[...]

> Program terminated with signal 11, Segmentation fault.
> #0  0x00007f7ffd6cac90 in strcmp () from /usr/lib/libc.so.12
> (gdb) bt
> #0  0x00007f7ffd6cac90 in strcmp () from /usr/lib/libc.so.12
> #1  0x00007f7ffd65f23e in _citrus_iconv_open () from /usr/lib/libc.so.12
> #2  0x00007f7ffd64dc6f in iconv_open () from /usr/lib/libc.so.12
> #3  0x00007f7ffdbd075f in rpl_iconv_open (tocode=0x7f7ffdbd4a2b "UTF-8", fromcode=0x7f7ffdbded05 "ISO-8859-1") at iconv_open.c:111
> #4  0x00007f7ffdbcf22f in mem_iconveh (src=0x6a3530 " - arguments: ", srclen=14, from_codeset=0x7f7ffdbded05 "ISO-8859-1", to_codeset=0x7f7ffc4290ec "646", 

Does it help to use GNU libiconv instead of NetBSD’s libc for iconv(3)?

Does libunistring’s ‘configure’ complain about the lack of libiconv?

Thanks,
Ludo’.





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

* Re: master with threaded gc
  2009-09-21 15:51 ` Ludovic Courtès
@ 2009-09-21 17:21   ` Mike Gran
  2009-09-22  2:14     ` Ken Raeburn
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Gran @ 2009-09-21 17:21 UTC (permalink / raw)
  To: Ludovic Courtès, guile-devel

> From: Ludovic Courtès <ludo@gnu.org>
>> Greg Troxel writes:
> 
[...]
> 
> > Program terminated with signal 11, Segmentation fault.
> > #0  0x00007f7ffd6cac90 in strcmp () from /usr/lib/libc.so.12
> > (gdb) bt
> > #0  0x00007f7ffd6cac90 in strcmp () from /usr/lib/libc.so.12
> > #1  0x00007f7ffd65f23e in _citrus_iconv_open () from /usr/lib/libc.so.12
> > #2  0x00007f7ffd64dc6f in iconv_open () from /usr/lib/libc.so.12
> > #3  0x00007f7ffdbd075f in rpl_iconv_open (tocode=0x7f7ffdbd4a2b "UTF-8", 
> fromcode=0x7f7ffdbded05 "ISO-8859-1") at iconv_open.c:111
> > #4  0x00007f7ffdbcf22f in mem_iconveh (src=0x6a3530 " - arguments: ", 
> srclen=14, from_codeset=0x7f7ffdbded05 "ISO-8859-1", to_codeset=0x7f7ffc4290ec 
> "646", 
> 
> Does it help to use GNU libiconv instead of NetBSD’s libc for iconv(3)?
> 
> Does libunistring’s ‘configure’ complain about the lack of libiconv?

FWIW, rpl_iconv_open() is the gnulib wrapper to iconv_open.  It is
supposed to try various alternative names for codesets until it finds
one that works with the underlying system iconv_open.  But the line it 
crashes at (iconv_open.c:111) is just an ordinary call to iconv_open, 
so the strcmp segfault is unexpected.

It could be that the tocode string "UTF-8" is being GC'd before 
it is tested because the port is GC'd, but that seems unlikely.

There is another curious thing, which may be unrelated

>> #6  0x00007f7ffdb80605 in scm_lfwrite_str (str=0x6e4720, port=0x5bcba0) at ports.c:1276
>> #7  0x00007f7ffdb848fc in iprin1 (exp=0xfffffffffffffff8, port=0x5bcba0, pstate=0xdd6770) at print.c:723
>> #8  0x00007f7ffdb84f18 in scm_prin1 (exp=0x6e4720, port=0x5bcba0, writingp=0) at print.c:890

In the above, 'exp' is an SCM string that is being passed down from func to 
func.  It is weird that its address jumps from 0x6e4720 to 
0xfffffffffffffff8 then back to 0x6e4720.  That shouldn't happen.

-Mike





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

* Re: master with threaded gc
  2009-09-21 17:21   ` Mike Gran
@ 2009-09-22  2:14     ` Ken Raeburn
  2009-09-22 14:36       ` Greg Troxel
  0 siblings, 1 reply; 5+ messages in thread
From: Ken Raeburn @ 2009-09-22  2:14 UTC (permalink / raw)
  To: Mike Gran; +Cc: Ludovic Courtès, guile-devel

On Sep 21, 2009, at 13:21, Mike Gran wrote:
> There is another curious thing, which may be unrelated
>
>>> #6  0x00007f7ffdb80605 in scm_lfwrite_str (str=0x6e4720,  
>>> port=0x5bcba0) at ports.c:1276
>>> #7  0x00007f7ffdb848fc in iprin1 (exp=0xfffffffffffffff8,  
>>> port=0x5bcba0, pstate=0xdd6770) at print.c:723
>>> #8  0x00007f7ffdb84f18 in scm_prin1 (exp=0x6e4720, port=0x5bcba0,  
>>> writingp=0) at print.c:890
>
> In the above, 'exp' is an SCM string that is being passed down from  
> func to
> func.  It is weird that its address jumps from 0x6e4720 to
> 0xfffffffffffffff8 then back to 0x6e4720.  That shouldn't happen.

That happens sometimes during optimization, especially if you've got  
an ABI where arguments are passed in registers -- or if, like on 32- 
bit x86 and I'd guess probably 64-bit, the compiler optimizes calls to  
certain static functions by altering the ABI and passing arguments in  
registers -- and the value is no longer needed locally so the incoming  
argument register can be reused.

I've seen some cases where GDB can tell you that an argument's value  
is unavailable because of optimization, but I don't know what  
combination of GCC version, GDB version, and debug info format might  
be needed to get that sort of info.

Compiling without optimization, or making the function non-static, may  
make debugging work better.

Ken




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

* Re: master with threaded gc
  2009-09-22  2:14     ` Ken Raeburn
@ 2009-09-22 14:36       ` Greg Troxel
  0 siblings, 0 replies; 5+ messages in thread
From: Greg Troxel @ 2009-09-22 14:36 UTC (permalink / raw)
  To: Ken Raeburn; +Cc: Ludovic Courtès, guile-devel

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


Thanks for all the replies.  I'm not sure when I'll have a chance to
look at this again, but master is building better on netbsd than it has
in a long time!


[-- Attachment #2: Type: application/pgp-signature, Size: 193 bytes --]

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

end of thread, other threads:[~2009-09-22 14:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-21 15:44 master with threaded gc Greg Troxel
2009-09-21 15:51 ` Ludovic Courtès
2009-09-21 17:21   ` Mike Gran
2009-09-22  2:14     ` Ken Raeburn
2009-09-22 14:36       ` Greg Troxel

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