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)
Bryan Drewery
bdrewery at FreeBSD.org
Wed Jul 5 19:36:13 UTC 2017
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?
>
> ===
> Mark Millard
> markmi at dsl-only.net
>
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-toolchain/attachments/20170705/32f502a7/attachment.sig>
More information about the freebsd-toolchain
mailing list