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] Build all host modules with bootstrapped compiler


This patch is part 2 of several cleanups resulting from recent
discussions between me, Alexandre Oliva, Nathanael Nerode, and Zack
Weinberg.

After this patch, configure will always enable the rules for build
tools, but the `all-build' targetis disabled and build modules are
built (sorry for the wording...) on demand, exclusively based on the
dependencies.  For this reason, this patch changes the dependencies on
bison, byacc, flex, texinfo to be host->build dependencies.

The host modules for bison, etc. will then be built with the new gcc.
So, toplevel bootstrap does not need anymore the prebootstrap phase
(all-prebootstrap stays there for non-toplevel bootstrap).

I've also updated the rules that use an in-tree bison, so that they
work with bison 1.50 or later.

I've left aside the build-libiberty issue for now.  It is more of a
separate project rather than something that can be done with a quick
patch like this.

Ok for gcc and src?

Paolo


2004-08-14  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (Dependencies): Depend on all-build-bison,
	all-build-flex, all-build-byacc, all-build-texinfo, rather
	than the host variations.
	* Makefile.tpl (BUILD_DIR_PREFIX): Remove.  Replace throughout
	with BUILD_SUBDIR.
	(BISON): Update for recent Bisons.
	(YACC): Fix typo.
	(cross): Depend on all-build.
	(all): Do not depend on all-build.
	(prebootstrap): Remove.
	(dep-kind): Accept separate prefixes for MODULE and ON variables.
	(Prebootstrap dependencies): Add them to the per-stage targets
	and to all-prebootstrap.
	* Makefile.in: Regenerate.
	* configure.in (build_configdirs): Always enable build_tools.
	(BUILD_DIR_PREFIX): Remove.


diff -ru gcc-backup/Makefile.def gcc/Makefile.def
*** gcc-backup/Makefile.def	2004-08-08 10:20:19.000000000 +0200
--- gcc/Makefile.def	2004-08-14 12:54:16.000000000 +0200
***************
*** 243,256 ****
  dependencies = { module=configure-gcc; on=configure-binutils; };
  dependencies = { module=configure-gcc; on=configure-gas; };
  dependencies = { module=configure-gcc; on=configure-ld; };
- dependencies = { module=configure-gcc; on=configure-bison; };
- dependencies = { module=configure-gcc; on=configure-flex; };
  dependencies = { module=all-gcc; on=all-libiberty; hard=true; };
  dependencies = { module=all-gcc; on=all-intl; };
! dependencies = { module=all-gcc; on=all-texinfo; };
! dependencies = { module=all-gcc; on=all-bison; };
! dependencies = { module=all-gcc; on=all-byacc; };
! dependencies = { module=all-gcc; on=all-flex; };
  dependencies = { module=all-gcc; on=all-binutils; };
  dependencies = { module=all-gcc; on=all-gas; };
  dependencies = { module=all-gcc; on=all-ld; };
--- 244,255 ----
  dependencies = { module=configure-gcc; on=configure-binutils; };
  dependencies = { module=configure-gcc; on=configure-gas; };
  dependencies = { module=configure-gcc; on=configure-ld; };
  dependencies = { module=all-gcc; on=all-libiberty; hard=true; };
  dependencies = { module=all-gcc; on=all-intl; };
! dependencies = { module=all-gcc; on=all-build-texinfo; };
! dependencies = { module=all-gcc; on=all-build-bison; };
! dependencies = { module=all-gcc; on=all-build-byacc; };
! dependencies = { module=all-gcc; on=all-build-flex; };
  dependencies = { module=all-gcc; on=all-binutils; };
  dependencies = { module=all-gcc; on=all-gas; };
  dependencies = { module=all-gcc; on=all-ld; };
***************
*** 270,277 ****
  dependencies = { module=all-gdb; on=all-bfd; };
  dependencies = { module=all-gdb; on=all-mmalloc; };
  dependencies = { module=all-gdb; on=all-readline; };
! dependencies = { module=all-gdb; on=all-bison; };
! dependencies = { module=all-gdb; on=all-byacc; };
  dependencies = { module=all-gdb; on=all-sim; };
  dependencies = { module=install-gdb; on=install-tcl; };
  dependencies = { module=install-gdb; on=install-tk; };
--- 271,278 ----
  dependencies = { module=all-gdb; on=all-bfd; };
  dependencies = { module=all-gdb; on=all-mmalloc; };
  dependencies = { module=all-gdb; on=all-readline; };
! dependencies = { module=all-gdb; on=all-build-bison; };
! dependencies = { module=all-gdb; on=all-build-byacc; };
  dependencies = { module=all-gdb; on=all-sim; };
  dependencies = { module=install-gdb; on=install-tcl; };
  dependencies = { module=install-gdb; on=install-tk; };
***************
*** 293,301 ****
  dependencies = { module=all-binutils; on=all-libiberty; };
  dependencies = { module=all-binutils; on=all-opcodes; };
  dependencies = { module=all-binutils; on=all-bfd; };
! dependencies = { module=all-binutils; on=all-flex; };
! dependencies = { module=all-binutils; on=all-bison; };
! dependencies = { module=all-binutils; on=all-byacc; };
  dependencies = { module=all-binutils; on=all-intl; };
  
  // We put install-opcodes before install-binutils because the installed
--- 294,302 ----
  dependencies = { module=all-binutils; on=all-libiberty; };
  dependencies = { module=all-binutils; on=all-opcodes; };
  dependencies = { module=all-binutils; on=all-bfd; };
! dependencies = { module=all-binutils; on=all-build-flex; };
! dependencies = { module=all-binutils; on=all-build-bison; };
! dependencies = { module=all-binutils; on=all-build-byacc; };
  dependencies = { module=all-binutils; on=all-intl; };
  
  // We put install-opcodes before install-binutils because the installed
***************
*** 317,325 ****
  dependencies = { module=all-ld; on=all-libiberty; };
  dependencies = { module=all-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-opcodes; };
! dependencies = { module=all-ld; on=all-bison; };
! dependencies = { module=all-ld; on=all-byacc; };
! dependencies = { module=all-ld; on=all-flex; };
  dependencies = { module=all-ld; on=all-intl; };
  
  dependencies = { module=all-opcodes; on=all-bfd; };
--- 318,326 ----
  dependencies = { module=all-ld; on=all-libiberty; };
  dependencies = { module=all-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-opcodes; };
! dependencies = { module=all-ld; on=all-build-bison; };
! dependencies = { module=all-ld; on=all-build-byacc; };
! dependencies = { module=all-ld; on=all-build-flex; };
  dependencies = { module=all-ld; on=all-intl; };
  
  dependencies = { module=all-opcodes; on=all-bfd; };
***************
*** 365,407 ****
  
  // Other host modules.
  dependencies = { module=all-fastjar; on=all-zlib; };
! dependencies = { module=all-fastjar; on=all-texinfo; };
  dependencies = { module=all-fastjar; on=all-libiberty; };
  
  // Warning, these are not well tested.
  dependencies = { module=all-autoconf; on=all-m4; };
! dependencies = { module=all-autoconf; on=all-texinfo; };
  dependencies = { module=all-automake; on=all-m4; };
! dependencies = { module=all-automake; on=all-texinfo; };
  dependencies = { module=all-automake; on=all-autoconf; };
  dependencies = { module=all-bison; on=all-intl; };
! dependencies = { module=all-bison; on=all-texinfo; };
  dependencies = { module=all-diff; on=all-intl; };
! dependencies = { module=all-diff; on=all-texinfo; };
  dependencies = { module=all-fileutils; on=all-intl; };
! dependencies = { module=all-fileutils; on=all-texinfo; };
! dependencies = { module=all-flex; on=all-bison; };
! dependencies = { module=all-flex; on=all-byacc; };
  dependencies = { module=all-flex; on=all-intl; };
  dependencies = { module=all-flex; on=all-m4; };
! dependencies = { module=all-flex; on=all-texinfo; };
  dependencies = { module=all-gzip; on=all-intl; };
  dependencies = { module=all-gzip; on=all-zlib; };
! dependencies = { module=all-gzip; on=all-texinfo; };
  dependencies = { module=all-hello; on=all-intl; };
! dependencies = { module=all-hello; on=all-texinfo; };
  dependencies = { module=all-m4; on=all-intl; };
! dependencies = { module=all-m4; on=all-texinfo; };
  dependencies = { module=all-make; on=all-intl; };
! dependencies = { module=all-make; on=all-texinfo; };
! dependencies = { module=all-patch; on=all-texinfo; };
! dependencies = { module=all-make; on=all-texinfo; };
  dependencies = { module=all-prms; on=all-libiberty; };
! dependencies = { module=all-recode; on=all-texinfo; };
! dependencies = { module=all-sed; on=all-texinfo; };
  dependencies = { module=all-send-pr; on=all-prms; };
! dependencies = { module=all-tar; on=all-texinfo; };
! dependencies = { module=all-uudecode; on=all-texinfo; };
  
  // Target modules.  These can also have dependencies on the language
  // environment (e.g. on libstdc++).
--- 366,408 ----
  
  // Other host modules.
  dependencies = { module=all-fastjar; on=all-zlib; };
! dependencies = { module=all-fastjar; on=all-build-texinfo; };
  dependencies = { module=all-fastjar; on=all-libiberty; };
  
  // Warning, these are not well tested.
  dependencies = { module=all-autoconf; on=all-m4; };
! dependencies = { module=all-autoconf; on=all-build-texinfo; };
  dependencies = { module=all-automake; on=all-m4; };
! dependencies = { module=all-automake; on=all-build-texinfo; };
  dependencies = { module=all-automake; on=all-autoconf; };
  dependencies = { module=all-bison; on=all-intl; };
! dependencies = { module=all-bison; on=all-build-texinfo; };
  dependencies = { module=all-diff; on=all-intl; };
! dependencies = { module=all-diff; on=all-build-texinfo; };
  dependencies = { module=all-fileutils; on=all-intl; };
! dependencies = { module=all-fileutils; on=all-build-texinfo; };
! dependencies = { module=all-flex; on=all-build-bison; };
! dependencies = { module=all-flex; on=all-build-byacc; };
  dependencies = { module=all-flex; on=all-intl; };
  dependencies = { module=all-flex; on=all-m4; };
! dependencies = { module=all-flex; on=all-build-texinfo; };
  dependencies = { module=all-gzip; on=all-intl; };
  dependencies = { module=all-gzip; on=all-zlib; };
! dependencies = { module=all-gzip; on=all-build-texinfo; };
  dependencies = { module=all-hello; on=all-intl; };
! dependencies = { module=all-hello; on=all-build-texinfo; };
  dependencies = { module=all-m4; on=all-intl; };
! dependencies = { module=all-m4; on=all-build-texinfo; };
  dependencies = { module=all-make; on=all-intl; };
! dependencies = { module=all-make; on=all-build-texinfo; };
! dependencies = { module=all-patch; on=all-build-texinfo; };
! dependencies = { module=all-make; on=all-build-texinfo; };
  dependencies = { module=all-prms; on=all-libiberty; };
! dependencies = { module=all-recode; on=all-build-texinfo; };
! dependencies = { module=all-sed; on=all-build-texinfo; };
  dependencies = { module=all-send-pr; on=all-prms; };
! dependencies = { module=all-tar; on=all-build-texinfo; };
! dependencies = { module=all-uudecode; on=all-build-texinfo; };
  
  // Target modules.  These can also have dependencies on the language
  // environment (e.g. on libstdc++).
diff -ru gcc-backup/Makefile.tpl gcc/Makefile.tpl
*** gcc-backup/Makefile.tpl	2004-08-08 10:20:19.000000000 +0200
--- gcc/Makefile.tpl	2004-08-14 13:25:54.000000000 +0200
***************
*** 243,285 ****
  
  CXX_FOR_BUILD = $(CXX)
  
- # Path to the build directory for a Canadian cross, empty otherwise.
- BUILD_DIR_PREFIX = @BUILD_DIR_PREFIX@
- 
  # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
  # here so that they can be overridden by Makefile fragments.
  BUILD_PREFIX = @BUILD_PREFIX@
  BUILD_PREFIX_1 = @BUILD_PREFIX_1@
  
  CONFIGURED_BISON = @CONFIGURED_BISON@
! BISON = `if [ -f $$r/$(BUILD_DIR_PREFIX)/bison/bison ] ; then \
! 	    echo $$r/$(BUILD_DIR_PREFIX)/bison/bison -L $$s/bison/ ; \
  	 else \
  	    echo ${CONFIGURED_BISON} ; \
  	 fi`
  
  CONFIGURED_YACC = @CONFIGURED_YACC@
! YACC = `if [ -f $$s/$(BUILD_DIR_PREFIX)/bison/bison ] ; then \
! 	    echo $$r/$(BUILD_DIR_PREFIX)/bison/bison -y -L $$s/bison/ ; \
! 	elif [ -f $$s/$(BUILD_DIR_PREFIX)/byacc/byacc ] ; then \
! 	    echo $$r/$(BUILD_DIR_PREFIX)/byacc/byacc ; \
  	else \
  	    echo ${CONFIGURED_YACC} ; \
  	fi`
  
  CONFIGURED_FLEX = @CONFIGURED_FLEX@
! FLEX = `if [ -f $$r/$(BUILD_DIR_PREFIX)/flex/flex ] ; \
! 	then echo $$r/$(BUILD_DIR_PREFIX)/flex/flex ; \
  	else echo ${CONFIGURED_FLEX} ; fi`
  
  CONFIGURED_LEX = @CONFIGURED_LEX@
! LEX = `if [ -f $$r/$(BUILD_DIR_PREFIX)/flex/flex ] ; \
! 	then echo $$r/$(BUILD_DIR_PREFIX)/flex/flex ; \
  	else echo ${CONFIGURED_LEX} ; fi`
  
  CONFIGURED_M4 = @CONFIGURED_M4@
! M4 = `if [ -f $$r/$(BUILD_DIR_PREFIX)/m4/m4 ] ; \
! 	then echo $$r/$(BUILD_DIR_PREFIX)/m4/m4 ; \
  	else echo ${CONFIGURED_M4} ; fi`
  
  # For an installed makeinfo, we require it to be from texinfo 4.2 or
--- 243,282 ----
  
  CXX_FOR_BUILD = $(CXX)
  
  # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
  # here so that they can be overridden by Makefile fragments.
  BUILD_PREFIX = @BUILD_PREFIX@
  BUILD_PREFIX_1 = @BUILD_PREFIX_1@
  
  CONFIGURED_BISON = @CONFIGURED_BISON@
! BISON = `if [ -f $$r/$(BUILD_SUBDIR)/bison/tests/bison ] ; then \
! 	    echo $$r/$(BUILD_SUBDIR)/bison/tests/bison ; \
  	 else \
  	    echo ${CONFIGURED_BISON} ; \
  	 fi`
  
  CONFIGURED_YACC = @CONFIGURED_YACC@
! YACC = `if [ -f $$r/$(BUILD_SUBDIR)/bison/tests/bison ] ; then \
! 	    echo $$r/$(BUILD_SUBDIR)/bison/tests/bison -y ; \
! 	elif [ -f $$r/$(BUILD_SUBDIR)/byacc/byacc ] ; then \
! 	    echo $$r/$(BUILD_SUBDIR)/byacc/byacc ; \
  	else \
  	    echo ${CONFIGURED_YACC} ; \
  	fi`
  
  CONFIGURED_FLEX = @CONFIGURED_FLEX@
! FLEX = `if [ -f $$r/$(BUILD_SUBDIR)/flex/flex ] ; \
! 	then echo $$r/$(BUILD_SUBDIR)/flex/flex ; \
  	else echo ${CONFIGURED_FLEX} ; fi`
  
  CONFIGURED_LEX = @CONFIGURED_LEX@
! LEX = `if [ -f $$r/$(BUILD_SUBDIR)/flex/flex ] ; \
! 	then echo $$r/$(BUILD_SUBDIR)/flex/flex ; \
  	else echo ${CONFIGURED_LEX} ; fi`
  
  CONFIGURED_M4 = @CONFIGURED_M4@
! M4 = `if [ -f $$r/$(BUILD_SUBDIR)/m4/m4 ] ; \
! 	then echo $$r/$(BUILD_SUBDIR)/m4/m4 ; \
  	else echo ${CONFIGURED_M4} ; fi`
  
  # For an installed makeinfo, we require it to be from texinfo 4.2 or
***************
*** 287,294 ****
  # makeinfo even if only the Makefile is there, because Texinfo builds its
  # manual when made, and it requires its own version.
  CONFIGURED_MAKEINFO = @CONFIGURED_MAKEINFO@
! MAKEINFO = `if [ -f $$r/$(BUILD_DIR_PREFIX)/texinfo/makeinfo/Makefile ] ; \
! 	then echo $$r/$(BUILD_DIR_PREFIX)/texinfo/makeinfo/makeinfo ; \
  	else if (${CONFIGURED_MAKEINFO} --version \
  	  | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])') >/dev/null 2>&1; \
          then echo ${CONFIGURED_MAKEINFO}; else echo $$s/missing makeinfo; fi; fi`
--- 284,291 ----
  # makeinfo even if only the Makefile is there, because Texinfo builds its
  # manual when made, and it requires its own version.
  CONFIGURED_MAKEINFO = @CONFIGURED_MAKEINFO@
! MAKEINFO = `if [ -f $$r/$(BUILD_SUBDIR)/texinfo/makeinfo/Makefile ] ; \
! 	then echo $$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo ; \
  	else if (${CONFIGURED_MAKEINFO} --version \
  	  | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])') >/dev/null 2>&1; \
          then echo ${CONFIGURED_MAKEINFO}; else echo $$s/missing makeinfo; fi; fi`
***************
*** 603,609 ****
  
  # The target built for a native non-bootstrap build.
  .PHONY: all
! all: unstage all-build all-host all-target stage
  
  .PHONY: all-build
  all-build: [+
--- 600,606 ----
  
  # The target built for a native non-bootstrap build.
  .PHONY: all
! all: unstage all-host all-target stage
  
  .PHONY: all-build
  all-build: [+
***************
*** 1249,1255 ****
  	$(MAKE) $(RECURSE_FLAGS_TO_PASS) all
  
  .PHONY: cross
! cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(SET_LIB_PATH) \
--- 1239,1245 ----
  	$(MAKE) $(RECURSE_FLAGS_TO_PASS) all
  
  .PHONY: cross
! cross: all-build all-gas all-ld
  	@r=`${PWD_COMMAND}`; export r; \
  	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
  	$(SET_LIB_PATH) \
***************
*** 1360,1371 ****
  # We only want to compare .o files, so set this!
  objext = .o
  
- # Real targets act phony if they depend on phony targets; this hack
- # prevents gratuitous rebuilding of stage 1.
- prebootstrap:
- 	$(MAKE) $(RECURSE_FLAGS_TO_PASS) all-prebootstrap
- 	$(STAMP) prebootstrap
- 
  # Flags to pass to stage2 and later makes.
  BOOT_CFLAGS= -g -O2
  POSTSTAGE1_FLAGS_TO_PASS = \
--- 1350,1355 ----
***************
*** 1417,1422 ****
  
! configure-stage[+id+]-[+module+]: [+ IF prev +] maybe-all-stage[+prev+]-[+module+] [+
!         ELSE +] prebootstrap [+ ENDIF prev +]
        $(MAKE) stage[+id+]-start
        @if [ -f stage[+id+]-[+module+]/Makefile ] ; then \
          $(STAMP) configure-stage[+id+]-[+module+] ; \
--- 1408,1412 ----
  
! configure-stage[+id+]-[+module+]: [+ IF prev +] maybe-all-stage[+prev+]-[+module+] [+ ENDIF prev +]
        $(MAKE) stage[+id+]-start
        @if [ -f stage[+id+]-[+module+]/Makefile ] ; then \
          $(STAMP) configure-stage[+id+]-[+module+] ; \
***************
*** 1589,1598 ****
        )))
  
     ;; make-dep builds a dependency from the MODULE and ON AutoGen vars.
