Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 May 2018 18:04:00 -0700
From:      Mark Millard <marklmi26-fbsd@yahoo.com>
To:        Bryan Drewery <bdrewery@FreeBSD.org>
Cc:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: Still true at -r333575 : 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)
Message-ID:  <67D92B43-5124-4EDF-BA26-26CE8B082FE7@yahoo.com>
In-Reply-To: <9086ff35-009b-c965-4970-3f8ad4fe6e6b@FreeBSD.org>
References:  <0E42D991-D350-4DC1-A683-CEA506167520@dsl-only.net> <AF2592BC-2409-4B73-A8A8-50C999957231@dsl-only.net> <d6971b8c-06a3-afdc-a6b0-788dbe0890f2@FreeBSD.org> <8F22B659-90DE-42E5-B4C6-75C9B9626462@dsl-only.net> <8EB87EA5-0ED6-4F46-80FC-1A0DB29CF7D6@dsl-only.net> <84A73CB0-CBCB-4EE4-A4B7-B8B2F25EECB5@yahoo.com> <9086ff35-009b-c965-4970-3f8ad4fe6e6b@FreeBSD.org>

index | next in thread | previous in thread | raw e-mail

On 2018-May-14, at 5:04 PM, Bryan Drewery <bdrewery at FreeBSD.org> wrote:

> On 5/13/2018 1:13 AM, Mark Millard wrote:
>> Retrying the amd64 -> powerpc64 cross build via a powerpc64-gcc
>> this time, combined with WITH_LIB32= , got: "sh: head: not found" and its
>> later consequences, like before for installworld (to a directory on the
>> amd64 host context). This is from the /usr/src/share/mk/bsd.linker.mk line
>> that results in:
>> 
>> (/usr/local/powerpc64-freebsd/bin/ld --version || echo none) | head -n 1
>> 
>> but head is not available by default at the time (lib32 context). (I make
>> head be available via using LOCAL_ITOOLS=head in order to work around the
>> issue.)
>> 
>> An example of the messages (without having LOCAL_ITOOLS=head) is:
>> 
>> --- _installlinks ---
>> install -l s  ../../libexec/ld-elf32.so.1 /usr/obj/DESTDIRs/xtcgcc-powerpc64-installworld/usr/libexec/ld-elf32.so.1
>> cd /usr/src/usr.bin/ldd; PROG=ldd32 . . .
>> . . .
>> . . . MAKEOBJDIRPREFIX= 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: warning: "(/usr/local/powerpc64-unknown-freebsd12.0/bin/ld --version || echo none) | head -n 1" returned non-zero status
>> make[4]: "/usr/src/share/mk/bsd.linker.mk" line 58: warning: Unknown linker from XLD=/usr/local/powerpc64-unknown-freebsd12.0/bin/ld: , defaulting to bfd
>> 
>> 
>> The two "make[4]" lines are consequences of the prior "sh: head: not found"
>> issue that leaded to a "non-zero status" independent of the prior "--version"
>> and "echo none" material. It then leads to assuming bfd.
>> 
>> Using LOCAL_ITOOLS=head makes head available and so then the status value
>> check works.
>> 
> 
> Sure but this command being executed never should be executing during
> install; Adding 'head' as a tool isn't the right fix.
> 
> I have never been able to recreate the problem here. I have an idea I'll
> test.
> 

May be the following will help. It shows a clear difference
between the ${XLD} and ${LD} text that is used in:

.if ${ld} == "LD" || (${ld} == "XLD" && ${XLD} != ${LD})

when ${LD} == "XLD" in my context.

My src config that is involved has (extracted):

TO_TYPE=powerpc64
VERSION_CONTEXT=12.0
CROSS_TOOLCHAIN=${TO_TYPE}-gcc
X_COMPILER_TYPE=gcc
CROSS_BINUTILS_PREFIX=/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/
.if ${.MAKE.LEVEL} == 0
XLD=/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/ld
.export XLD
.endif

and is used via:

SRCCONF="/dev/null" SRC_ENV_CONF="/root/src.configs/src.conf.powerpc64-xtoolchain-gcc.amd64-host"

Given that, by adding a:

.warning "ld=${ld} XLD=${XLD} LD=${LD} LINKER_TYPE=${${X_}LINKER_TYPE} LINKER_VERSION=${${X_}LINKER_VERSION}"

line just before before the /usr/src/share/mk/bsd.linker.mk line:

_ld_version!=   (${${ld}} --version || echo none) | head -n 1

that is being (incorrectly) executed and not finding head the
extra .warning reported:

make[4]: "/usr/src/share/mk/bsd.linker.mk" line 47: warning: "ld=XLD XLD=/usr/local/powerpc64-unknown-freebsd12.0/bin/ld LD=/usr/local/powerpc64-unknown-freebsd12.0/bin/ld -m elf32ppc_fbsd LINKER_TYPE= LINKER_VERSION="

Note that the LD= part has the text:

-m elf32ppc_fbsd

in it where my explicit XLD assignment does not.


Is my src config handling of XLD non-supported in some way?
Did I step outside the intended coverage?


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?67D92B43-5124-4EDF-BA26-26CE8B082FE7>