Subject: Re: Can't load/execute soft-linked DLL???
From: "Gerrit P. Haase" <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Fri, 21 Sep 2001 17:18:45 +0200

Mark Paulus schrieb am 2001-09-21, 8:51:

>Hi,
>
>I'm working on converting a linux app to cygwin.  One of the 
>things the build process does is create a .so that is named:
>library.so.major.minor.point, and then it creates a soft
>link of library.so.major.minor.point to library.so.
>
>I have changed around the LD build options to create a cygwin
>dll, and changed the makefile to build
>library.dll.major.minor.point (I used the same trick as is used to
>generate a $(EXE) in the makefile, except I call it $(SO).
>
>Anyway, the library.dll.major.minor.point seems to build ok, and then
>it creates a link to library.dll.  However, when I try to run my app,
>it tells me that it can't find/load library.dll.  However, when I do a 
>copy of library.dll.m.m.p to library.dll, then the app can startup
>ok.
>
>Is this a known deficiency within cygwin, or something that needs to 
>be examined???

I think it is more a problem with windows itself.

$ guile -v
Guile 1.4-2
Copyright (c) 1995, 1996, 1997, 2000 Free Software Foundation
Guile may be distributed under the terms of the GNU General Public Licence;
certain other uses are permitted as well.  For details, see the file
`COPYING', which is included in the Guile distribution.
There is no warranty, to the extent permitted by law.

$ ll *guile*
-rwxr-xr-x    1 Siebensc Administ     9728 Sep 19 15:31 cygguilereadline-0.dll*
-rwxr-xr-x    1 Siebensc Administ     9328 Sep 19 15:30 guile-config*
-rwxr-xr-x    1 Siebensc Administ     1127 Sep 19 15:28 guile-doc-snarf*
-rwxr-xr-x    1 Siebensc Administ     1238 Sep 19 15:28 guile-func-name-check*
-rwxr-xr-x    1 Siebensc Administ   375808 Sep 12 18:08 guile-oops.exe*
-rwxr-xr-x    1 Siebensc Administ      552 Sep 19 15:28 guile-snarf*
-rwxr-xr-x    1 Siebensc Administ     3162 Sep 19 15:28 guile-snarf.awk*
-rwxr-xr-x    1 Siebensc Administ     3072 Sep 19 15:28 guile.exe*
-rwxr-xr-x    1 Siebensc Administ   475648 Sep 19 15:28 libguile-9.dll*

$ mv libguile-9.dll libguile-9.dll.1.4-2

$ ln -s libguile-9.dll.1.4-2 libguile-9.dll

$ ll *guile*
-rwxr-xr-x    1 Siebensc Administ     9728 Sep 19 15:31 cygguilereadline-0.dll*
-rwxr-xr-x    1 Siebensc Administ     9328 Sep 19 15:30 guile-config*
-rwxr-xr-x    1 Siebensc Administ     1127 Sep 19 15:28 guile-doc-snarf*
-rwxr-xr-x    1 Siebensc Administ     1238 Sep 19 15:28 guile-func-name-check*
-rwxr-xr-x    1 Siebensc Administ   375808 Sep 12 18:08 guile-oops.exe*
-rwxr-xr-x    1 Siebensc Administ      552 Sep 19 15:28 guile-snarf*
-rwxr-xr-x    1 Siebensc Administ     3162 Sep 19 15:28 guile-snarf.awk*
-rwxr-xr-x    1 Siebensc Administ     3072 Sep 19 15:28 guile.exe*
lrwxrwxrwx    1 Siebensc Administ       31 Sep 21 17:09 libguile-9.dll -> libguile-9.dll.1.4-2*
-rwxr-xr-x    1 Siebensc Administ   475648 Sep 19 15:28 libguile-9.dll.1.4-2*

$ guile -v

A popup box tells me now that libguile-9.dll is no valid Windows NT file.
(In the case CYGWIN=nowinsymlinks)
And if I set CYGWIN=winsymlinks and repeat the test, i get an error that 
libguile-9.dll could not be found in path.

It works if you use hardlinks.  But under win98 copying is the same, hardlinks
onluy work on NT.

Gerrit

-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/