PATCH (top-level build machinery, mainline, ping1): Fix in-src 'strap

Loren James Rittle rittle@latour.rsch.comm.mot.com
Tue Dec 16 12:09:00 GMT 2003


OK to install?  Or, perhaps, some considered rejection commentary
(i.e. we know this is a somewhat radical approach, if very
straightforward patch)?  Full bootstrap (w/ ./configure and
$srcdir/configure), check and install cycles on i386-*-freebsd5.2.

Background [shortened]: The upgrade to modern auto-tools broke
libstdc++-v3.  This proposal is to treat our library subdir as an
"objdir", no matter how gcc itself was configured and built.  (This is
hereby claimed safe since we now require GNU make.)  As a side effect,
this patch allows us to rip out many accumulated hacks in libstdc++-v3!

Regards,
Loren

PS, by implication, I hereby note that zero people have fully
bootstrapped gcc mainline in the last four months with an in-src
configuration; thus this patch helps or hurts about zero normal
developers.  However, from historical data, it removes a class of PRs
that I expect to receive once 3.4 is released, if nothing is done...

	* Makefile.def (target_modules) [libstdc++-v3]: Do not stage.
	* Makefile.tpl (configure-target-[+module+]): Support no_stage.
	* Makefile: Rebuilt.

Index: Makefile.def
===================================================================
RCS file: /cvs/gcc/gcc/Makefile.def,v
retrieving revision 1.10
diff -c -r1.10 Makefile.def
*** Makefile.def	23 Jun 2003 20:34:26 -0000	1.10
--- Makefile.def	10 Dec 2003 21:46:04 -0000
***************
*** 96,102 ****
                  missing=maintainer-clean; };
  host_modules= { module= utils; no_check=true; };
  
! target_modules = { module= libstdc++-v3; raw_cxx=true; };
  target_modules = { module= newlib; };
  target_modules = { module= libf2c; };
  target_modules = { module= libobjc; };
--- 96,102 ----
                  missing=maintainer-clean; };
  host_modules= { module= utils; no_check=true; };
  
! target_modules = { module= libstdc++-v3; raw_cxx=true; no_stage=true; };
  target_modules = { module= newlib; };
  target_modules = { module= libf2c; };
  target_modules = { module= libobjc; };
Index: Makefile.tpl
===================================================================
RCS file: /cvs/gcc/gcc/Makefile.tpl,v
retrieving revision 1.76
diff -c -r1.76 Makefile.tpl
*** Makefile.tpl	21 Nov 2003 00:39:03 -0000	1.76
--- Makefile.tpl	10 Dec 2003 21:46:04 -0000
***************
*** 983,989 ****
  	      .) topdir="../$(srcdir)" ;; \
  	      *) topdir="../../$(srcdir)" ;; \
  	    esac ;; \
! 	esac; \
  	if [ "$(srcdir)" = "." ] ; then \
  	  if [ "$(TARGET_SUBDIR)" != "." ] ; then \
  	    if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \
--- 983,990 ----
  	      .) topdir="../$(srcdir)" ;; \
  	      *) topdir="../../$(srcdir)" ;; \
  	    esac ;; \
! 	esac; \[+
! IF no_stage +][+ ELSE stage +]
  	if [ "$(srcdir)" = "." ] ; then \
  	  if [ "$(TARGET_SUBDIR)" != "." ] ; then \
  	    if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \
***************
*** 1004,1013 ****
  	  fi; \
  	  srcdiroption="--srcdir=."; \
  	  libsrcdir="."; \
! 	else \
  	  srcdiroption="--srcdir=$${topdir}/[+module+]"; \
! 	  libsrcdir="$$s/[+module+]"; \
! 	fi; \
  	rm -f no-such-file || : ; \
  	CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
  	  $(TARGET_CONFIGARGS) $${srcdiroption} \
--- 1005,1017 ----
  	  fi; \
  	  srcdiroption="--srcdir=."; \
  	  libsrcdir="."; \
! 	else \[+
! ENDIF no_stage +]
  	  srcdiroption="--srcdir=$${topdir}/[+module+]"; \
! 	  libsrcdir="$$s/[+module+]"; \[+
! IF no_stage +][+ ELSE stage +]
! 	fi; \[+
! ENDIF no_stage +]
  	rm -f no-such-file || : ; \
  	CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
  	  $(TARGET_CONFIGARGS) $${srcdiroption} \



More information about the Libstdc++ mailing list