When I ran
   ./expat-1.95.8-1.sh prep
the resulting directory tree was not patched.

Manually patched after extracting the patch from the cygwin -src tarball.

The build fails with the preprocessor error:
    #error memmove does not exist on this platform, nor is a substitute
    available in lib/xmlparse.c line 75.

The command line issued by libtool looks approximately like this:
 /bin/bash ./libtool --silent --mode=compile gcc -g0 -O3\
    -Iexpat-1.95.8/lib -I. -o lib/xmlparse.lo\
    -c expat-1.95.8/lib/xmlparse.c
  [line breaks added for posting to email List]

and it is obvious that it is not applying the CFLAGS: (from Makefile):
 CFLAGS = -O3 -march=i686 -Wall -Wmissing-prototypes -Wstrict-prototypes\
  -fexceptions -DHAVE_EXPAT_CONFIG_H

Because the libtool is not getting or passing on the CFLAGS parameters
to gcc, the compilation fails: the HAVE_EXPAT_CONFIG.H option must be
present on Cygwin or the show will stop immediately.

I retrieved the latest release of libtool and extracted the ltmain.sh
file from that tarball, replacing the one that came in expat. Now the
build worked as expected, to completion.

The libtool release installed on my machine (latest from cygwin at the
time of this writing):

Cygwin Package Information
Package              Version        Status
libtool-devel        1.5.10-1       OK
Cygwin Package Information
Package              Version        Status
libtool-stable       1.4.3-2        OK
Cygwin Package Information
Package              Version        Status
libtool              1.5b-1         OK

The only thing I know to be non-standard about my setup for this build
was the fact that I did not undertake it in /usr/src but in another
disk location (not one with any spaces present in its pathname, btw).

My conclusion is that use of libtool to build this package on Cygwin
is brittle. This is not the first cygwin package release of expat
which failed to build for me (last time was in 2002, no details are
available to cite after this lengthy interval).

 My opinion is that GNU libtool is a poor match for the
requirements of building of libraries on the ms windows platform. It
reminds one a bit of hunting squirrel with a piece of field artillery.
You'll definitely send the wee critter out of this life with no
remnants to dispose of, but you'll have to get him in your sights first.

There also seems to be an issue with the expat-1.95.8-1.sh script not
patching the upstream source tree it unpacks. Why this would fail I
could not tell (and didn't look too hard).

  Regards.

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

Reply via email to