I'm running into trouble with guile 2.0.11 on netbsd-6 i386, which looks like a libgc bug, maybe. I am curious if others are using libgc and if they think it's ok.
--- Begin Message ---
- To: Mark H Weaver <mhw%netris.org@localhost>
- Subject: Re: boehm-gc troubles with 2.0.10 on NetBSD/i386
- From: Greg Troxel <gdt%ir.bbn.com@localhost>
- Date: Fri, 11 Apr 2014 14:14:39 -0400
Mark H Weaver <mhw%netris.org@localhost> writes: > As documented in our README and the output of ./configure --help, > "--without-threads" is the option you should be using. To be honest, > I'm not sure what "--disable-threads" will do, if anything. It's > possible that gnulib is somehow enabling that option to be accepted > without an error. Thanks for looking at my issue. Sorry, I typed that from memory. It was --with-threads=no and I changed it to --without-threads. My configure output shows: checking what kind of threads to support... null-threads > Also, please don't use Guile 2.0.10. It was a brown-paper-bag release. > Please use Guile 2.0.11, which was released 3 days after 2.0.10. OK; I've updated the package to 2.0.11. I now remember noticing that. >> The build goes ok until trying to run guild. Just starting it without >> args leads to: >> >> /usr/pkgsrc/wip/guile2/work/guile-2.0.10/libguile > ../meta/uninstalled-env >> ../meta/guild >> 0xbbbe12d4 is not a GC visible pointer location >> GC_is_visible test failed >> Abort trap (core dumped) > > The relevant code is in gc.c line 632, which verifies that the GC can > see the static variable 'scm_protects' defined in the same file. If it > can't, that indicates a serious problem with the garbage collector. > > Before I investigate this any further, can you try with Guile 2.0.11 and > passing "--without-threads" to ./configure? After fixing the --disable-threads and updating to 2.0.11, I get the following. I'll ask pkgsrc/netbsd people about libgc, since that seems to be the issue. /usr/pkgsrc/wip/guile2/work/guile-2.0.11/libguile > LD_LIBRARY_PATH=.libs gdb .libs/guile GNU gdb (GDB) 7.3.1 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486--netbsdelf". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /u0/n0/gdt/NetBSD-current/pkgsrc/wip/guile2/work/guile-2.0.11/libguile/.libs/guile...(no debugging symbols found)...done. (gdb) run Starting program: /u0/n0/gdt/NetBSD-current/pkgsrc/wip/guile2/work/guile-2.0.11/libguile/.libs/guile Program received signal SIGSEGV, Segmentation fault. [Switching to LWP 1] 0xbba868ae in GC_find_limit_with_bound () from /usr/pkg/lib/libgc.so.1 (gdb) bt #0 0xbba868ae in GC_find_limit_with_bound () from /usr/pkg/lib/libgc.so.1 #1 0xbba8696e in GC_find_limit () from /usr/pkg/lib/libgc.so.1 #2 0xbba8699d in GC_init_netbsd_elf () from /usr/pkg/lib/libgc.so.1 #3 0xbba85b3f in GC_init () from /usr/pkg/lib/libgc.so.1 #4 0xbbaf9748 in scm_storage_prehistory () from .libs/libguile-2.0.so.29 #5 0xbbb0abaf in scm_i_init_guile () from .libs/libguile-2.0.so.29 #6 0xbbb6712c in scm_i_init_thread_for_guile () from .libs/libguile-2.0.so.29 #7 0xbbb67347 in with_guile_and_parent () from .libs/libguile-2.0.so.29 #8 0xbba85767 in GC_call_with_stack_base () from /usr/pkg/lib/libgc.so.1 #9 0xbbb67529 in scm_with_guile () from .libs/libguile-2.0.so.29 #10 0xbbb0ab67 in scm_boot_guile () from .libs/libguile-2.0.so.29 #11 0x08048ce9 in main () I realize this packaging control file is a foreign language, but here's how it looks: # $NetBSD$ # DISTNAME= guile-2.0.11 CATEGORIES= lang MASTER_SITES= ftp://ftp.gnu.org/gnu/guile/ MAINTAINER= root%zta.lk@localhost HOMEPAGE= ftp://ftp.gnu.org/gnu/guile/ COMMENT= Official extension language for the GNU operating system LICENSE= gnu-gpl-v3 GNU_CONFIGURE= yes USE_TOOLS+= pkg-config PKGCONFIG_OVERRIDE+= meta/guile-2.0.pc.in CONFIGURE_ARGS+= --without-threads #.include "../../mk/pthread.buildlink3.mk" # These are in the order given in guile's README. .include "../../devel/gmp/buildlink3.mk" .include "../../converters/libiconv/buildlink3.mk" .include "../../devel/gettext-lib/buildlink3.mk" .include "../../devel/libltdl/buildlink3.mk" .include "../../textproc/libunistring/buildlink3.mk" .include "../../devel/boehm-gc/buildlink3.mk" .include "../../devel/libffi/buildlink3.mk" .include "../../mk/bsd.pkg.mk" So really guile is building pretty close to natively.Attachment: pgpRCQChFnvhY.pgp
Description: PGP signature
--- End Message ---