public inbox for cygwin-patches@cygwin.com
 help / color / mirror / Atom feed
* [PATCH v2] Rename without-mingw-progs to with-cross-bootstrap
@ 2016-04-02 14:57 Peter Foley
  2016-04-04 14:46 ` Corinna Vinschen
  0 siblings, 1 reply; 2+ messages in thread
From: Peter Foley @ 2016-04-02 14:57 UTC (permalink / raw)
  To: cygwin-patches; +Cc: Peter Foley

Rename without-mingw-progs to with-cross-bootstrap, since it now
disables additional checks that are problematic for cross-compilers.

When cross-compiling a toolchain targeting cygwin, building cygwin1.dll
requires libgcc.
However, building libgcc requires the cygwin headers to be
installed.
Configuring cygwin requries the mingw-crt libraries, which require the
cygwin headers to be installed.
Work around this circular dependency by making the
--with-cross-bootstrap configure option skip cygwin's configure checks
for valid mingw-crt libraries. Cygwin will still properly link against
these libraries if they exist, but this allows configure to succeed even
if the libraries have not been built yet.
Since the mingw-crt libraries only require the cygwin headers to be
installed, this allows us to successfully configure cygwin so that we
can only install the headers without trying to build any
libraries.

winsup/ChangeLog
configure.ac: rename without-mingw-progs option to with-cross-bootstrap
configure: regenerate
winsup/cygserver/ChangeLog
configure.ac: don't check AC_WINDOWS_LIBS when using with-cross-bootstrap
configure: regenerate
winsup/cygwin/ChangeLog
configure.ac: don't check AC_WINDOWS_LIBS when using with-cross-bootstrap
configure: regenerate

Signed-off-by: Peter Foley <pefoley2@pefoley.com>
---
 winsup/configure              | 19 +++++++++++--------
 winsup/configure.ac           |  8 +++++---
 winsup/cygserver/configure    |  2 ++
 winsup/cygserver/configure.ac |  9 ++++++---
 winsup/cygwin/configure       |  2 ++
 winsup/cygwin/configure.ac    | 11 +++++++----
 6 files changed, 33 insertions(+), 18 deletions(-)

diff --git a/winsup/configure b/winsup/configure
index 541c81b..23b3a7b 100755
--- a/winsup/configure
+++ b/winsup/configure
@@ -665,7 +665,7 @@ target_builddir'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-with_mingw_progs
+with_cross_bootstrap
 with_windows_headers
 with_windows_libs
 '
@@ -1295,8 +1295,9 @@ if test -n "$ac_init_help"; then
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --without-mingw-progs   do not build programs using the mingw toolchain
-                          (useful for cross-compiling)
+  --with-cross-bootstrap  do not build programs using the mingw toolchain or
+                          check for mingw libraries (useful for bootstrapping
+                          a cross-compiler)
   --with-windows-headers=DIR
                           specify where the windows includes are located
   --with-windows-libs=DIR specify where the windows libraries are located
@@ -3362,11 +3363,11 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-# Check whether --with-mingw-progs was given.
-if test "${with_mingw_progs+set}" = set; then :
-  withval=$with_mingw_progs;
+# Check whether --with-cross-bootstrap was given.
+if test "${with_cross_bootstrap+set}" = set; then :
+  withval=$with_cross_bootstrap;
 else
-  with_mingw_progs=yes
+  with_cross_bootstrap=no
 fi
 
 
@@ -3379,6 +3380,7 @@ if test "${with_windows_headers+set}" = set; then :
 fi
 
 
+if test "x$with_cross_bootstrap" != "xyes"; then
 
 
 # Check whether --with-windows-libs was given.
@@ -3397,6 +3399,7 @@ fi
 
 
 
+fi
 
 ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
@@ -3448,7 +3451,7 @@ export CXX
 
 subdirs="$subdirs cygwin cygserver doc"
 
-if test "x$with_mingw_progs" != xno; then
+if test "x$with_cross_bootstrap" != "xyes"; then
     subdirs="$subdirs utils lsaauth"
 
 fi
diff --git a/winsup/configure.ac b/winsup/configure.ac
index b04f044..3daa2ac 100644
--- a/winsup/configure.ac
+++ b/winsup/configure.ac
@@ -25,17 +25,19 @@ AC_PROG_CC
 AC_PROG_CXX
 AC_PROG_CPP
 AC_LANG(C)
-AC_ARG_WITH([mingw-progs],[AS_HELP_STRING([--without-mingw-progs],[do not build programs using the mingw toolchain (useful for cross-compiling)])],[],[with_mingw_progs=yes])
+AC_ARG_WITH([cross-bootstrap],[AS_HELP_STRING([--with-cross-bootstrap],[do not build programs using the mingw toolchain or check for mingw libraries (useful for bootstrapping a cross-compiler)])],[],[with_cross_bootstrap=no])
 
 AC_WINDOWS_HEADERS
-AC_WINDOWS_LIBS
+if test "x$with_cross_bootstrap" != "xyes"; then
+    AC_WINDOWS_LIBS
+fi
 
 AC_LANG(C++)
 
 AC_CYGWIN_INCLUDES
 
 AC_CONFIG_SUBDIRS(cygwin cygserver doc)
-if test "x$with_mingw_progs" != xno; then
+if test "x$with_cross_bootstrap" != "xyes"; then
     AC_CONFIG_SUBDIRS([utils lsaauth])
 fi
 
diff --git a/winsup/cygserver/configure b/winsup/cygserver/configure
index 37caf57..71d1592 100755
--- a/winsup/cygserver/configure
+++ b/winsup/cygserver/configure
@@ -3381,6 +3381,7 @@ if test "${with_windows_headers+set}" = set; then :
 fi
 
 
+if test "x$with_cross_bootstrap" != "xyes"; then
 
 
 # Check whether --with-windows-libs was given.
@@ -3399,6 +3400,7 @@ fi
 
 
 
+fi
 
 ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
diff --git a/winsup/cygserver/configure.ac b/winsup/cygserver/configure.ac
index 5d1464b..eb6a894 100644
--- a/winsup/cygserver/configure.ac
+++ b/winsup/cygserver/configure.ac
@@ -9,7 +9,7 @@ dnl details.
 dnl
 dnl Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.59)
+AC_PREREQ([2.59])
 AC_INIT([Cygwin Cygserver],[0],[cygwin@cygwin.com],[cygwin],[https://cygwin.com])
 AC_CONFIG_SRCDIR(cygserver.cc)
 AC_CONFIG_AUX_DIR(..)
@@ -26,7 +26,9 @@ AC_PROG_CPP
 AC_LANG(C)
 
 AC_WINDOWS_HEADERS
-AC_WINDOWS_LIBS
+if test "x$with_cross_bootstrap" != "xyes"; then
+  AC_WINDOWS_LIBS
+fi
 
 AC_LANG(C++)
 
@@ -65,4 +67,5 @@ esac
 ])
 
 AC_CONFIGURE_ARGS
-AC_OUTPUT(Makefile)
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/winsup/cygwin/configure b/winsup/cygwin/configure
index 30a1405..f655f57 100755
--- a/winsup/cygwin/configure
+++ b/winsup/cygwin/configure
@@ -3392,6 +3392,7 @@ if test "${with_windows_headers+set}" = set; then :
 fi
 
 
+if test "x$with_cross_bootstrap" != "xyes"; then
 
 
 # Check whether --with-windows-libs was given.
@@ -3410,6 +3411,7 @@ fi
 
 
 
+fi
 
 ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
diff --git a/winsup/cygwin/configure.ac b/winsup/cygwin/configure.ac
index 6397931..d8cdcde 100644
--- a/winsup/cygwin/configure.ac
+++ b/winsup/cygwin/configure.ac
@@ -10,7 +10,7 @@ dnl details.
 dnl
 dnl Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.59)
+AC_PREREQ([2.59])
 AC_INIT([Cygwin DLL],[0],[cygwin@cygwin.com],[cygwin],[https://cygwin.com])
 AC_CONFIG_SRCDIR(Makefile.in)
 AC_CONFIG_HEADER(config.h)
@@ -28,7 +28,9 @@ AC_PROG_CPP
 AC_LANG(C)
 
 AC_WINDOWS_HEADERS
-AC_WINDOWS_LIBS
+if test "x$with_cross_bootstrap" != "xyes"; then
+  AC_WINDOWS_LIBS
+fi
 
 AC_LANG(C++)
 
@@ -99,7 +101,7 @@ case "$target_cpu" in
 		DIN_FILE="x86_64.din"
 		TLSOFFSETS_H="tlsoffsets64.h"
 		;;
-   *)		AC_MSG_ERROR(Invalid target processor \"$target_cpu\") ;;
+   *)		AC_MSG_ERROR([Invalid target processor "$target_cpu"]) ;;
 esac
 
 AC_CONFIGURE_ARGS
@@ -109,4 +111,5 @@ AC_SUBST(DLL_ENTRY)
 AC_SUBST(DEF_DLL_ENTRY)
 AC_SUBST(DIN_FILE)
 AC_SUBST(TLSOFFSETS_H)
-AC_OUTPUT(Makefile)
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
-- 
2.8.0

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] Rename without-mingw-progs to with-cross-bootstrap
  2016-04-02 14:57 [PATCH v2] Rename without-mingw-progs to with-cross-bootstrap Peter Foley
@ 2016-04-04 14:46 ` Corinna Vinschen
  0 siblings, 0 replies; 2+ messages in thread
