Mail Archives: cygwin/2008/09/03/04:04:48
merged source tree gcc + cygwin-snapshot-20080822-1 (+ binutils 2.18, mpfr, gmp..)
configure -build i686-pc-cygwin -host i686-pc-cygwin -target i686-pc-mingw32 ...
Perhaps that is not a valid combination. Story could end right there. (and
configure should reject it and tell you to use i686-pc-cygwin.)
I tried it as a workaround for this bug:
http://sourceforge.net/tracker/index.php?func=detail&aid=2090602&group_id=2435&atid=102435
but I have another workaround to try (listed there).
Anyway, this works a lot, but eventually:
make[3]: Leaving directory `/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-mi
ngw32/winsup/lsaauth'
/bin/sh: line 0: cd: /obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-mingw32/w
insup/cygwin/..: No such file or directory
make[3]: Entering directory `/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-m
ingw32/winsup/cygserver'
make[3]: *** No rule to make target `/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i
686-pc-mingw32/winsup/cygserver/cygwin/libcygwin.a', needed by `cygserver.exe'.
Stop.
make[3]: Leaving directory `/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-mi
ngw32/winsup/cygserver'
make[2]: *** [cygserver] Error 1
make[2]: Leaving directory `/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-mi
ngw32/winsup'
make[1]: *** [all-target-winsup] Error 2
make[1]: Leaving directory `/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32'
make: *** [all] Error 2
The first two platform directories are my doing -- host and target.
The last one is the build system's doing -- target again.
So, do lsaauth and cygserver really make sense for mingw32?
I don't think so, esp. not cygserver, from the error message.
winsup does make sense, to get to winsup/mingw, for the target.
Or maybe..since the mingw32 compiler is almost the same
as the cygwin compiler, it can build it fine? And one can say i686-pc-mingw32 -mcygwin?
I see that cc1.exe etc. are just symlinks in the binary packages.
I've heard it said these are different targets, and best treated that way.
But this is kind of a counterpoint to that.
As well winsup/cygwin, and probably the others, make sense for the HOST.
SO I think the fix is roughly:
gcc/Makefile.def only lists winsup as target:
target_modules = { module= winsup; };
dependencies = { module=all-target-winsup; on=all-target-libiberty; };
dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
But it is also needed on the host.
So I think those three lines need to duplicated, but with target changed to host.
As well, winsup/configure.in I think needs a change, to avoid building this
stuff for target=mingw32.
The code is currently:
case "$target" in
*cygwin*)
if ! test -d $srcdir/cygwin; then
AC_MSG_ERROR("No cygwin dir. Can't build Cygwin. Exiting...")
fi
AC_CONFIG_SUBDIRS(cygwin)
INSTALL_LICENSE="install-license"
;;
*mingw*)
if ! test -d $srcdir/mingw; then
AC_MSG_ERROR("No mingw dir. Can't build Mingw. Exiting...")
fi
;;
esac
if test -d $srcdir/mingw; then
AC_CONFIG_SUBDIRS(mingw)
fi
AC_CONFIG_SUBDIRS(w32api)
case "$with_cross_host" in
""|*cygwin*)
# if test -d $srcdir/bz2lib; then
# AC_CONFIG_SUBDIRS(bz2lib)
# fi
# if test -d $srcdir/zlib; then
# AC_CONFIG_SUBDIRS(zlib)
# fi
if test -d $srcdir/cygwin; then
AC_CONFIG_SUBDIRS(cygwin)
fi
if test -d $srcdir/lsaauth; then
AC_CONFIG_SUBDIRS(lsaauth)
fi
if test -n "$use_cygserver" -a -d $srcdir/cygserver; then
AC_CONFIG_SUBDIRS(cygserver)
fi
AC_CONFIG_SUBDIRS(utils doc)
;;
esac
but I think needs to be more like:
case "$target" in
*cygwin*)
if ! test -d $srcdir/cygwin; then
AC_MSG_ERROR("No cygwin dir. Can't build Cygwin. Exiting...")
fi
AC_CONFIG_SUBDIRS(cygwin)
if test -d $srcdir/lsaauth; then
AC_CONFIG_SUBDIRS(lsaauth)
fi
if test -n "$use_cygserver" -a -d $srcdir/cygserver; then
AC_CONFIG_SUBDIRS(cygserver)
fi
AC_CONFIG_SUBDIRS(utils doc)
INSTALL_LICENSE="install-license"
;;
*mingw*)
if ! test -d $srcdir/mingw; then
AC_MSG_ERROR("No mingw dir. Can't build Mingw. Exiting...")
fi
;;
esac
if test -d $srcdir/mingw; then
AC_CONFIG_SUBDIRS(mingw)
fi
AC_CONFIG_SUBDIRS(w32api)
I'll see if I can come up with a working patch, though my workaround of just using -B../../../gcc
is much cheaper for me at this point.
- Jay
--
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/
- Raw text -