Miscellaneous notes from an user ... as he rebuilt cygwin1.dll against the 3.6.6 branch
J.H. vd Water
dhr-incognito@xs4all.nl
Tue Dec 23 01:23:17 GMT 2025
Hi,
In addtion to my bug report from Mon Dec 15 15:53:31 GMT 2025
- https://cygwin.com/pipermail/cygwin/2025-December/259133.html
( Bug in id command (when using the descr schema - Ch3 UG) ? )
Miscellaneous notes from an user ... as he rebuilt cygwin1.dll against the 3.6.6 nranch:
1. verified Corinna's patchset [a] against the 3.6.6 branch (git --checkout cygwin-3.6.-branch)
2. build w/ (among other switches) --disable-cygserver --disable-utils ... as I only wanted to rebuild cygwin1.dll
- cygwin.cygport was modified as follows:
PKG_NAMES="cygwin"
BUILD_REQUIRES="autoconf automake cocom libiconv-devel gcc-g++ make patch perl"
CYGCONF_ARGS="--disable-silent-rules --without-cross-bootstrap --disable-cygserver --disable-doc --disable-dumper --disable-utils"
subsequenly corrected to:
CYGCONF_ARGS="--disable-silent-rules --with-cross-bootstrap --disable-cygserver --disable-doc --disable-dumper --disable-utils"
- build FAILED because Radek Bartoň's patch [1] has NOT been backported to the 3.6.6 branch (pushed to 3.7 only)
- my 2nd attempt after Radek's patchset (3) had been applied:
- testsuite/mingw is STILL being built, despite specifying --without-cross-bootstrap (i.e. the WRONG switch!)
3. --without-cross-bootstrap [2] should be --with-cross-bootstrap -- in case we only want to rebuild cygwin1.dll (FAQ 6.21 is wrong)
Proof below.
4. Radek Bartoň 2nd patch [3] is wrong -- note: patch was not approved (neither was it pushed to the central repo)
Although
if test "x$with_cross_bootstrap" != "xyes"; then hunt for the mingw tools; fi ... is correct,
this modification is far better to understand:
if test "x$with_cross_bootstrap" == "xno"; then hunt for the mingw tools; fi
Ditto AM_CONDITIONAL(CROSS_BOOTSTRAP, [test "x$with_cross_bootstrap" != "xyes"])
See below.
-----
[a]
- https://cygwin.com/pipermail/cygwin-patches/2025q4/014481.html ... reviewed by Takashi Yano, pushed (3.7) by Corinna
( [PATCH v2 0/4] Fix overriding primary group )
(it would be nice if this patchset is backported to the 3.6.6 branch)
[1] Radek's 1st patchset
- https://sourceware.org/pipermail/cygwin-patches/2025q3/014175.html ... reviewd by Jon T., pushed (3.7) by Jon
( [PATCH v4] Cygwin: configure: add possibility to skip build of cygserver and utils )
Mon Jul 21 07:40:37 GMT 2025
(it would be nice if this patchset is backported to the 3.6.6 branch)
[2] Corinna's patch from February 1, 2024 (aq.programming.building-cygwin 6.21)
- https://cygwin.com/cgit/cygwin-htdocs/commit/faq/faq.html?id=9d693eea564ec608569c2f5d78536827e99f1661
( Cygwin 3.5.0 release )
2024-02-01 12:29:28 +0100
(should be corrected)
[3] Radek's 2nd patch
- https://cygwin.com/pipermail/cygwin-patches/2025q3/014248.html
( [PATCH] Cygwin: configure: allow zero-level bootstrapping cross-build with --without-cross-bootstrap (and cross-testing without) )
Fri Jul 25 21:40:40 GMT 2025
-----
Ad 2.
Proof why using --without-cross-bootstrap is WRONG if one does NOT want the mingw tools to be invoked ...
Source: https://autotools.info/autoconf/arguments.html
See <newlib-cygwin>/winsup/configure.ac ... around line 45
cat configure.ac: (testfile)
AC_INIT([myproject], [123], [flameeyes@flameeyes.com], [https://autotools.io/])
AC_ARG_WITH([cross-bootstrap],
[AS_HELP_STRING([--with-cross-bootstrap], # <==== WITH !!!
[do not build programs using the MinGW toolchain or check for MinGW libraries (useful for bootstrapping a cross-compiler)])],
[],
[with_cross_bootstrap=no])
echo $with_cross_bootstrap
#= eof
64-@@ ./configure --version
autoconf (GNU Autoconf) 2.72
...
64-@@ rm -fr autom4te.cache configure
64-@@ autoconf
/usr/share/autoconf2.7/autoconf/trailer.m4:4: warning: AC_OUTPUT was never used
64-@@ ./configure
no
64-@@ ./configure -with-cross-bootstrap
yes
64-@@ ./configure -with-cross-bootstrap=no
no
64-@@ ./configure -without-cross-bootstrap
no
64-@@ ./configure -without-cross-bootstrap=yes
configure: error: invalid package name: 'cross-bootstrap=yes'
64-@@ ./configure -without-cross-bootstrap=no
configure: error: invalid package name: 'cross-bootstrap=no'
Summarized:
switch variable
- no switch => with_... = no
- --with- => with_... = yes
- --without- => with_... = no
-----
Ad 3.
Radek's 2nd patch, w.r.t. to winsup/configure.ac, is WRONG.
Source: (again) https://autotools.info/autoconf/arguments.html
winsup/configure.ac ... around line 43
AC_ARG_WITH([cross_bootstrap],
[AS_HELP_STRING([--with-cross-bootstrap], do not use the mingw tools ...
[],
[with_cross_bootstrap=no]) <==== if no switch is specified (i.e. the default), this value is assigned
Note:
a. no switch specified => with_cross_bootstrap=no
b. --with-cross-bootstrap => with_cross_bootstrap=yes
c. --without-cross-bootstrap => with_cross_bootstrap=no (i.e. recognized as the inverted switch)
Attention:
d. --with-cross-bootstrap=no => with_cross_bootstrap=no
e. --with-cross-bootstrap=yes => with_cross_bootstrap=yes
winsup/configure.ac ... around line 116
Replace
if test "x$with_cross_bootstrap" != "xyes"; then
By:
if test "x$with_cross_bootstrap" == "xno"; then <==== far better to understand
< check availability of x86_64--w64-mingw32-{gcc,g++}, stop if not found >
fi
Replace
AM_CONDITIONAL(CROSS_BOOTSTRAP, [test "x$with_cross_bootstrap" != "xyes"]) # returns true if --with-cross-bootstrap has been specified
By:
AM_CONDITIONAL(CROSS_BOOTSTRAP, [test "x$with_cross_bootstrap" == "xno"]) <==== far better to understand
--with_cross_bootstrap=yes (winsup/configure.ac) => CROSS_BOOTSTRAP_TRUE='#' (src/winsup/configure)
=> @CROSS_BOOTSTRAP_TRUE@SUBDIRS = mingw (src/winsup/testsuite/Makefile.in), i.e. @SUBDIRS = mingw will be ignored
=> if CROSS_BOOTSTRAP SUBDIR = mingw endif (src/winsup/testsuite/Makefile.in), i.e. SUBDIR = mingw will be ignored
(the same applies to src/winsup/utils/Makefile.{am,in} )
As an alternative, the option name should be renamed if "cross-bootstrap" creates confusion:
AC_ARG_WITH([skip-mingw],
[AS_HELP_STRING([--with-skip-mingw], do not use the mingw tools ...
[],
[with_skip_mingw=no]) <==== if no switch is specified (i.e. the default) ... or if --without-skip-mingw is specified
if test "x$with_skip_mingw" != "xyes"; then
hunt for the mingw tools
fi
=====
More information about the Cygwin
mailing list