MK_KERNEL_SYMBOLS can't be set by a user
Arthur Chance
freebsd at qeng-ho.org
Mon Nov 10 10:50:03 UTC 2014
On 09/11/2014 20:56, Rick Miller wrote:
> On Sat, Nov 8, 2014 at 5:53 AM, Arthur Chance <freebsd at qeng-ho.org> wrote:
>
>> On 07/11/2014 19:57, Rick Miller wrote:
>>
>>> Hi all,
>>>
>>> In order to port openstack image support into an internal releng/10.0
>>> branch the following files were copied from HEAD to the internal branch:
>>>
>>> release/release.conf
>>> release/release.sh
>>> release/Makefile
>>> release/amd64/mk-vmimage.sh
>>>
>>> Some modifications were made to release.conf such as CHROOTDIR, SRCBRANCH,
>>> NODOC, and NOPORTS...nothing major. release.sh errors in the system
>>> target
>>> with the following:
>>>
>>> touch packagesystem
>>> rm -rf ftp
>>> mkdir -p ftp
>>> cp *.txz MANIFEST ftp
>>> mkdir -p release
>>> cd /usr/src/release/.. && make TARGET_ARCH=amd64 TARGET=amd64
>>> installkernel
>>> installworld distribution DESTDIR=/usr/obj/usr/src/release/release
>>> MK_RESCUE=no MK_KERNEL_SYMBOLS=no MK_PROFILE=no MK_SENDMAIL=no
>>> MK_TESTS=no
>>> MK_LIB32=no MK_DEBUG_FILES=no
>>> make[3]: "/usr/src/share/mk/bsd.own.mk" line 457: MK_KERNEL_SYMBOLS can't
>>> be set by a user.
>>> *** Error code 1
>>>
>>> Stop.
>>> make[2]: stopped in /usr/src
>>> *** Error code 1
>>>
>>> Stop.
>>> make[1]: stopped in /usr/src/release
>>> *** Error code 1
>>>
>>> Stop.
>>> make: stopped in /usr/src/release
>>>
>>> What scenarios would result in this sort of failure?
>>>
>>>
>> As the error message says, users can't/mustn't set MK_* symbols. You're
>> supposed to set WITH_* or WITHOUT_* symbols in /etc/src.conf and the
>> makefiles convert those to MK_* form.
>>
>> See man src.conf for details.
>>
>
> Thanks...this was helpful in resolving the error though not through
> src.conf. The Makefile implemented these options using the form MK_* as
> opposed to WITHOUT_*. Changing Makefile accordingly resolved the error.
/usr/src Makefiles use MK_ internally, but users are not supposed to
touch them. That's why /usr/src/share/mk/bsd.own.mk has a lot of code to
convert WITH_/WITHOUT_ variables to MK_ form, applying suitable defaults
for each architecture.
/usr/src/release/Makefile seems to be a special case, and sits over the
normal /usr/src/... Makefiles, hence it's use of WITHOUT_ forms.
> Review of the same Makefile in the releng/10.0 and releng/10.1 branches
> shows they use the form WITHOUT_*. Does this signal that FreeBSD 11.x will
> implement MK_* instead or does this change to WITHOUT_* for the releng/
> branches?
I've no idea about -CURRENT, I never use anything riskier than -STABLE.
You'd be better off asking about this in freebsd-current@
More information about the freebsd-questions
mailing list