This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
PATCH (top-level build machinery, mainline, ping1): Fix in-src 'strap
- From: Loren James Rittle <rittle at latour dot rsch dot comm dot mot dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: libstdc++ at gcc dot gnu dot org
- Date: Tue, 16 Dec 2003 06:09:50 -0600 (CST)
- Subject: PATCH (top-level build machinery, mainline, ping1): Fix in-src 'strap
- Reply-to: rittle at labs dot mot dot com
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} \