Subject: Surprises running gcc 3.2 configure on Cygwin
From: "David A. Cobb" <[email-masked]>
To: Cygwin Discussion <[email-masked]>, GNU Compiler Implemenation List <[email-masked]>
Date: Sun, 22 Sep 2002 20:20:28 -0400

The first surprise was that everything (configure, make-bootstrap, 
make-check) worked!  That's a surprise because it was consistantly 
failing only a few days ago and I didn't notice anything changing except 
the phase of the moon.

The following observations may not be bugs (except the first).  They are 
just things that seem strange to me 'cause I don't know any better.  
Comments are welcome.
[ BTW, I don't mean to YELL.  The caps below are mostly to distinguish 
my commentary from clippings out of the configure log.

My bootstrap compiler was gcc-3.2 as built by David Billighurst 
([email-masked]), with a working Cygwin-Ada.

My configure command was (from bash -x output):

++ /usr/test/gcc-3.2/src/configure --prefix=/usr/local 
--bindir=/usr/local/bin/i686-pc-cygwin 
--libdir=/usr/local/lib/gcc3.2/i686-pc-cygwin --infodir=/usr/local/info 
--mandir=/usr/local/man --datadir=/usr/local/etc/gcc3.2/i686-pc-cygwin 
--with-system-zlib --enable-nls --without-included-gettext 
--enable-shared --enable-threads=posix --enable-sjlj-exceptions 
--with-cpu=i686 --enable-version-specific-runtime-libs --with-newlib 
--extra-verbose i686-pc-cygwin
Configuring for a i686-pc-cygwin host.
*** This configuration is not supported in the following subdirectories:
     target-libffi target-boehm-gc target-zlib target-libjava
    (Any other directories should still work fine.)
Created "Makefile" in /usr/test/gcc-3.2/build using "mh-frag" and "mt-frag"
Reading specs from 
/usr/local/gcc-3_2/bin//../lib/gcc-lib/i686-pc-cygwin/3.2/specs
Configured with: /usr/local/src/gcc-3.2c/configure 
--prefix=/usr/local/gcc-3_2 --enable-threads=posix 
--enable-languages=ada --disable-sjlj-exceptions --enable-nls 
--without-included-gettext --disable-shared
Thread model: posix
gcc version 3.2 20020912 (prerelease)

THE BIGGEST SURPRISE was in the Makefile --- I've done this three or 
four times so far with similar results

#1
#
# Makefile for directory with subdirs to build.
#   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
#   1999, 2000, 2001 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#

# Tell GNU make 3.79 not to run the top level in parallel.  This
# prevents contention for $builddir/$target/config.cache, as well
# as minimizing scatter in file system caches.
NOTPARALLEL = .NOTPARALLEL
$(NOTPARALLEL):

srcdir = /usr/local/src/gcc-3.2-1

prefix = /usr/local/
exec_prefix = --with-system-zlib
=========^^^^^^^^^^^^^^^^^^
bindir = /usr/local/bin/i686-pc-cygwin

#2: I shuffled configure parameters around and got the same bad selection
# Tell GNU make 3.79 not to run the top level in parallel.  This
# prevents contention for $builddir/$target/config.cache, as well
# as minimizing scatter in file system caches.
NOTPARALLEL = .NOTPARALLEL
$(NOTPARALLEL):

srcdir = /usr/local/src/gcc-3.2-1

prefix = /usr/local
exec_prefix = --with-system-zlib
=========^^^^^^^^^^^^^^^^^^^
bindir = /usr/local/bin/i686-pc-cygwin

#3: The run with parameters described at the top, manually corrected:
# as minimizing scatter in file system caches.
NOTPARALLEL = .NOTPARALLEL
$(NOTPARALLEL):

srcdir = /usr/test/gcc-3.2/src

prefix = /usr/local
# exec_prefix = i686-pc-cygwin
==========^^^^^^^^^^^^^^^^^^^
exec_prefix = /usr/local # as corrected!

bindir = /usr/local/bin/i686-pc-cygwin

=========================================================================
IN THE VERY FIRST COMPILER TEST, I get these:

ignoring nonexistent directory "../../include/w32api"
^^^^^^^^^^^^^^^^^^^^^^^
GNU CPP version 3.2 20020912 (prerelease) (cpplib) (80386, BSD syntax)
GNU C version 3.2 20020912 (prerelease) (i686-pc-cygwin)
    compiled by GNU C version 3.2 20020912 (prerelease).
ignoring nonexistent directory "/usr/local/gcc-3_2/i686-pc-cygwin/include"
^^^^^^^^^^^^^^^^^^^^^^^^^^
ignoring nonexistent directory "/usr/local/gcc-3_2/i686-pc-cygwin/include"
ignoring duplicate directory 
"/usr/local/gcc-3_2/lib/gcc-lib/i686-pc-cygwin/3.2/include"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/w32api

QUESTION: Are the duplicate / nonexistent directories anything I should 
care about?
==========================================================================
NEXT SURPRISE:
checking for asprintf... no
checking for atexit... yes
checking for basename... no
===================^^^^^^^^^
but
g:\HOME\Superbiskit>which basename
which basename
/usr/bin/basename

g:\HOME\Superbiskit>
==========================================================================
checking for insque... no
. . . .
checking for mkstemps... no

DOES IT MATTER?  Would they be fairly simple?
==========================================================================
checking for vfork.h... no
checking for working vfork... yes

SEEMS STRANGE to have one and not the other.  DOES IT MATTER?
==========================================================================
checking for working mmap... no

I THOUGHT WE HAD THAT.  Or does it come with a working cygdaemon?
==========================================================================
checking if /usr/local/gcc-3_2/bin//gcc.exe supports -c -o file.o... no
RATHER A SURPRISE?

checking if we can lock with hard links... yes
MOST OF MY FS IS FAT32.  Trying to do anything with a hard link is 
asking for trouble.  And making a duplicate then calling it a link is 
not very good for locking purposes.
==========================================================================
checking if libtool supports shared libraries... yes
checking if package supports dlls... no
checking whether to build shared libraries... no

QUESTION: Does this mean that the gcc package currently isn't set up to 
use DLL's?  WHAT'S THE IMPACT?  I know the Cygwin environment is able to 
build DLL's.

==========================================================================
checking for gnatbind... gnatbind
checking for compiler driver that understands Ada... 
/usr/local/gcc-3_2/bin//gcc.exe

THAT'S THE GOOD NEWS, Thanks, David!
==========================================================================
checking whether basename is declared... yes
=========================================^^^^ But see above 'checking 
for basename'

checking whether getopt is declared... no
=======================================^^^^ We do have one, don't we?

checking whether clock is declared... yes
==========================================================================

-- 
David A. Cobb, Software Engineer, Public Access Advocate
"By God's Grace I am a Christian man, by my actions a great sinner." -- The Way of a Pilgrim; R. M. French, tr.
Life is too short to tolerate crappy software.
.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/