Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com
Message-ID: <402C2069.7070403@users.sourceforge.net>
Date: Thu, 12 Feb 2004 19:55:05 -0500
From: Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207)
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Building dll's and executables in same package
X-Enigmail-Version: 0.83.2.0
X-Enigmail-Supports: pgp-inline, pgp-mime
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Authentication-Info: Submitted using SMTP AUTH at out003.verizon.net from [68.161.51.220] at Thu, 12 Feb 2004 18:55:10 -0600

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

OK, after a lot of time looking at the user guide, FAQ, and Google, I
finally figured out (I think) how to get DLLs to build with the
autotools.  But now I'm having troubles with building the executables
from the same package that depend on this library.

My "test case" is fribidi.  In short:

1) I added -no-undefined to libfribidi_la_LDFLAGS in Makefile.in
(there's only one, no subdirs).

2) I added an empty main function to one of the src .c files:

+int main ()
+{ return 0; }

dlltool seems to build cygfribidi-0.dll properly, then make continues to
build fribidi.exe, which depends on libfribidi, and the following happens:

/bin/sh ./libtool --mode=link gcc  -O2 -Wall  -lm -o fribidi.exe
fribidi_main.o getopt.o getopt1.o libfribidi.la  -L. -lfribidi
generating import library for `cygfribidi-0.dll'
dlltool --as=as --dllname cygfribidi-0.dll --def
.libs/cygfribidi-0.dll-def --output-lib .libs/libimp-cygfribidi-0.a
gcc -O2 -Wall -o .libs/fribidi.exe fribidi_main.o getopt.o getopt1.o
- -L/home/Yaakov/devel/testing/fribidi/fribidi-0.10.4/.build
.libs/libimp-cygfribidi-0.a
fu000001.o(.idata$3+0xc): undefined reference to
'__libs_libimp_cygfribidi_0_a_iname'
nmth000000.o(.idata$4+0x0): undefined reference to
`__nm__fribidi_version_info'
Info: resolving _fribidi_version_info by linking to
__imp__fribidi_version_info (auto-import)
collect2: ld returned 1 exit status
make: *** [fribidi.exe] Error 1

So what am I missing now?  Or is this a problem with the code?

Yaakov


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFALCBnpiWmPGlmQSMRArgKAJ9nsa7uI5xA7B5lw8pa05ELudDwhwCglX8u
TM0FBClujeDL2hpLjAZA854=
=lNGc
-----END PGP SIGNATURE-----


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

