head -r320458 (e.g.) amd64 -> powerpc64 cross build's install32 during installworld: /usr/src/share/mk/bsd.linker.mk tried to use "head" when PATH provided no access (head is missing)

Mark Millard markmi at dsl-only.net
Fri Jun 30 01:21:53 UTC 2017


[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.


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



More information about the freebsd-ppc mailing list