Re: [Gc] "GC_is_visble_test failed" error on MS-W indows

Ivan Maidanski <ivmai-JGs/[email protected]> Wed, 11 Jun 2014 11:57:52 +0400
Newsgroups gmane.comp.programming.garbage-collection.boehmgc
Message-ID <[email protected]>
Hi Eli,
The reason of failure seems to me pretty obvious - mingw variant does not "track" pthread threads by default, so they are not scanned. The question is why win32 threads support is on while you pass disable-threads. Please send me config.h and config.log
Regards, 
Ivan
--
Thu, 05 Jun 2014, 20:49 +04:00 from Eli Zaretskii <[email protected]>:
Please CC me on any responses, as I'm not subscribed to the list, TIA.
I see a strange error from libgc compiled for MS-Windows with the
MinGW development tools.  I tried both gc-7.2e and gc-7.4.0, and they
both exhibit the same problem: the library compiles cleanly and passes
all the tests, but when I build Guile with the resulting library, the
Guile executable pops a fatal error dialog saying "GC_is_visble_test
failed" and aborts.
At first I thought that this was a problem with visibility of some
symbols across shared libraries, something that is sometimes tricky
with Windows DLLs.  So I've linked Guile statically against libgc.
This didn't help: the same popup was displayed again.
After some trial and error, I found out that the problem seemed to be
caused by the --disable-threads option I passed to the libgc configure
script; if I leave that option out, the problem disappears, and Guile
works as expected.
The reason I specified --disable-threads is that Guile's threads
support is currently broken on MS-Windows, and OTOH having a Guile
that depends on a threading library pthreads is a nuisance on Windows
(for some dull reasons I prefer not to enter into).  So I wanted to
make sure no threads support is compiled into libgc and into Guile.
By looking inside the created libgc with and without that
configure-time option, I understood that when --disable-threads is not
given, libgc on Windows is built with win32 threading support.  This is
fine by me, as it doesn't pull in any external dependencies that
aren't available on every Windows box.  But it is still surprising
that threading support must be available in order to pass the
visibility test.
Can someone please help me understand how these 2 aspects are related?
There might be a bug in Guile that triggers this, but I'd like to at
least understand the relations between threading and the visibility
test, before I talk to the Guile people, or try debugging this myself.
TIA
_______________________________________________
bdwgc mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/bdwgc

_______________________________________________
bdwgc mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/bdwgc