This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix bootstrap/30541, pass down GNATBIND and GNATMAKE
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 23 Jan 2007 16:51:52 +0100 (CET)
- Subject: [PATCH] Fix bootstrap/30541, pass down GNATBIND and GNATMAKE
This fixes the bootstrap problems I have with using alternate gnatbind
and gnatmake.
I bootstrapped and regtested this on x86_64-unknown-linux-gnu with
the default host ada (which is 3.3-hammer based) and bootstrapped it
on i686-pc-linux-gnu with specifying an alternate GNATBIND/GNATMAKE like
CC="gcc-4.1" GNATBIND="gnatbind-4.1" GNATMAKE="/tmp/gnatmake"
~/src/configure --enable-languages=ada
(gnatmake doesn't like to be called with '-4.1' appended, see PR29127)
and verified the build log to see it used gnatbind-4.1 during stage1 build
and the stage1 gnatbind for later stages. It now also uses the specified
gnatmake during bootstrap (and does not rely on a gnatmake being in
$PATH). But it uses the same gnatmake for all stages as it did previously
(noted as new enhancement PR30556).
This patch also get's rid of STAGE_PREFIX as the last users were removed
by it.
Ok for mainline? (I'm aware of some disagreement on whether to include
GNATLINK in the set of vars passed down, but the whole testing started
before that, so here we go without it for the moment)
Thanks,
Richard.
2007-01-23 Richard Guenther <rguenther@suse.de>
PR bootstrap/30541
* Makefile.def (flags_to_pass): Add GNATBIND and GNATMAKE.
* Makefile.tpl (GNATBIND): Substitute it.
(GNATMAKE): Likewise.
(POSTSTAGE1_FLAGS_TO_PASS): Pass staged GNATBIND instead
of STAGE_PREFIX.
* Makefile.in: Regenerate.
* config/acx.m4 (ACX_PROG_GNAT): Check for gnatmake.
* configure: Regenerate.
libada/
* Makefile.in (STAGE_PREFIX): Do not define.
(FLAGS_TO_PASS): Do not pass STAGE_PREFIX.
gnattools/
* Makefile.in (STAGE_PREFIX): Do not define.
ada/
* Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
(gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
(gnatboot3): Likewise.
(GNATBIND): Do not define.
* Makefile.in (GNATBIND): Do not define.
Index: Makefile.def
===================================================================
*** Makefile.def (revision 121080)
--- Makefile.def (working copy)
*************** flags_to_pass = { flag= LIBCXXFLAGS ; };
*** 237,242 ****
--- 237,244 ----
flags_to_pass = { flag= STAGE1_CFLAGS ; };
flags_to_pass = { flag= STAGE1_CHECKING ; };
flags_to_pass = { flag= STAGE1_LANGUAGES ; };
+ flags_to_pass = { flag= GNATBIND ; };
+ flags_to_pass = { flag= GNATMAKE ; };
// Target tools
flags_to_pass = { flag= AR_FOR_TARGET ; };
Index: Makefile.tpl
===================================================================
*** Makefile.tpl (revision 121080)
--- Makefile.tpl (working copy)
*************** RANLIB = @RANLIB@
*** 299,304 ****
--- 299,307 ----
STRIP = @STRIP@
WINDRES = @WINDRES@
+ GNATBIND = @GNATBIND@
+ GNATMAKE = @GNATMAKE@
+
CFLAGS = @CFLAGS@
LDFLAGS =
LIBCFLAGS = $(CFLAGS)
*************** X11_FLAGS_TO_PASS = \
*** 451,457 ****
POSTSTAGE1_FLAGS_TO_PASS = \
CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
! STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \
CFLAGS="$(BOOT_CFLAGS)" \
LIBCFLAGS="$(BOOT_CFLAGS)" \
LDFLAGS="$(BOOT_LDFLAGS)" \
--- 454,460 ----
POSTSTAGE1_FLAGS_TO_PASS = \
CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
! GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind" \
CFLAGS="$(BOOT_CFLAGS)" \
LIBCFLAGS="$(BOOT_CFLAGS)" \
LDFLAGS="$(BOOT_LDFLAGS)" \
Index: config/acx.m4
===================================================================
*** config/acx.m4 (revision 121080)
--- config/acx.m4 (working copy)
*************** ac_c_preproc_warn_flag=yes])# AC_PROG_CP
*** 330,340 ****
# understands Ada. We use the user's CC setting, already found.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
! # substitutes GNATBIND.
AC_DEFUN([ACX_PROG_GNAT],
[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
AC_REQUIRE([AC_PROG_CC])
AC_CHECK_TOOL(GNATBIND, gnatbind, no)
AC_CACHE_CHECK([whether compiler driver understands Ada],
acx_cv_cc_gcc_supports_ada,
[cat >conftest.adb <<EOF
--- 330,341 ----
# understands Ada. We use the user's CC setting, already found.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
! # substitutes GNATBIND and GNATMAKE.
AC_DEFUN([ACX_PROG_GNAT],
[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
AC_REQUIRE([AC_PROG_CC])
AC_CHECK_TOOL(GNATBIND, gnatbind, no)
+ AC_CHECK_TOOL(GNATMAKE, gnatmake, no)
AC_CACHE_CHECK([whether compiler driver understands Ada],
acx_cv_cc_gcc_supports_ada,
[cat >conftest.adb <<EOF
*************** if test x"$errors" = x && test -f confte
*** 355,361 ****
fi
rm -f conftest.*])
! if test x$GNATBIND != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
--- 356,362 ----
fi
rm -f conftest.*])
! if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
Index: gcc/ada/Make-lang.in
===================================================================
*** gcc/ada/Make-lang.in (revision 121080)
--- gcc/ada/Make-lang.in (working copy)
*************** ALL_ADA_CFLAGS = $(X_ADA_CFLAGS) $(T_ADA
*** 54,60 ****
ADA_INCLUDES = -I- -I. -Iada -I$(srcdir)/ada
ADA_INCLUDE_DIR = $(libsubdir)/adainclude
ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
- GNATBIND = $(STAGE_PREFIX)gnatbind
ADA_FLAGS_TO_PASS = \
"ADA_FOR_BUILD=$(ADA_FOR_BUILD)" \
"ADA_INCLUDE_DIR=$(ADA_INCLUDE_DIR)" \
--- 54,59 ----
*************** ada.tags: force
*** 384,390 ****
ada/doctools/xgnatugn$(build_exeext): ada/xgnatugn.adb
-$(MKDIR) ada/doctools
$(CP) $^ ada/doctools
! cd ada/doctools && gnatmake -q xgnatugn
# Note that gnat_ugn_unw.texi does not depend on xgnatugn
# being built so we can distribute a pregenerated gnat_ugn_unw.info
--- 383,389 ----
ada/doctools/xgnatugn$(build_exeext): ada/xgnatugn.adb
-$(MKDIR) ada/doctools
$(CP) $^ ada/doctools
! cd ada/doctools && $(GNATMAKE) -q xgnatugn
# Note that gnat_ugn_unw.texi does not depend on xgnatugn
# being built so we can distribute a pregenerated gnat_ugn_unw.info
*************** gnatboot2: force
*** 864,870 ****
CFLAGS="$(BOOT_CFLAGS)" \
ADAFLAGS="$(BOOT_ADAFLAGS)"\
LDFLAGS="$(BOOT_LDFLAGS)" \
! STAGE_PREFIX=../stage1/
$(MAKE) gnatboot3 BOOT_CFLAGS="$(BOOT_CFLAGS)" \
BOOT_ADAFLAGS="$(BOOT_ADAFLAGS)" \
LDFLAGS="$(BOOT_LDFLAGS)"
--- 863,869 ----
CFLAGS="$(BOOT_CFLAGS)" \
ADAFLAGS="$(BOOT_ADAFLAGS)"\
LDFLAGS="$(BOOT_LDFLAGS)" \
! GNATBIND="../stage1/gnatbind"
$(MAKE) gnatboot3 BOOT_CFLAGS="$(BOOT_CFLAGS)" \
BOOT_ADAFLAGS="$(BOOT_ADAFLAGS)" \
LDFLAGS="$(BOOT_LDFLAGS)"
*************** gnatboot3:
*** 875,881 ****
CFLAGS="$(BOOT_CFLAGS)" \
ADAFLAGS="$(BOOT_ADAFLAGS)"\
LDFLAGS="$(BOOT_LDFLAGS)" \
! STAGE_PREFIX=../stage2/
gnatstage1: force
-$(MKDIR) stage1
--- 874,880 ----
CFLAGS="$(BOOT_CFLAGS)" \
ADAFLAGS="$(BOOT_ADAFLAGS)"\
LDFLAGS="$(BOOT_LDFLAGS)" \
! GNATBIND="../stage2/gnatbind"
gnatstage1: force
-$(MKDIR) stage1
*************** ada/b_gnatb.o : ada/b_gnatb.c
*** 915,941 ****
ada/treeprs.ads : ada/treeprs.adt ada/sinfo.ads ada/xtreeprs.adb
-$(MKDIR) ada/bldtools/treeprs
$(CP) $^ ada/bldtools/treeprs
! (cd ada/bldtools/treeprs; gnatmake -q xtreeprs ; ./xtreeprs ../../treeprs.ads )
ada/einfo.h : ada/einfo.ads ada/einfo.adb ada/xeinfo.adb
-$(MKDIR) ada/bldtools/einfo
$(CP) $^ ada/bldtools/einfo
! (cd ada/bldtools/einfo; gnatmake -q xeinfo ; ./xeinfo ../../einfo.h )
ada/sinfo.h : ada/sinfo.ads ada/xsinfo.adb
-$(MKDIR) ada/bldtools/sinfo
$(CP) $^ ada/bldtools/sinfo
! (cd ada/bldtools/sinfo; gnatmake -q xsinfo ; ./xsinfo ../../sinfo.h )
ada/nmake.adb : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb
-$(MKDIR) ada/bldtools/nmake_b
$(CP) $^ ada/bldtools/nmake_b
! (cd ada/bldtools/nmake_b; gnatmake -q xnmake ; ./xnmake -b ../../nmake.adb )
ada/nmake.ads : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb ada/nmake.adb
-$(MKDIR) ada/bldtools/nmake_s
$(CP) $^ ada/bldtools/nmake_s
! (cd ada/bldtools/nmake_s; gnatmake -q xnmake ; ./xnmake -s ../../nmake.ads )
update-sources : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \
ada/nmake.ads
--- 914,940 ----
ada/treeprs.ads : ada/treeprs.adt ada/sinfo.ads ada/xtreeprs.adb
-$(MKDIR) ada/bldtools/treeprs
$(CP) $^ ada/bldtools/treeprs
! (cd ada/bldtools/treeprs; $(GNATMAKE) -q xtreeprs ; ./xtreeprs ../../treeprs.ads )
ada/einfo.h : ada/einfo.ads ada/einfo.adb ada/xeinfo.adb
-$(MKDIR) ada/bldtools/einfo
$(CP) $^ ada/bldtools/einfo
! (cd ada/bldtools/einfo; $(GNATMAKE) -q xeinfo ; ./xeinfo ../../einfo.h )
ada/sinfo.h : ada/sinfo.ads ada/xsinfo.adb
-$(MKDIR) ada/bldtools/sinfo
$(CP) $^ ada/bldtools/sinfo
! (cd ada/bldtools/sinfo; $(GNATMAKE) -q xsinfo ; ./xsinfo ../../sinfo.h )
ada/nmake.adb : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb
-$(MKDIR) ada/bldtools/nmake_b
$(CP) $^ ada/bldtools/nmake_b
! (cd ada/bldtools/nmake_b; $(GNATMAKE) -q xnmake ; ./xnmake -b ../../nmake.adb )
ada/nmake.ads : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb ada/nmake.adb
-$(MKDIR) ada/bldtools/nmake_s
$(CP) $^ ada/bldtools/nmake_s
! (cd ada/bldtools/nmake_s; $(GNATMAKE) -q xnmake ; ./xnmake -s ../../nmake.ads )
update-sources : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \
ada/nmake.ads
Index: gcc/ada/Makefile.in
===================================================================
*** gcc/ada/Makefile.in (revision 121080)
--- gcc/ada/Makefile.in (working copy)
*************** INSTALL_DATA_DATE = cp -p
*** 115,121 ****
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
TEXI2PDF = texi2pdf
- GNATBIND = $(STAGE_PREFIX)gnatbind
GNATBIND_FLAGS = -static -x
ADA_CFLAGS =
ADAFLAGS = -W -Wall -gnatpg -gnata
--- 115,120 ----
Index: libada/Makefile.in
===================================================================
*** libada/Makefile.in (revision 121080)
--- libada/Makefile.in (working copy)
*************** GNATLIBFLAGS= -W -Wall -gnatpg
*** 35,41 ****
THREAD_KIND=native
TRACE=no
LDFLAGS=
- STAGE_PREFIX=
# The tedious process of getting CFLAGS right.
CFLAGS=-g
--- 35,40 ----
*************** FLAGS_TO_PASS = \
*** 74,80 ****
"exeext=$(exeext)" \
"objext=$(objext)" \
"prefix=$(prefix)" \
- "STAGE_PREFIX=$(STAGE_PREFIX)" \
"CC=$(host_cc_for_libada)" \
"GCC_FOR_TARGET=$(CC)" \
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)"
--- 73,78 ----
Index: gnattools/Makefile.in
===================================================================
*** gnattools/Makefile.in (revision 121080)
--- gnattools/Makefile.in (working copy)
*************** TRACE=no
*** 38,44 ****
ADA_FOR_BUILD=
ADA_FOR_TARGET=
LDFLAGS=
- STAGE_PREFIX=
PWD_COMMAND = $${PWDCMD-pwd}
# The tedious process of getting CFLAGS right.
--- 38,43 ----