PATCH (for top-level): in-src configuration (still) broken
Loren James Rittle
rittle@latour.rsch.comm.mot.com
Tue Dec 9 11:45:00 GMT 2003
Hey Phil (directed at you since we last bantered about it---and I'd
still claim that you are somewhat on the hook to help me resolve it ;-),
Background: The ref5 tester has been down for ~3 months (only known
tester bootstrapping mainline with ./configure; breakage out of sight,
breakage out of mind). It is now back in action. Now that dailies
have been running, I see that in-src building is still broken (or
fixed then broken again)... Checking e-mail records, I see some
exchanges on the matter occurred at the end of August---right when
said tester went dead but we never reached a conclusion as to the best
fix. The failure is the dreaded:
gmake[4]: *** No rule to make target `[...]/gcc-build-ref5-1208-in/\
i386-unknown-freebsd5.2/libstdc++-v3/../gcc/gthr.h',\
needed by `i386-unknown-freebsd5.2/bits/gthr.h
This is the most robust patch I found to fix our problem. I say: "too
bad" to those people that want the staging for vanity's sake; now that
we dictate GNU make, it is time to reap some real benefits. Any
comments from fellow libstdc++-v3 maintainers before I ask the global
build machinery maintainers to approve/rework/reject it? Enforcing this
policy at top-level might also allow us to unhack numerous other
special cases in target-only libraries. Wouldn't that be special...
Full bootstrap w/ ./configure on i386-*-freebsd5.2 (first since auto- upgrade)
Full library rebuild w/ $srcdir/configure on i386-*-freebsd4.9
Of course, check and install (in libstdc++-v3) as well in both cases
with no regression.
Regards,
Loren
* 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 9 Dec 2003 07:40:05 -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 9 Dec 2003 07:40:05 -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