!    (define make-dep (lambda (module-kind)
        (string-append
           (dep-target module-kind "module" #t) ": "
!          (dep-target module-kind "on" (exist? "hard")))))
  
     ;; dep-subtarget extracts everything up to the first dash in the given
     ;; AutoGen variable, for example it extracts "all-" out of "all-gcc".
--- 1572,1581 ----
        )))
  
     ;; make-dep builds a dependency from the MODULE and ON AutoGen vars.
!    (define make-dep (lambda (module-kind on-kind)
        (string-append
           (dep-target module-kind "module" #t) ": "
!          (dep-target on-kind "on" (exist? "hard")))))
  
     ;; dep-subtarget extracts everything up to the first dash in the given
     ;; AutoGen variable, for example it extracts "all-" out of "all-gcc".
***************
*** 1620,1642 ****
     ;; or if the LHS module is not bootstrapped.  It returns "bootstrap" for
     ;; configure or build dependencies between bootstrapped modules; it returns
     ;; "prebootstrap" for configure or build dependencies of bootstrapped
!    ;; modules on a non-bootstrapped modules (e.g. gcc on bison).  All this
     ;; is only necessary for host modules.
     (define dep-kind (lambda ()
!       (if (or (= (dep-subtarget "on") "install-")
! 	      (=* (dep-module "on") "build-")
! 	      (=* (dep-module "on") "target-"))
!           "normal"
! 
!           (if (hash-ref boot-modules (dep-module "module"))
!               (if (hash-ref boot-modules (dep-module "on"))
! 	          "bootstrap"
! 	          "prebootstrap")
! 	      "normal"))))
  
     ;; We now build the hash table that is used by dep-kind.
     (define boot-modules (make-hash-table 113))
-    (define preboot-modules (make-hash-table 37))
  +]
  
  [+ FOR host_modules +][+
--- 1603,1623 ----
     ;; or if the LHS module is not bootstrapped.  It returns "bootstrap" for
     ;; configure or build dependencies between bootstrapped modules; it returns
     ;; "prebootstrap" for configure or build dependencies of bootstrapped
!    ;; modules on a build module (e.g. all-gcc on all-build-bison).  All this
     ;; is only necessary for host modules.
     (define dep-kind (lambda ()
!       (if (and (hash-ref boot-modules (dep-module "module"))
! 	       (=* (dep-module "on") "build-"))
! 	  "prebootstrap"
! 
! 	  (if (or (= (dep-subtarget "on") "install-")
! 		  (=* (dep-module "on") "target-")
! 		  (not (hash-ref boot-modules (dep-module "module"))))
!               "normal"
! 	      "bootstrap"))
  
     ;; We now build the hash table that is used by dep-kind.
     (define boot-modules (make-hash-table 113))
  +]
  
  [+ FOR host_modules +][+
***************
*** 1649,1675 ****
  # to check for bootstrap/prebootstrap dependencies.  To resolve
  # prebootstrap dependencies, prebootstrap modules are gathered in
  # a hash table.
! [+ FOR dependencies +][+ (make-dep "") +]
! [+ CASE (dep-kind) +][+
!    == "prebootstrap"
!      +][+ (hash-create-handle! preboot-modules (dep-module "on") #t) "" +][+
!    == "bootstrap"
       +][+ FOR bootstrap_stage +]
! [+ (make-dep (dep-stage)) +][+
         ENDFOR bootstrap_stage +]
  [+ ESAC +][+
  ENDFOR dependencies +]
  
! # Now build the prebootstrap dependencies.
! [+ FOR host_modules +][+
!    IF (hash-ref preboot-modules (get "module")) +]
! all-prebootstrap: maybe-all-[+module+][+
!    ENDIF +][+
! ENDFOR host_modules +]
! 
! # Unless toplevel bootstrap is going, bootstrapped packages are actually
! # prebootstrapped, with the exception of gcc.  Another wart that will go
! # away with toplevel bootstrap.
  @if gcc-no-bootstrap
  [+ FOR host_modules +][+
     IF (and (not (= (get "module") "gcc"))
--- 1630,1651 ----
  # to check for bootstrap/prebootstrap dependencies.  To resolve
  # prebootstrap dependencies, prebootstrap modules are gathered in
  # a hash table.
! [+ FOR dependencies +][+ (make-dep "" "") +]
! [+ CASE (dep-kind) +]
! [+ == "prebootstrap"
!      +][+ FOR bootstrap_stage +]
! [+ (make-dep (dep-stage) "") +][+
!        ENDFOR bootstrap_stage +]
! all-prebootstrap: [+ (dep-target "" "on" (exist? "hard")) +]
! [+ == "bootstrap"
       +][+ FOR bootstrap_stage +]
! [+ (make-dep (dep-stage) (dep-stage)) +][+
         ENDFOR bootstrap_stage +]
  [+ ESAC +][+
  ENDFOR dependencies +]
  
! # Non-toplevel bootstrap rules must depend on several packages, to be built
! # before gcc.  Another wart that will go away, hopefully soon.
  @if gcc-no-bootstrap
  [+ FOR host_modules +][+
     IF (and (not (= (get "module") "gcc"))
diff -ru gcc-backup/configure.in gcc/configure.in
*** gcc-backup/configure.in	2004-08-08 10:20:19.000000000 +0200
--- gcc/configure.in	2004-08-14 13:28:47.000000000 +0200
***************
*** 183,192 ****
  ## ${target_configdirs} is directories we build using the target tools.
  configdirs=`echo ${host_libs} ${host_tools}`
  target_configdirs=`echo ${target_libraries} ${target_tools}`
  
! # Only make build modules if build != host.
  if test ${host_alias} != ${build_alias} ; then
    build_configdirs=`echo ${build_libs} ${build_tools}`
  fi
  
  ################################################################################
--- 183,194 ----
  ## ${target_configdirs} is directories we build using the target tools.
  configdirs=`echo ${host_libs} ${host_tools}`
  target_configdirs=`echo ${target_libraries} ${target_tools}`
  
! # Only make build libraries if build != host.
  if test ${host_alias} != ${build_alias} ; then
    build_configdirs=`echo ${build_libs} ${build_tools}`
+ else
+   build_configdirs=`echo ${build_tools}`
  fi
  
  ################################################################################
***************
*** 985,991 ****
    CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
    GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
    GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
-   BUILD_DIR_PREFIX=${build_subdir}
    BUILD_PREFIX=${build_alias}-
    BUILD_PREFIX_1=${build_alias}-
  
--- 979,984 ----
***************
*** 1000,1006 ****
  
    CC_FOR_BUILD="\$(CC)"
    GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
-   BUILD_DIR_PREFIX=
    BUILD_PREFIX=
    BUILD_PREFIX_1=loser-
  
--- 993,998 ----
***************
*** 2089,2095 ****
  # Miscellanea: directories, flags, etc.
  AC_SUBST(SET_LIB_PATH)
  AC_SUBST(RPATH_ENVVAR)
- AC_SUBST(BUILD_DIR_PREFIX)
  AC_SUBST(BUILD_PREFIX)
  AC_SUBST(BUILD_PREFIX_1)
  AC_SUBST(gcc_version_trigger)
--- 2085,2090 ----

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