From: Corinna Vinschen @ 2016-04-04 14:46 UTC (permalink / raw)
  To: cygwin-patches

[-- Attachment #1: Type: text/plain, Size: 1577 bytes --]

On Apr  2 10:56, Peter Foley wrote:
> Rename without-mingw-progs to with-cross-bootstrap, since it now
> disables additional checks that are problematic for cross-compilers.
> 
> When cross-compiling a toolchain targeting cygwin, building cygwin1.dll
> requires libgcc.
> However, building libgcc requires the cygwin headers to be
> installed.
> Configuring cygwin requries the mingw-crt libraries, which require the
> cygwin headers to be installed.
> Work around this circular dependency by making the
> --with-cross-bootstrap configure option skip cygwin's configure checks
> for valid mingw-crt libraries. Cygwin will still properly link against
> these libraries if they exist, but this allows configure to succeed even
> if the libraries have not been built yet.
> Since the mingw-crt libraries only require the cygwin headers to be
> installed, this allows us to successfully configure cygwin so that we
> can only install the headers without trying to build any
> libraries.
> 
> winsup/ChangeLog
> configure.ac: rename without-mingw-progs option to with-cross-bootstrap
> configure: regenerate
> winsup/cygserver/ChangeLog
> configure.ac: don't check AC_WINDOWS_LIBS when using with-cross-bootstrap
> configure: regenerate
> winsup/cygwin/ChangeLog
> configure.ac: don't check AC_WINDOWS_LIBS when using with-cross-bootstrap
> configure: regenerate

Patch applied.


Thanks,
Corinna

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-04-04 14:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-02 14:57 [PATCH v2] Rename without-mingw-progs to with-cross-bootstrap Peter Foley
2016-04-04 14:46 ` Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).