On 2016-Jul-8, at 12:23 AM, Mark Millard <mar...@dsl-only.net> wrote --but with 
a few []'d notes added:

> [Before the below cross build/update attempt I updated my amd64 from -r302331 
> -> -r302412.]
> 
> Summary: It appears that WITHOUT_META_MODE= still needs to be forced for 
> cross compiles at least sometimes in order to avoid "Exec format error". man 
> src.conf only mentions WITHOUT_META_MODE= in one place:
> 
>>     WITH_DIRDEPS_BUILD
> . . .
>>             WITH_META_MODE (unless WITHOUT_META_MODE is set explicitly)
> . . .
>>             This must be set in the environment, make command line, or
>>             /etc/src-env.conf, not /etc/src.conf.
> 
> 
> In attempting to update my cross build (amd64 -> armv6 [or powerpc64]) from 
> -r302331 to -r302412 it failed with [armv6 example]:
> 
>> --- 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 missing-filemon=yes missing-meta=yes silent=yes verbose'
>> .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
> 
> again.
> 
> This was based on:
> 
>> # more 
>> ~/sys_build_scripts.amd64-host/make_rpi2_nodebug_clang_bootstrap-amd64-host.sh
>>  
>> kldload -n filemon && \
>> script 
>> ~/sys_typescripts/typescript_make_rpi2_nodebug_clang_bootstrap-amd64-host-$(date
>>  +%Y-%m-%d:%H:%M:%S) \
>> env __MAKE_CONF="/root/src.configs/make.conf" 
>> SRC_ENV_CONF="/root/src.configs/src.conf.rpi2-clang-bootstrap.amd64-host" \
>> WITH_META_MODE=yes \
>> MAKEOBJDIRPREFIX="/usr/obj/clang" \
>> make $*
> 
> and. . .
> 
>> # more ~/src.configs/src.conf.rpi2-clang-bootstrap.amd64-host 
>> TO_TYPE=armv6
>> #
>> KERNCONF=RPI2-NODBG
>> TARGET=arm
>> .if ${.MAKE.LEVEL} == 0
>> TARGET_ARCH=${TO_TYPE}
>> .export TARGET_ARCH
>> .endif
>> #
>> WITH_CROSS_COMPILER=
>> WITHOUT_SYSTEM_COMPILER=
>> #
>> #CPUTYPE=soft
>> WITH_LIBCPLUSPLUS=
>> WITH_BINUTILS_BOOTSTRAP=
>> WITH_CLANG_BOOTSTRAP=
>> WITH_CLANG=
>> WITH_CLANG_IS_CC=
>> WITH_CLANG_FULL=
>> WITH_CLANG_EXTRAS=
>> WITH_LLDB=
>> #
>> WITH_BOOT=
>> WITHOUT_LIB32=
>> WITHOUT_LIBSOFT=
>> #
>> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
>> WITHOUT_GCC_BOOTSTRAP=
>> WITHOUT_GCC=
>> WITHOUT_GCC_IS_CC=
>> WITHOUT_GNUCXX=
>> #
>> NO_WERROR=
>> #WERROR=
>> MALLOC_PRODUCTION=
>> #
>> WITH_DEBUG_FILES=
>> #
>> XCFLAGS+= -march=armv7-a -mcpu=cortex-a7
>> XCXXFLAGS+= -march=armv7-a -mcpu=cortex-a7
> 
> make.conf was empty.
> 
> The earlier -r302331 cross build had WITH_LIBSOFT= in use. -r302412 is my 
> first testing of WITHOUT_LIBSOFT= after rebuilding all ports to avoid 
> libsoft. [Does not apply to the powerpc64 example.]

I should have mentioned the alternative of keeping WITH_META_MODE=yes but doing 
a cleanworld before doing a separate buildworld. This is generally handier if 
one is to keep using WITH_META_MODE=yes .

===
Mark Millard
markmi at dsl-only.net


_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to