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]
Other format: [Raw text]

[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 ----


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