Skip site navigation (1)Skip section navigation (2)
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>
References:  <201604181814.u3IIE22P059301@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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
>=20
> Log:
>   Cause an error during 'make install' if trying to compile with CC.
>  =20
>   This is limited to src-tree builds, meaning not extended to ports or ot=
her
>   out-of-tree builds.
>  =20
>   This will help ensure that read-only OBJDIRS will be respected at insta=
ll-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=3Dfalse as has been attempted and discussed before.
>  =20
>   Of course this is only relevant for files generated by CC.
>  =20
>   Disable this for META_MODE since it will detect the CFLAGS/command
>   change and force a rebuild.
>  =20
>   Sponsored by:	EMC / Isilon Storage Division
>=20
> Modified:
>   head/share/mk/bsd.sys.mk
>=20
> Modified: head/share/mk/bsd.sys.mk
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- 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+=3D	${ACFLAGS.${.IMPSRC:T}}
>  CFLAGS+=3D	${CFLAGS.${.IMPSRC:T}}
>  CXXFLAGS+=3D	${CXXFLAGS.${.IMPSRC:T}}
> =20
> +.if defined(SRCTOP)
> +# Prevent rebuilding during install to support read-only objdirs.
> +.if make(install) && empty(.MAKE.MODE:Mmeta)
> +CFLAGS+=3D	ERROR-tried-to-rebuild-during-make-install
> +.endif
> +.endif
> +
>  # Tell bmake not to mistake standard targets for things to be searched f=
or
>  # or expect to ever be up-to-date.
>  PHONY_NOTMAIN =3D analyze afterdepend afterinstall all beforedepend befo=
reinstall \

It seems to cause the following behaviour:
make buildenv
cd lib/libthr
# make DEBUG_FLAGS=3D-g WITHOUT_TESTS=3Dyes 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/l=
ibthr/thread  -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/../../in=
clude -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/arch/amd64/inclu=
de -I/usr/home/kostik/work/build/bsd/DEV/src/lib/libthr/sys -I/usr/home/kos=
tik/work/build/bsd/DEV/src/lib/libthr/../../libexec/rtld-elf -I/usr/home/ko=
stik/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 -fex=
ceptions -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=3Dgnu99 -Wsyst=
em-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-=
prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-poi=
nter-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -=
Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-u=
nused-function -Wno-enum-conversion -Wno-unused-local-typedef  -Qunused-arg=
uments  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-i=
nstall'
*** 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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160419121551.GX2422>