This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

system() error for each LoadLibrary() dll


I'm trying to debug a problem with Octave running under
Cygwin for Windows ME.

Every time I fork, I get a message box for each dynamically
loaded dll saying:
Octave has caused an error in SUB.DLL
Octave will now close.
This does not happen in Windows 2000.

In trying to locate the problem, I've removed all octave
specific code. The problem occurs if I link against one
of the three octave libraries (liboctinterp) but not if I
link against the other two. Again, I am not using any
symbols from octave, so it is something in the dll
initialization code which is causing the problem.

Any suggestions what sort of code to look for?

Or do I have to start chopping bits out of liboctinterp
at random until the program stops breaking?

Thanks in advance,

Paul Kienzle

PS, I'm including my test code here, but you won't be
able to use it without liboctinterp and their dependencies. These are rather large (~5.4 Mb compressed), so I've
put them at

#include <iostream>
#include <windows.h>
int main(int argc, char *argv[])
HINSTANCE handle = LoadLibrary("dynsub.dll");
std::cout << "# Calling system\n";
std::cout << "# continuing\n";
return 0;

--- dynsub.c:
#include <stdio.h>
void dynsub(void) { printf("in dynsub\n"); }

--- Makefile:
all: dynsub.dll dynmain.exe dynerr.exe
dynmain.exe: dynmain.o ; g++ -o $@ $<
dynerr.exe : dynmain.o ; g++ -o $@ $< liboctinterp.dll.a
dynmain.o : ; g++ -c
dynsub.dll : dynsub.o ; gcc -shared dynsub.c -o dynsub.dll

Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]