DragonFly bugs List (threaded) for 2005-08
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: make nrelease CCVER issues
Simon 'corecode' Schubert wrote:
hey,
some people already wondered (including me) about why you had to set
CCVER=gcc34 manually when building -Devel nrelease isos on -Release.
This is the situation:
release1.2:/usr/src/nrelease % echo $CCVER
CCVER: Undefined variable.
release1.2:/usr/src/nrelease % grep CCVER /etc/make.conf
release1.2:/usr/src/nrelease % make release
...
( cd /usr/src/nrelease/..; CCVER=gcc2 make buildworld )
...
>>> stage 4a: populating /usr/obj/usr/src/world_i386/usr/include
...
===> include/rpcsvc
rpcgen -C -h -DWANT_NFS3 /usr/src/include/rpcsvc/key_prot.x -o key_prot.h
cpp: in path [/usr/obj/usr/src/ctools_i386_i386]/usr/libexec/gcc2/cpp:
No such file or directory
*** Error code 1
...
So, why does it pass CCVER=gcc2? This is because:
release1.2:/usr/src % grep ^CCVER /usr/share/mk/bsd.cpu.mk
CCVER ?= gcc2
Okay. This is a default setting for building when no CCVER is set. This
should be overridden for -Devel builds. It is!
release1.2:/usr/src % tail Makefile
#
# Build compatibility overrides
#
.ifdef CCVER
.if ${CCVER} == "gcc2"
CCVER= gcc34
.endif
.endif
It replaces CCVER=gcc2 with CCVER=gcc34! Still this doesn't work (see
above). This is why:
% cat Makefile
FOO?= gcc2
.makeenv FOO
.if ${FOO} == "gcc2"
FOO= gcc34
.endif
all:
@echo FOO=${FOO}, env FOO=$${FOO}
% make
FOO=gcc34, env FOO=gcc34
% make FOO=gcc2
FOO=gcc2, env FOO=gcc2
% env FOO=gcc2 make
FOO=gcc34, env FOO=gcc2
Bug! It sets (internally) FOO to the override "gcc34", but the env FOO
doesn't change! And as src/Makefile is just a wrapper which execs
make -f Makefile.inc1, the CCVER=gcc34 override setting doesn't get
propagated. Everything else uses CCVER=gcc2 again.
How do we solve this?
cheers
simon
Hmmm... I will look into that.
Max
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]