From owner-cvs-gnu Wed Jan 1 17:15:40 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id RAA05976 for cvs-gnu-outgoing; Wed, 1 Jan 1997 17:15:40 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.8.4/8.8.4) with ESMTP id RAA05961; Wed, 1 Jan 1997 17:15:07 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.3/8.6.9) id MAA19106; Thu, 2 Jan 1997 12:10:34 +1100 Date: Thu, 2 Jan 1997 12:10:34 +1100 From: Bruce Evans Message-Id: <199701020110.MAA19106@godzilla.zeta.org.au> To: bde@freefall.freebsd.org, peter@spinner.DIALix.COM Subject: Re: cvs commit: src/gnu/usr.bin/genclass Makefile src/lib/csu/i386 Makefile Cc: cvs-all@freefall.freebsd.org, CVS-committers@freefall.freebsd.org, cvs-gnu@freefall.freebsd.org, cvs-lib@freefall.freebsd.org Sender: owner-cvs-gnu@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >> 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 The log message (in rev.1.16) doesn't give a reason. I think it was changed long before the c++rt0.o problem was noticed. I want this fixed completely (correct dependencies for all crt0.o's and libraries). Perhaps breaking it a little more will annoy someone enough to fix it properly. >${COPY} causes the problem to come back I think. If you really want to >preserve ${COPY} semantics, perhaps something remotely like this: > No. >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. Everything is supposed to depend in ${LIBCRT0} and all relevant static libraries. Of course, this is wrong for shared libraries. Bruce