[ -r321493 installworld's use of "head" during lib32 installation is still true for amd64 -> powerpc64 cross builds that uses devel/powerpc64-binutils for ld: that ld is also used . LOCAL_ITOOLS adding head is still a workaround.]
On 2017-Jul-5, at 12:36 PM, Bryan Drewery <bdrewery at FreeBSD.org> wrote: > On 6/29/17 6:21 PM, Mark Millard wrote: >> [I found where the tools are listed that are copied, >> the list that is missing head.] >> >> On 2017-Jun-29, at 3:33 PM, Mark Millard <markmi at dsl-only.net> wrote: >> >>> [This is a clang targetting powerpc64 context from my >>> experimentation efforts, not the normal gcc 4.2.1 context >>> for powerpc64.] >>> >>> I break out the PATH into lines below to make it easier to scan. >>> See the later "sh: head: not found" line and the even later ls >>> of the directory with the x86-64 program directory in use: no >>> "head" is present to find. >>> >>> --- install32 --- >>> cd /usr/src/lib; MACHINE=powerpc MACHINE_ARCH=powerpc >>> MAKEOBJDIRPREFIX=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/world32 >>> PATH=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/bin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr/sbin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr/bin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/bin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr/sbin >>> :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr/bin >>> :/tmp/install.7ljKosWa >>> SYSROOT=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 >>> LIBDIR=/usr/lib32 SHLIBDIR=/usr/lib32 DTRACE="dtrace" make >>> LD="/usr/local/powerpc64-freebsd/bin/ld -m elf32ppc_fbsd" >>> OBJCOPY="/usr/local/powerpc64-freebsd/bin/objcopy" >>> NM="/usr/local/powerpc64-freebsd/bin/nm" -DCOMPAT_32BIT CC="cc -target >>> powerpc64-unknown-freebsd12.0 >>> --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp >>> -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT -mcpu=powerpc -m32 >>> -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32 >>> >>> --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 >>> -B/usr/local/powerpc64-freebsd/bin/ >>> -B/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32" >>> CXX="c++ -target powerpc64-unknown-freebsd12.0 >>> --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp >>> -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT -mcpu=powerpc -m32 -L/ >>> usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32 >>> >>> --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 >>> -B/usr/local/powerpc64-freebsd/bin/ >>> -B/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32" >>> CPP="cpp -target powerpc64-unknown-freebsd12.0 >>> --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp >>> -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT -mcpu=powerpc -m32 >>> -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32 >>> >>> --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 >>> -B/usr/local/powerpc64-freebsd/bin/ >>> -B/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32" >>> -DNO_CPU_CFLAGS MK_CTF=no -DNO_LINT MK_TESTS=no MK_MAN=no MK_HTML=no >>> MK_TOOLCHAIN=no -DLIBRARIES_ONLY install >>> sh: head: not found >>> make[4]: "/usr/src/share/mk/bsd.linker.mk" line 47: Unable to determine >>> linker type from XLD=/usr/local/powerpc64-freebsd/bin/ld >>> *** [install32] Error code 1 >>> >>> # ls -lT /tmp/install.7ljKosWa/ >>> total 6151 >>> -r-xr-xr-x 1 root wheel 12592 Jun 29 14:02:46 2017 [ >>> -r-xr-xr-x 1 root wheel 207320 Jun 29 14:02:46 2017 awk >>> -r-xr-xr-x 1 root wheel 8456 Jun 29 14:02:46 2017 cap_mkdb >>> -r-xr-xr-x 1 root wheel 13272 Jun 29 14:02:46 2017 cat >>> . . . >>> -r-xr-xr-x 1 root wheel 57632 Jun 29 14:02:46 2017 find >>> -r-xr-xr-x 1 root wheel 99064 Jun 29 14:02:46 2017 grep >>> -r-xr-xr-x 1 root wheel 13360 Jun 29 14:02:46 2017 id >>> . . . >>> >>> So there is no "head" to find. Below uses "find" instead >>> to confirm the x86-64 ELF status: >>> >>> # file /tmp/install.7ljKosWa/find >>> /tmp/install.7ljKosWa/find: ELF 64-bit LSB executable, x86-64, version 1 >>> (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for >>> FreeBSD 12.0 (1200036), FreeBSD-style, stripped >>> >>> >>> >>> From /usr/src/share/mk/bsd.linker.mk : >>> >>> .if ${ld} == "LD" || (${ld} == "XLD" && ${XLD} != ${LD}) >>> .if !defined(${X_}LINKER_TYPE) || !defined(${X_}LINKER_VERSION) >>> _ld_version!= ${${ld}} --version 2>/dev/null | head -n 1 || echo none >>> .if ${_ld_version} == "none" >>> .error Unable to determine linker type from ${ld}=${${ld}} >>> .endif >>> >>> >>> Trying the failing line interactively (no PATH >>> like above though): >>> >>> # /usr/local/powerpc64-freebsd/bin/ld --version 2>/dev/null | head -n 1 || >>> echo none >>> GNU ld (GNU Binutils) 2.28 >>> >>> So /tmp/install.7ljKosWa/ just needed a copy of head >>> in addition to what it already had. >> >> In /usr/src/Makefile.inc1 : >> >> ITOOLS= [ awk cap_mkdb cat chflags chmod chown cmp cp \ >> date echo egrep find grep id install ${_install-info} \ >> ln make mkdir mtree mv pwd_mkdb \ >> rm sed services_mkdb sh strip sysctl test true uname wc ${_zoneinfo} \ >> ${LOCAL_ITOOLS} >> >> does not list "head" as a tool. >> >> But I can externally add it via LOCAL_ITOOLS use. >> > > This change should not be needed. We don't want to be running 'ld' > during installworld. The changes I made around this time should already > cover the problem. Is it still occurring on a more recent > buildworld+installworld, without the ITOOLS change? [Note: historically lld and the system ld do not work overall for powerpc64 targeting. Thus the use of devel/powerpc64-bintuils and its ld. ] First the error text then the Build Context follow. See the text: sh: head: not found make[4]: "/usr/src/share/mk/bsd.linker.mk" line 45: warning: "(/usr/local/powerpc64-freebsd/bin/ld --version || echo none) | head -n 1" returned non-zero status make[4]: "/usr/src/share/mk/bsd.linker.mk" line 56: warning: Unknown linker from XLD=/usr/local/powerpc64-freebsd/bin/ld: , defaulting to bfd in the later example. But first a clue about how many times the problem happens: # grep "head: not found" /root/sys_typescripts/typescript_make_powerpc64vtsc_nodebug_clang_altbinutils-amd64-host-2017-07-26:01:58:10 sh: head: not found sh: head: not found sh: head: not found sh: head: not found sh: head: not found sh: head: not found sh: head: not found Those are for: --- install32 --- --- realinstall_subdir_libunbound --- --- realinstall_subdir_libdialog --- --- realinstall_subdir_libzpool --- --- _libinstall --- --- realinstall_subdir_libgssapi_krb5 --- --- _installlinks --- One of the examples: --- realinstall_subdir_libgssapi_krb5 --- install -o root -g wheel -m 444 libgssapi_krb5.so.10.debug /usr/obj/DESTDIRs/clang-powerpc64-installworld_altbinutils/usr/lib/debug/usr/lib32/ install -l rs libgssapi_krb5.so.10 /usr/obj/DESTDIRs/clang-powerpc64-installworld_altbinutils/usr/lib32/libgssapi_krb5.so cd /usr/src/libexec/rtld-elf; PROG=ld-elf32.so.1 MACHINE=powerpc MACHINE_ARCH=powerpc MAKEOBJDIRPREFIX=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/world32 PATH=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/bin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr/bin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/bin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/sr c/tmp/usr/bin:/tmp/install.n3WUdktD SYSROOT=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 LIBDIR=/usr/lib32 SHLIBDIR=/usr/lib32 DTRACE="dtrace" make LD="/usr/local/powerpc64-freebsd/bin/ld -m elf32ppc_fbsd" OBJCOPY="/usr/local/powerpc64-freebsd/bin/objcopy" NM="/usr/local/powerpc64-freebsd/bin/nm" -DCOMPAT_32BIT CC="cc -target powerpc64-unknown-freebsd12.0 --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT -mcpu=powerpc -m32 -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32 --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 -B/usr/local/powerpc64-freebsd/bin/ -B/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32" CXX="c++ -target powerpc64-unknown-freebsd12.0 --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp -B/usr/local/powerpc64-freebsd/bin/ - DCOMPAT_32BIT -mcpu=powerpc -m32 -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32 --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 -B/usr/local/powerpc64-freebsd/bin/ -B/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32" CPP="cpp -target powerpc64-unknown-freebsd12.0 --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT -mcpu=powerpc -m32 -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32 --sysroot=/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32 -B/usr/local/powerpc64-freebsd/bin/ -B/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/usr/lib32" -DNO_CPU_CFLAGS MK_CTF=no -DNO_LINT MK_TESTS=no MK_MAN=no MK_HTML=no MK_TOOLCHAIN=no -DLIBRARIES_ONLY install sh: head: not found make[4]: "/usr/src/share/mk/bsd.linker.mk" line 45: warning: "(/usr/local/powerpc64-freebsd/bin/ld --version || echo none) | head -n 1" returned non-zero status make[4]: "/usr/src/share/mk/bsd.linker.mk" line 56: warning: Unknown linker from XLD=/usr/local/powerpc64-freebsd/bin/ld: , defaulting to bfd Build Context: ~/sys_build_scripts.amd64-host/make_powerpc64vtsc_nodebug_clang_altbinutils-amd64-host.sh -j8 installworld DESTDIR=/usr/obj/DESTDIRs/clang-powerpc64-installworld_altbinutils # more ~/sys_build_scripts.amd64-host/make_powerpc64vtsc_nodebug_clang_altbinutils-amd64-host.sh kldload -n filemon && \ script ~/sys_typescripts/typescript_make_powerpc64vtsc_nodebug_clang_altbinutils-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \ env __MAKE_CONF="/root/src.configs/make.conf" SRCCONF="/dev/null" SRC_ENV_CONF="/root/src.configs/src.conf.powerpc64-clang_altbinutils-bootstrap.amd64-host" \ WITH_META_MODE=yes \ MAKEOBJDIRPREFIX="/usr/obj/powerpc64vtsc_clang_altbinutils" \ # more /root/src.configs/make.conf CFLAGS.gcc+= -v # more /root/src.configs/src.conf.powerpc64-clang_altbinutils-bootstrap.amd64-host TO_TYPE=powerpc64 TOOLS_TO_TYPE=${TO_TYPE} VERSION_CONTEXT=12.0 # KERNCONF=GENERIC64vtsc-NODBG TARGET=powerpc .if ${.MAKE.LEVEL} == 0 TARGET_ARCH=${TO_TYPE} .export TARGET_ARCH .endif # WITH_CROSS_COMPILER= WITHOUT_SYSTEM_COMPILER= # WITH_LIBCPLUSPLUS= WITHOUT_BINUTILS_BOOTSTRAP= WITH_ELFTOOLCHAIN_BOOTSTRAP= WITH_CLANG_BOOTSTRAP= WITH_CLANG= WITH_CLANG_IS_CC= WITH_CLANG_FULL= WITH_CLANG_EXTRAS= WITHOUT_LLD_BOOTSTRAP= WITH_LLD= WITHOUT_LLD_IS_LD= WITH_LLDB= # WITH_BOOT= WITH_LIB32= # WITHOUT_GCC_BOOTSTRAP= WITHOUT_GCC= WITHOUT_GCC_IS_CC= WITHOUT_GNUCXX= # NO_WERROR= MALLOC_PRODUCTION= # # Avoid converts between pointers to integer types with different sign [-Werror,-Wpointer-sign] # and such from blocking the build. WERROR= # WITH_REPRODUCIBLE_BUILD= WITH_DEBUG_FILES= # # # For TO (so-called "cross") stages . . . # So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . . # TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related binutils. . . # CROSS_BINUTILS_PREFIX=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ .if ${.MAKE.LEVEL} == 0 # # Note: The WITH_CROSS_COMPILER picks up the CROSS_BINUTILS_PREFIX # binding automatically. # XAS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as XAR=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar XNM=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm XOBJCOPY=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy XOBJDUMP=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump XRANLIB=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib XSIZE=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size #NO-SUCH: XSTRINGS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings XSTRINGS=/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings .export XAS .export XAR .export XNM .export XOBJCOPY .export XOBJDUMP .export XRANLIB .export XSIZE .export XSTRINGS XLD=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld .export XLD .endif Note: clang 5 still does not produce code that handles thrown C++ exceptions for powerpc64: SIGSEGV results. Still I can build a useful world and kernel for powerpc64 based on how little throws C++ exceptions. I experiment with such things. === Mark Millard markmi at dsl-only.net _______________________________________________ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"