From owner-cvs-gnu Wed Jan 1 01:27:17 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id BAA20741 for cvs-gnu-outgoing; Wed, 1 Jan 1997 01:27:17 -0800 (PST) Received: from spinner.DIALix.COM (root@spinner.DIALix.COM [192.203.228.67]) by freefall.freebsd.org (8.8.4/8.8.4) with ESMTP id BAA20735; Wed, 1 Jan 1997 01:26:50 -0800 (PST) Received: from spinner.DIALix.COM (peter@localhost.DIALix.oz.au [127.0.0.1]) by spinner.DIALix.COM (8.8.4/8.8.4) with ESMTP id RAA02608; Wed, 1 Jan 1997 17:26:31 +0800 (WST) Message-Id: <199701010926.RAA02608@spinner.DIALix.COM> X-Mailer: exmh version 2.0beta 12/23/96 To: Bruce Evans cc: CVS-committers@freefall.freebsd.org, cvs-all@freefall.freebsd.org, cvs-lib@freefall.freebsd.org, cvs-gnu@freefall.freebsd.org Subject: Re: cvs commit: src/gnu/usr.bin/genclass Makefile src/lib/csu/i386 Makefile In-reply-to: Your message of "Tue, 31 Dec 1996 20:52:56 PST." <199701010452.UAA13241@freefall.freebsd.org> Date: Wed, 01 Jan 1997 17:26:31 +0800 From: Peter Wemm Sender: owner-cvs-gnu@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Bruce Evans wrote: > bde 96/12/31 20:52:56 > > Modified: gnu/usr.bin/genclass Makefile > lib/csu/i386 Makefile > Log: > Use ${COPY} instead of -C for installing non-source files. crt*.o > should be installed using the same flag as libraries, but ${COPY} > is currently used for libraries. Ahh, now I remember why the crt stuff is installed with -C.. It's because c++rt.o is linked into dynamic and static libs, so doing a 'make install' in csu/i386 used to cause a large scale relink next time around. Or something like that.. I remember it was originally changed from "install -c" to "cmp -s || install -c" specifically to stop this problem. Changing it back to ${COPY} causes the problem to come back I think. If you really want to preserve ${COPY} semantics, perhaps something remotely like this: .if ${COPY} != -c ${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 $i \ ${DESTDIR}/usr/lib .else ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 $i \ ${DESTDIR}/usr/lib .endif Hmm.. in bsd.prog.mk, sometime ${PROG} is dependent on ${LIBCRT0}, sometimes not. It looks like this is incomplete, it should be dependent on the static crt0 when linking static, and should still be dependent on the crt0 object for all the other cases too, otherwise a 'make' would miss an update to crt0.o. Cheers, -Peter