pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

is libgc thought to work on on NetBSD/i386?



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


Home | Main Index | Thread Index | Old Index