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], [[email protected]], [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

=====

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to