On 4/19/2016 5:15 AM, Konstantin Belousov wrote: > On Mon, Apr 18, 2016 at 06:14:02PM +0000, Bryan Drewery wrote: >> Author: bdrewery >> Date: Mon Apr 18 18:14:02 2016 >> New Revision: 298219 >> URL: https://svnweb.freebsd.org/changeset/base/298219 >> >> Log: >> Cause an error during 'make install' if trying to compile with CC. >> >> This is limited to src-tree builds, meaning not extended to ports or other >> out-of-tree builds. >> >> This will help ensure that read-only OBJDIRS will be respected at >> install-time >> by causing a more consistent failure for those who don't use a read-only >> OBJDIR. It also will cause Jenkins to yell. This is a better solution >> than >> trying to see CC=false as has been attempted and discussed before. >> >> Of course this is only relevant for files generated by CC. >> >> Disable this for META_MODE since it will detect the CFLAGS/command >> change and force a rebuild. >> >> Sponsored by: EMC / Isilon Storage Division >> >> Modified: >> head/share/mk/bsd.sys.mk >> >> Modified: head/share/mk/bsd.sys.mk >> ============================================================================== >> --- head/share/mk/bsd.sys.mk Mon Apr 18 18:13:58 2016 (r298218) >> +++ head/share/mk/bsd.sys.mk Mon Apr 18 18:14:02 2016 (r298219) >> @@ -178,6 +178,13 @@ ACFLAGS+= ${ACFLAGS.${.IMPSRC:T}} >> CFLAGS+= ${CFLAGS.${.IMPSRC:T}} >> CXXFLAGS+= ${CXXFLAGS.${.IMPSRC:T}} >> >> +.if defined(SRCTOP) >> +# Prevent rebuilding during install to support read-only objdirs. >> +.if make(install) && empty(.MAKE.MODE:Mmeta) >> +CFLAGS+= ERROR-tried-to-rebuild-during-make-install >> +.endif >> +.endif >> + >> # Tell bmake not to mistake standard targets for things to be searched for >> # or expect to ever be up-to-date. >> PHONY_NOTMAIN = analyze afterdepend afterinstall all beforedepend >> beforeinstall \ > > It seems to cause the following behaviour: > make buildenv > cd lib/libthr > # make DEBUG_FLAGS=-g WITHOUT_TESTS=yes all install > cc -O2 -pipe -DPTHREAD_KERNEL > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/../libc/include > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/thread > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/../../include > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/arch/amd64/include > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/sys > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/../../libexec/rtld-elf > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/../../libexec/rtld-elf/amd64 > -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/../libthread_db > -Winline -fexceptions -D_PTHREAD_FORCED_UNWIND -D_PTHREADS_INVARIANTS > -mno-mmx -mno-sse -mno-avx -g -MD -MP -MF.depend.thr_init.o -MTthr_init.o > -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W > -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes > -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body > -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare > -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function > -Wno-enum-conversion -Wno-unused-local-typedef -Qunused-arguments > ERROR-tried-to-rebuild-during-make-install -c > /usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/thread/thr_init.c -o > thr_init.o > cc: error: no such file or directory: > 'ERROR-tried-to-rebuild-during-make-install' > *** Error code 1 > > Stop. > make[3]: stopped in /usr/home/kostik/work/build/bsd/DEV/src/lib/libthr > > Doing separate steps for all and install targets work, but before, it also > worked and was convenient to list sequential targets on the make command > line. >
I'll address this soon. -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature