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: Mark Millard <markmi_at_dsl-only.net>
Date: Wed, 15 Jun 2016 01:36:41 -0700
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
>> 
>> 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.


===
Mark Millard
markmi at dsl-only.net
Received on Wed Jun 15 2016 - 06:36:45 UTC

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