Re: Making shared libraries (DLLs) on Windows: -no-undefined

2007-04-29 Thread Brian Dessent
John Brown wrote:

 In all cases, ld would find the symbols easily, if only it would try. Is
 libtool really complaining about these so-called undefined symbols? If that
 is so, why? Why does it not just try to build the DLL? If ld fails because
 of undefined symbols, then it can say so at that time.
 Is that if I am building my.dll on Windows, and it consists only of my.c,
 which calls only functions in my.c, then -no-undefined is not required, but
 otherwise, -no-undefined is necessary?
 Should I tell the libamrnb maintainer that configure needs to add
 --no-undefined on Windows, or Windows users should configure with

Libtool will *not* create shared libraries without -no-undefined on PE
targets, period.  It's not about it trying to detect whether there are
or are not any undefined symbols, it's about the maintainer telling
libtool that it is safe to assume or not assume something.  So yes, you
need to either use -no-undefined unconditionally, or conditionalized on
PE targets.  See for a little
of the history.



Re: dll names on windows

2007-04-29 Thread Bob Rossi
On Thu, Apr 19, 2007 at 05:12:49PM -0400, Bob Rossi wrote:
 On Sat, Apr 14, 2007 at 11:23:20PM +0100, Max Bowsher wrote:
  Bob Rossi wrote:
   I've recently converted pcre's ( build
   system to use the autotools.
   The previous stable version of libtool, pcre-7.0, used to create dll's
   on mingw. It would create 
 $ ls .libs/*.dll
   .libs/pcre.dll  .libs/pcreposix.dll   
   Now, the new autotools version creates,
 $ ls ../../pcre-7.1-RC4/prefix-shared/bin   
 libpcre-0.dll  libpcrecpp-0.dll  libpcreposix-0.dll  pcre-config
 So, now pcre uses the names directly above, which is the default
 behavior. However, the pcre project would like to provide a backwards
 compatible dll the user can use if they enable the configure switch
 --enable-alt-win-dll (or something like that).
 Is there any way that I can have libtool simply create a dll with the
 new 'pcre.dll' instead of 'libpcre-0.dll'? Otherwise, I'll have to code
 into the Makefile some commands to provide the user with what they want.

Above I meant to say 'with the name 'pcre.dll'.

Ping. Maybe this is a stupid question. I'm not really knowledgeable
enough to know if what I'm asking for doesn't even make sense. I'd like
to at least find out if it's a reasonable question that I'm asking. :)

Bob Rossi