Backed out rev.1.49. It broke bootstrapping from 2.1.5 2.2.7 and

probably other versions by spamming ${DESTDIR}/usr/include in much
the same way as `make includes'.

Details for 2.2.7: the bootstrap target has always done a weak spam
of ${DESTDIR}/usr/include; we depend on it not installing any
significant anachronisms (it probably shouldn't touch the headers
at all; however, we may be depending on it for things like the
renaming of ts_nsec to ts_sec in <sys/time.h>).  Rev.1.49 strengthens
the spam to everything in src/include.  For 2.2.7, this is not
immediately fatal.  However, the `make all' step in src/includes
is not followed by a `make clean' step, so new rpc headers are not
generated after we've bootstrapped rpcgen.  This causes a fatal
error much later when the old (generated) rpc headers are used with
the current headers (sys/types.h and/or the non-generated rpc
headers).

Details for 2.1.x: the bug is immediately fatal.  It gives definition
of errno that is not supported by 2.1.x's libc.  The weak spam in the
restored version avoids this problem by not installing errno.h.
(Bootstrapping from 2.1.5 actually breaks much earlier.)

I think the header problems supposedly fixed by rev.1.49 were caused
by using NOCLEAN and having the build fall over when the weakly
spammed headers are active.  Minor differences in the layout will
then cause the .depend files to point to nonexistent headers.  It
is a feature for symlinks like errno.h -> sys/errno.h to not exist
early.

The other change in rev.1.49 breaks building obj directories if NOCLEAN
is set.  It is only safe for _re_building with NOCLEAN set.
This commit is contained in:
Bruce Evans 1999-01-04 12:05:59 +00:00
parent 2bd69c5d34
commit 1ff0f342b7

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile.inc1,v 1.53 1998/12/30 12:06:07 bde Exp $
# $Id: Makefile.inc1,v 1.54 1999/01/01 08:45:43 peter Exp $
#
# Make command line options:
# -DCLOBBER will remove /usr/include
@ -266,12 +266,12 @@ buildworld: check-objformat
@echo ">>> Cleaning up the ${OBJFORMAT} obj tree"
@echo "--------------------------------------------------------------"
cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 ${CLEANDIR:S/^/par-/}
.endif
@echo
@echo "--------------------------------------------------------------"
@echo ">>> Rebuilding the ${OBJFORMAT} obj tree"
@echo "--------------------------------------------------------------"
cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 par-${OBJDIR}
.endif
.if !defined(NOTOOLS)
@echo
@echo "--------------------------------------------------------------"
@ -471,8 +471,18 @@ bootstrap:
.if defined(DESTDIR)
rm -f ${DESTDIR}/usr/src/sys
ln -s ${.CURDIR}/sys ${DESTDIR}/usr/src
cd ${.CURDIR}/include; ${MAKE} all
cd ${.CURDIR}/include; ${MAKE} beforeinstall
cd ${.CURDIR}/include; find -dx . | cpio -dump ${DESTDIR}/usr/include
.for d in net netatm netinet posix4 sys vm machine
if [ -h ${DESTDIR}/usr/include/$d ]; then \
rm -f ${DESTDIR}/usr/include/$d ; \
fi
.endfor
cd ${.CURDIR}/sys; \
find -dx net netatm netinet posix4 sys vm -name '*.h' -o -type d | \
cpio -dump ${DESTDIR}/usr/include
mkdir -p ${DESTDIR}/usr/include/machine
cd ${.CURDIR}/sys/${MACHINE_ARCH}/include; find -dx . -name '*.h' -o -type d | \
cpio -dump ${DESTDIR}/usr/include/machine
.endif
cd ${.CURDIR}/usr.bin/make; ${MAKE} ${MK_FLAGS} ${_DEPEND}; \
${MAKE} ${MK_FLAGS} all; \