delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/11/03/13:51:01

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Message-ID: <3BE43C96.80900@ece.gatech.edu>
Date: Sat, 03 Nov 2001 13:51:02 -0500
From: Charles Wilson <cwilson AT ece DOT gatech DOT edu>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1
X-Accept-Language: en-us
MIME-Version: 1.0
To: Andreas Eibach <a DOT eibach AT gmx DOT net>
CC: Ross Smith <lists AT netebb DOT com>, cygwin AT cygwin DOT com
Subject: Re: 1.3.3: ld: cannot find a library that is there!
References: <NDBBJINIMKJKPGEBBJLKGENMDOAA DOT lists AT netebb DOT com> <00b701c1648f$30519b40$e996603e AT andy>

Look, .so files DO NOT WORK on cygwin.

I am assuming the following:
  1) you are trying to build i386 binaries that run under windows/cygwin
  2) you have not implemented your own binary relocatable library runtime 
loader

As already stated in this thread, cygwin uses the native windows pei-386 
DLL format for shared libraries.  It relies on the native windows 
runtime-loader (WRL) to load these DLL's at runtime.  The WRL ONLY 
understands DLLs -- it only searches for files with the .dll ending (*not* .so)

Don't try to rename a ".so" file to a ".dll" -- it doesn't work that way. 
True .so files are ELF-format relocatable shared libraries; they may 
contain x86 instructions, but windows can't run it (although linux can).

Solution: stop waffling about "ldconfig" (WRL doesn't use ld.so or 
ldconfig) or libtool -- build a static lib and use that.  Otherwise, search 
this mailing list for "How to build a DLL" and be prepared for much work. 
You need to do a *real* port.

--Chuck

Andreas Eibach wrote:

> ----- Original Message -----
> From: "Ross Smith" <lists AT netebb DOT com>
> To: <cygwin AT sources DOT redhat DOT com>
> Sent: Thursday, November 01, 2001 10:52 PM
> Subject: 1.3.3: ld: cannot find a library that is there!
> 
> 
> 
>>I'm compiling IBM's icu 2.0 (http://oss.software.ibm.com/icu/) from cvs as
>>
> a precursor to porting xerces 1.5.2 to cygwin.
> 
>>I'm using cygwin 1.3.3 with all latest versions of everything.
>>
>>make stops at the first link, with:
>>
>>
>>
> c++ -DHAVE_CONFIG_H -I. -DICU_DATA_DIR=\"/usr/local/lib/icu/2.0/\" -DUDATA_S
> O_SUFFIX=\".so\" -DU_COMMON_LIBNAME=\"libicuuc.so.20.0\"
> 
>> -DUDATA_FILES -g -O2   -shared -Wl,-soname -Wl,libicuuc.so.20 -o
>>
> libicuuc.so.20.0 putil.o ...
> 
>>convert.o -L../data -L../stubdata -licudata -lm
>>.../ld: cannot find -licudata
>>
>>I verified that ../stubdata/libicudata.so.lnk exists, and it links to
>>
> ../stubdata/libicudt20l.so.
> 
>>So I tried to fix it with:
>>
>>% cd stubdata
>>% rm libicudata.so
>>% cp libicudt20l.so libicudata.so
>>
>>No luck.
>>
>>So I copied libicudata.so into the working directory, and added -L. to the
>>
> command line.
> 
>>% cd common
>>% cp ../stubdata/libicudata.so .
>>% make
>>
> 
> You *DID* remember to run ldconfig -v after these modifications, didn't you?
> 
> Andreas
> 
> 
> --
> 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/
> 
> 



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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019