This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: Changing default for enable-nls uncovers two latent bugs
- To: gcc-patches at gcc dot gnu dot org
- Subject: PATCH: Changing default for enable-nls uncovers two latent bugs
- From: Loren James Rittle <rittle at latour dot rsch dot comm dot mot dot com>
- Date: Wed, 31 May 2000 21:54:31 -0500 (CDT)
- CC: pthomas at suse dot de
- Reply-to: rittle at rsch dot comm dot mot dot com
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