From owner-svn-src-head@freebsd.org Thu Apr 21 18:22:37 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DEFE7B17DF6; Thu, 21 Apr 2016 18:22:37 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id CBE7C1DCB; Thu, 21 Apr 2016 18:22:37 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id C005D11BA; Thu, 21 Apr 2016 18:22:37 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 75587217E5; Thu, 21 Apr 2016 18:22:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id 3c_uN-r-MwZ5; Thu, 21 Apr 2016 18:22:33 +0000 (UTC) Subject: Re: svn commit: r298219 - head/share/mk DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 167B3217D8 To: Konstantin Belousov References: <201604181814.u3IIE22P059301@repo.freebsd.org> <20160419121551.GX2422@kib.kiev.ua> <5718FC0C.7040604@FreeBSD.org> <20160421181937.GO2422@kib.kiev.ua> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Bryan Drewery Organization: FreeBSD Message-ID: <57191A66.2050602@FreeBSD.org> Date: Thu, 21 Apr 2016 11:22:30 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <20160421181937.GO2422@kib.kiev.ua> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Apr 2016 18:22:38 -0000 On 4/21/16 11:19 AM, Konstantin Belousov wrote: > On Thu, Apr 21, 2016 at 09:13:00AM -0700, Bryan Drewery wrote: >> On 4/19/16 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 >> >> By the way, since r295646 it should be safe to use -j here. Let me know >> if you run into trouble with it. > You mean, that install -j does the right thing now ? Thanks. I mean 'make -j all install' should build in parallel before installing. > >> >>> 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-comp a r >> e >> -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. >>> >> >> Fixed in r298413. > > Yes, make all install worked. > > Still, I do not think that the revision would help for any other target > used in-line with install. I believe it is sometimes useful, but more > rare than all install idiom. > Yes it won't work if you do something like 'make foo.o install' or 'make progname install' etc. I am likely going to rework this to be a flag passed in installworld to activate it rather than checking for make(install). -- Regards, Bryan Drewery