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.
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to