This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

target=i686-pc-mingw32 fails building mingw32/winsup/cygserver.


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]