This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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

PATCH: Changing default for enable-nls uncovers two latent bugs


This recent patch:

2000-05-31  Philipp Thomas  <pthomas@suse.de>

        * configure.in (enable-nls): Enable if build == host, i.e. when 
        not building a canadian cross compiler.
        (enable-maintainer-mode): Added for use with i18n.
        * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
        cross section of ALL_LINGUAS and LINGUAS.
        * configure: Rebuild.

revealed two latent issues on some systems.  I see that there has been
much discussion of one of the issues on gcc-patches (void* memcpy()
verses void bcopy()).  Enough people have commented on that issue, so
I won't touch it. ;-)

Ah, the other latent issue: there is a "good" underlying reason why
systems with fully functional memcpy and the full completement of ISO
C headers have started to have problems bootstrapping: At one point
back in 1998, gcc/auto-config.h was renamed to gcc/auto-host.h
(revision 1.88 of gcc/configure.in).  All references to auto-config.h
were correctly removed (and/or changed to auto-host.h or
auto-build.h).  Then, the gcc2 branch was merged again (revision 1.201
of gcc/configure.in).  This reintroduced usage of auto-config.h back
into configure.in.  Not good.

It appears to me that the existing use of auto-config.h while creating
gcc/config.h in gcc/configure.in, could be converted to use auto-*.h .
It could be written to special case auto-host.h and auto-build.h
separately, if one prefers.  Otherwise, all files that get built in
the gcc tree that don't define IN_GCC yet rely on gcc/config.h will
lose.

Configured on i686-unknown-freebsdelf3.4.  The resulting gcc/config.h
file was checked by inspection.  I can't do a full bootstrap at the
moment due to the fact that whomever decided to throw the switch on
nls forgot to bootstrap the complete compiler collection: chill, java
and f77 driver programs will *not* *build* under the new default
configuration (clearly due to unknown nls-related symbols).  We can
forgive the fact that simple latent bugs existed and conspired to
cause havoc in this case on only a minor set of platforms.  But why
are people checking in major patches that affect many systems and
languages that *obviously* haven't been bootstrapped and checked with
'make bootstrap; make check' in a fully checked-out CVS tree?

2000-05-31  Loren J. Rittle  <ljrittle@acm.org>

	* configure.in (creating gcc/config.h): Handle all auto-*.h
	  files as special cases.
	* configure: Rebuilt.

Index: gcc/configure.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/configure.in,v
retrieving revision 1.382
diff -c -p -r1.382 configure.in
*** configure.in	2000/05/31 18:10:28	1.382
--- configure.in	2000/06/01 01:52:49
*************** do
*** 4054,4060 ****
  
  	for file in `eval echo '$'$var`; do
  		case $file in
! 		auto-config.h)
  			;;
  		*)
  			echo '#ifdef IN_GCC' >>$link
--- 4054,4060 ----
  
  	for file in `eval echo '$'$var`; do
  		case $file in
! 		auto-*.h)
  			;;
  		*)
  			echo '#ifdef IN_GCC' >>$link
*************** do
*** 4062,4068 ****
  		esac
  		echo "#include \"$file\"" >>$link
  		case $file in
! 		auto-config.h)
  			;;
  		*)
  			echo '#endif' >>$link
--- 4062,4068 ----
  		esac
  		echo "#include \"$file\"" >>$link
  		case $file in
! 		auto-*.h)
  			;;
  		*)
  			echo '#endif' >>$link

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