Date: Thu, 2 Jan 1997 12:10:34 +1100 From: Bruce Evans <bde@zeta.org.au> To: bde@freefall.freebsd.org, peter@spinner.DIALix.COM Cc: cvs-all@freefall.freebsd.org, CVS-committers@freefall.freebsd.org, cvs-gnu@freefall.freebsd.org, cvs-lib@freefall.freebsd.org Subject: Re: cvs commit: src/gnu/usr.bin/genclass Makefile src/lib/csu/i386 Makefile Message-ID: <199701020110.MAA19106@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701020110.MAA19106>
