[ expat-Bugs-454879 ] Compile of xmlwf fails in cygwin v1.95.2

noreply@sourceforge.net noreply@sourceforge.net
Wed Nov 14 11:24:03 2001


Bugs item #454879, was opened at 2001-08-24 00:39
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=110127&aid=454879&group_id=10127

Category: Build control
Group: Platform Specific
Status: Open
Resolution: None
Priority: 5
Submitted By: Pabs (pabs3)
Assigned to: Greg Stein (gstein)
Summary: Compile of xmlwf fails in cygwin v1.95.2

Initial Comment:
make.log attached
The short of it is that the .o files in the xmlwf dir reference functions in the lib as _imp__<function name>,
but in the lib (libexpat.a) the functions are named _<function name> & just <function name>
Probably some gcc flag was omitted from one or the other.

Bye,
Pabs

----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2001-11-14 11:19

Message:
Logged In: NO 

Do these solutions create shared libraries?  With just the 
changes below, I'm not getting a .so file -- any advice?

----------------------------------------------------------------------

Comment By: Gerrit Haase (siebenschlaefer)
Date: 2001-10-24 10:19

Message:
Logged In: YES 
user_id=76037

I posted the patch here, (all in one line, please):

http://sourceforge.net/tracker/index.php?
func=detail&aid=454879&group_id=10127&atid=110127

Gerrit


----------------------------------------------------------------------

Comment By: Gerrit Haase (siebenschlaefer)
Date: 2001-10-24 09:52

Message:
Logged In: YES 
user_id=76037

Come on, I added a -no-undefined at the link line for 
libexpat and the dll is build and also xmlwf links o.k. 
against the dll.
Patch:
--- lib/Makefile.in.orig	Wed Oct 24 18:24:58 2001
+++ lib/Makefile.in	Wed Oct 24 18:23:29 2001
@@ -90,7 +90,7 @@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) 
$(INCLUDES) $(CPPFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link  $(CCLD) -version-info 
$(LIBCURRENT):$(LIBREVISION):$(LIBAGE) $(CFLAGS) 
$(LDFLAGS) -o $@
+LINK = $(LIBTOOL) --mode=link  $(CCLD) -no-undefined -
version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) 
$(CFLAGS) $(LDFLAGS) -o $@
 DIST_COMMON =  Makefile.in
 
 
Gerrit

----------------------------------------------------------------------

Comment By: Alex Martelli (aleax)
Date: 2001-09-13 02:02

Message:
Logged In: YES 
user_id=60314

I can confirm that adding the &&!defined() to the #if line 
in expat.h.in fixes everything for me on Cygwin, although I 
tested defined(__CYGWIN__) rather than defined
(__CYGWIN32__) (seems more generally useful...?)


----------------------------------------------------------------------

Comment By: Neil Lunn (corrosion)
Date: 2001-08-29 04:38

Message:
Logged In: YES 
user_id=78218

Meaning that the above patch should actually be applied to 
expat.h.in from the source distribution.
Could someone confirm the CVS commit?

----------------------------------------------------------------------

Comment By: David Crowley (dcrowley)
Date: 2001-08-27 16:29

Message:
Logged In: YES 
user_id=27458

I have this same problem.  I had to make a change to 
expat.h. I fixed it by changing the macro for XMLPARSEAPI.  
I just added the "&& !defined(__CYGWIN32)".  Here it is:

#ifndef XMLPARSEAPI
#  if defined(__declspec) && !defined(__BEOS__) && !defined
(__CYGWIN32__)
#    define XMLPARSEAPI(type) __declspec(dllimport) type 
__cdecl
#  else
#    define XMLPARSEAPI(type) type
#  endif
#endif  /* not defined XMLPARSEAPI */



----------------------------------------------------------------------

Comment By: Nobody/Anonymous (nobody)
Date: 2001-08-26 22:38

Message:
Logged In: NO 

to clarify v1.95.2 is the expat version number

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=110127&aid=454879&group_id=10127