Core dump on 32-bit Cygwin if program calls dlopen
Corinna Vinschen
corinna-cygwin@cygwin.com
Tue Jul 15 09:03:00 GMT 2014
On Jul 14 19:42, Ken Brown wrote:
> I'm getting a core dump on exit from a program that does nothing but call
> dlopen. (But the call to dlopen succeeds.) This happens only in the 32-bit
> case. Here's a simple test case.
>
> $ cat test_dlopen.c
> #include <stdio.h>
> #include <dlfcn.h>
> int
> main()
> {
> const char *dllname = "cyggs-9.dll";
> void *handle;
> printf ("Trying to dlopen %s...", dllname);
> handle = dlopen (dllname, RTLD_LAZY);
> if (handle)
> {
> printf ("succeeded.\n");
> return 0;
> }
> else
> {
> printf ("failed.\n");
> return 1;
> }
> }
>
> $ gcc test_dlopen.c
>
> $ ./a
> Trying to dlopen cyggs-9.dll...succeeded.
> Aborted (core dumped)
The crash occurs when calling the destructors from do_global_dtors.
The crash address points to a crash inside a destructor of libgcc
(actually cyggcc_1-1.dll) which has been pulled in by cyggs-9.dll.
What destructor in libgcc would that be? And what is it expecting
which is apparently missing?
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20140715/7204f11d/attachment.sig>
More information about the Cygwin
mailing list