Re: 11.0 -r301900 and cross builds: the transition from not using WITH_META_MODE=yes to using it still seems to require cleanworld between

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Wed, 15 Jun 2016 07:58:46 -0700
On 6/15/16 1:36 AM, Mark Millard wrote:
> On 2016-Jun-14, at 11:00 PM, Mark Millard <markmi at dsl-only.net> wrote:
> 
>> [The following is after having updated and booted the host amd64 environment to -r301900. The activity reported on is cross building targeting a rpi2 (armv7-a/cortex-a7). It is trying to go from not haivng used WITH_META_MODE=yes last time I cross built to now using WITH_META_MODE=yes this time.]
>>
>> Again when the prior buildworld buildkernel installkernel installworld mergemaster sequence was by omitting WITH_META_MODE=yes and then a rebuild buildworld buildkernel was attempted using WITH_META_MODE=yes I got the "sh: ./make_keys: Exec format error" notice:
>>
>>
>>> --- lib/ncurses/ncursesw__L ---
>>> --- init_keytry.h ---
>>> sh: ./make_keys: Exec format error
>>> *** [init_keytry.h] Error code 126
>>>

Ah yes, this is a bit of a special case that requires cleaning first.  I
think it should only happen from previously bad builds though (missing
recent fixes) rather than a cleanworld -> non-meta cross build -> meta
cross-build.

>>> make[4]: stopped in /usr/src/lib/ncurses/ncursesw
>>> .ERROR_TARGET='init_keytry.h'
>>> .ERROR_META_FILE='/usr/obj/clang/arm.armv6/usr/src/lib/ncurses/ncursesw/init_keytry.h.meta'
>>> .MAKE.LEVEL='4'
>>> MAKEFILE=''
>>> .MAKE.MODE='meta verbose missing-meta=yes silent=yes missing-filemon=yes meta verbose missing-meta=yes silent=yes missing-filemon=yes meta verbose missing-meta=yes silent=yes missing-filemon=yes meta verbose missing-meta=yes silent=yes missing-filemon=yes meta verbose missing-meta=yes silent=yes missing-filemon=yes'
>>> .CURDIR='/usr/src/lib/ncurses/ncursesw'
>>> .MAKE='make'
>>> .OBJDIR='/usr/obj/clang/arm.armv6/usr/src/lib/ncurses/ncursesw'
>>> .TARGETS='all'
>>> DESTDIR='/usr/obj/clang/arm.armv6/usr/src/tmp'
>>> LD_LIBRARY_PATH=''
>>> MACHINE='arm'
>>> MACHINE_ARCH='armv6'
>>> MAKEOBJDIRPREFIX='/usr/obj/clang/arm.armv6'
>>> MAKESYSPATH='/usr/src/share/mk'
>>> MAKE_VERSION='20160606'
>>> PATH='/usr/obj/clang/arm.armv6/usr/src/tmp/legacy/usr/sbin:/usr/obj/clang/arm.armv6/usr/src/tmp/legacy/usr/bin:/usr/obj/clang/arm.armv6/usr/src/tmp/legacy/bin:/usr/obj/clang/arm.armv6/usr/src/tmp/usr/sbin:/usr/obj/clang/arm.armv6/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
>>> SRCTOP='/usr/src'
>>> OBJTOP='/usr/obj/clang/arm.armv6/usr/src'
>>> .MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk /root/src.configs/src.conf.rpi2-clang-bootstrap.amd64-host /usr/src/share/mk/bsd.mkopt.mk /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /etc/src.conf /usr/src/lib/ncurses/ncursesw/Makefile /usr/src/lib/ncurses/ncursesw/../ncurses/Makefile /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/lib/ncurses/ncursesw/../config.mk /usr/src/share/mk/bsd.lib.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/lib/ncurses/ncursesw/../Makefile.inc /usr/src/lib/ncurses/ncursesw/../../Makefile.inc /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk /usr/src/share/mk/bsd.symver.mk /usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/share/mk/bsd.sys.mk'
>>> .PATH='. /usr/src/lib/ncurses/ncursesw /usr/src/lib/ncurses/ncursesw/../ncurses /usr/src/lib/ncurses/ncursesw/../../../contrib/ncurses/include /usr/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses/base /usr/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses/tinfo /usr/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses/tty /usr/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses/widechar /usr/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses/trace /usr/src/lib/ncurses/ncursesw/../../../contrib/ncurses/man'
>>> 1 error
>>
>> So I'm trying cleanworld using WITH_META_MODE=yes before trying buildworld buidlkernel using WITH_META_MODE=yes . . .
>>
>> I'll report later how this goes.
>>
>>
>> ===
>> Mark Millard
>> markmi at dsl-only.net
> 
> The WITH_META_MODE=yes based re-cross-build after cleanworld worked fine.
> 
> Immediately re-running the re-build using WITH_META_MODE=yes again also worked fine.
> 
> Rebuilding using WITH_META_MODE=yes yet again but after. . .
> 
>     To DESTDIR=/usr/obj/DESTDIRs/clang-rpi2-installkernelworld (-D for mergemaster):
> 
>     installkernel
>     mergemaster -FUp [no use of WITH_META_MODE=yes for mergemaster]
>     installworld
>     mergemaster -FUPi [no use of WITH_META_MODE=yes for mergemaster]
>     check-old
>     delete-old
> 
> also worked fine.
> 
> So as far as I can tell a first cross-build buildworld use of WITH_META_MODE=yes after having not used WITH_META_MODE=yes for the prior cross-build buildworld is the only place in the sequence needing an explicit cleanworld beforehand.
> 
> Cross-builds do seem to be working using WITH_META_MODE=yes now, at least for clang based cross-builds.
> 


Thank you for testing and posting this!


-- 
Regards,
Bryan Drewery
Received on Wed Jun 15 2016 - 12:58:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:05 UTC