Date: Tue, 19 Apr 2016 15:15:51 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Bryan Drewery <bdrewery@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r298219 - head/share/mk Message-ID: <20160419121551.GX2422@kib.kiev.ua> In-Reply-To: <201604181814.u3IIE22P059301@repo.freebsd.org>
index | next in thread | previous in thread | raw e-mail
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.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160419121551.GX2422>
