Try #3 for changes to Cygwin configure

Corinna Vinschen
Wed Nov 14 11:57:00 GMT 2012

On Nov 13 22:39, Christopher Faylor wrote:
> Try #3.  This is a smaller patch with some bug fixes found after
> building from-scratch, cleanly on a Fedora system with Yaakov's cross
> tools (ok, so I lied and did end up setting up a Fedora system to test
> this).

Is that the point where I have to say "na na na na naaa na"?  Just kidding.

> Also fixed some long-standing Makefile bugs and misconceptions in
> cygwin and utils.
> I'm not entirely thrilled with the fact that configuring and building
> this from the level above winsup results in lots of compiler command
> line parameters passed in which are also discerned by macros in
> acinclude.m4.  If we do end up staying in the src CVS repository I'll
> have to fix that.

For a start I applied the patch to CVS HEAD and ran a stock `configure;
make' from toplevel on Fedora 17 with Yaakov's Cygwin packages.

I can't link the Cygwin DLL:

/usr/lib64/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find -luser32
/usr/lib64/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lkernel32
/usr/lib64/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find -ladvapi32
/usr/lib64/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lshell32
collect2: ld returned 1 exit status

I didn't look why it doesn't find these libs.  But this means the
-nostdlib flag is missing.  If I add it I get a lot of messages pointing
out missing symbols, though:

  .../cygtls.h:301: undefined reference to `__Unwind_Resume'
  .../ undefined reference to `___gxx_personality_v0'

After a bit of digging I found that the -fno-rtti -fno-exceptions flags
are missing when building the C++ source files.

When building cygserver stuff, the flags -mno-use-libstdc-wrappers
-fno-rtti -fno-exceptions are missing, too.

In utils, I get an interesting error when building cygcheck:

  In file included from .../
  .../newlib/libc/include/stdio.h:35:20: fatal error: stddef.h: No such file or directory

Newlib?  For a Mingw application?  The compiler instruction actually
contains the following paths:

  -I${srcdir}/winsup/cygwin \
  -isystem /usr/i686-pc-cygwin/sys-root/usr/include/w32api \
  -isystem ${srcdir}/winsup/cygwin/include \
  -isystem ${srcdir}-pc-cygwin/newlib/targ-include \
  -isystem ${srcdir}/newlib/libc/include

None of them should be used when building with the Mingw compiler.

Btw., why did you remove $(CFLAGS) from the definition of MINGW_CXX?
I added it just a couple of days ago explicitely to be able to build
the utils manually with different optimizing settings:

 2012-11-05  Corinna Vinschen <...>

	* (MINGW_CXX): Attach $(CFLAGS) to allow providing
	build option tweaks to mingw compiler as well.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

More information about the Cygwin-patches mailing list