On 7/5/17 1:35 PM, Mark Millard wrote: > On 2017-Jul-5, at 12:36 PM, Bryan Drewery <bdrew...@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.] >>> >>> . . . >>> 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? > > ld was still in use last I checked. I've been using LOCAL_ITOOLS > to avoid the problem for powerpc64's world32 activity where the > problem was happening for me. > > See Ed Maste's -r320502 check in which I expect is a alternate > workaround for the lack of "head" in that I get the same message > that is being avoided unless I cause "head" to be in the ITOOLS: > > > Author: emaste > Date: Fri Jun 30 16:34:17 2017 > New Revision: 320502 > URL: > https://svnweb.freebsd.org/changeset/base/320502 > > > Log: > bsd.linker.mk: add band-aid for linker invocation failure > > In some cases bsd.linker.mk reports an error like: > > make[4]: ".../share/mk/bsd.linker.mk" line 56: > Unknown linker from LD=ld -m elf32ppc_fbsd:" > > For now change this to a .warning, and then assume GNU ld 2.17.50. > At present the linker type detection is used only for enabling build-id, > and we can carry on without it when type detection fails. > > Also, show errors from ${LD} --version to aid in failure diagnosis. > Successful invocations of ${LD} --version produce no output on stderr > so this will not create any spam in non-failing builds. > > Tested by: swills > Sponsored by: The FreeBSD Foundation > Differential Revision: > https://reviews.freebsd.org/D11424 > > > Modified: > head/share/mk/bsd.linker.mk > > Modified: head/share/mk/bsd.linker.mk > ============================================================================== > --- head/share/mk/bsd.linker.mk Fri Jun 30 16:16:21 2017 > (r320501) > +++ head/share/mk/bsd.linker.mk Fri Jun 30 16:34:17 2017 > (r320502) > @@ -47,9 +47,9 @@ ${var}= ${${var}.${${X_}_ld_hash}} > > .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 > +_ld_version!= (${${ld}} --version || echo none) | head -n 1 > .if ${_ld_version} == "none" > -.error Unable to determine linker type from ${ld}=${${ld}} > +.warning Unable to determine linker type from ${ld}=${${ld}} > .endif > .if ${_ld_version:[1..2]} == "GNU ld" > ${X_}LINKER_TYPE= bfd > @@ -58,7 +58,9 @@ _v= ${_ld_version:M[1-9].[0-9]*:[1]} > ${X_}LINKER_TYPE= lld > _v= ${_ld_version:[2]} > .else > -.error Unknown linker from ${ld}=${${ld}}: ${_ld_version} > +.warning Unknown linker from ${ld}=${${ld}}: ${_ld_version}, defaulting to > bfd > +${X_}LINKER_TYPE= bfd > +_v= 2.17.50 > .endif > ${X_}LINKER_VERSION!= echo "${_v:M[1-9].[0-9]*}" | \ > awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}' > > > > The actual error is from the piping through head > when head is missing, at least in my context.
Right, neither that commit nor adding head to [LOCAL_]ITOOLS should be needed. I wasn't able to recreate any of the problems when I tried last. I will look again. -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature