From owner-freebsd-ppc@freebsd.org Wed Jul 26 10:07:01 2017 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5866ADB6A53 for ; Wed, 26 Jul 2017 10:07:01 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-80.reflexion.net [208.70.210.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1CD67818F8 for ; Wed, 26 Jul 2017 10:07:00 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 3240 invoked from network); 26 Jul 2017 10:06:59 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 26 Jul 2017 10:06:59 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v8.40.1) with SMTP; Wed, 26 Jul 2017 06:06:59 -0400 (EDT) Received: (qmail 7410 invoked from network); 26 Jul 2017 10:06:59 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 26 Jul 2017 10:06:59 -0000 Received: from [192.168.1.109] (c-67-170-167-181.hsd1.or.comcast.net [67.170.167.181]) by iron2.pdx.net (Postfix) with ESMTPSA id 494E1EC8559; Wed, 26 Jul 2017 03:06:58 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: 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) From: Mark Millard In-Reply-To: Date: Wed, 26 Jul 2017 03:06:57 -0700 Cc: Ed Maste , FreeBSD Toolchain , FreeBSD PowerPC ML Content-Transfer-Encoding: quoted-printable Message-Id: <8F22B659-90DE-42E5-B4C6-75C9B9626462@dsl-only.net> References: <0E42D991-D350-4DC1-A683-CEA506167520@dsl-only.net> To: Bryan Drewery X-Mailer: Apple Mail (2.3273) X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Jul 2017 10:07:01 -0000 [ -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 = 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.] >>=20 >> On 2017-Jun-29, at 3:33 PM, Mark Millard = wrote: >>=20 >>> [This is a clang targetting powerpc64 context from my >>> experimentation efforts, not the normal gcc 4.2.1 context >>> for powerpc64.] >>>=20 >>> 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. >>>=20 >>> --- install32 --- >>> cd /usr/src/lib; MACHINE=3Dpowerpc MACHINE_ARCH=3Dpowerpc = MAKEOBJDIRPREFIX=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerp= c64/usr/src/world32 >>> = PATH=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/= tmp/legacy/usr/sbin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/le= gacy/usr/bin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/le= gacy/bin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/us= r/sbin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/us= r/bin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/le= gacy/usr/sbin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/le= gacy/usr/bin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/le= gacy/bin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/us= r/sbin >>> = :/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/us= r/bin >>> :/tmp/install.7ljKosWa >>> = SYSROOT=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/s= rc/lib32 LIBDIR=3D/usr/lib32 SHLIBDIR=3D/usr/lib32 DTRACE=3D"dtrace" = make LD=3D"/usr/local/powerpc64-freebsd/bin/ld -m elf32ppc_fbsd" = OBJCOPY=3D"/usr/local/powerpc64-freebsd/bin/objcopy" = NM=3D"/usr/local/powerpc64-freebsd/bin/nm" -DCOMPAT_32BIT CC=3D"cc = -target powerpc64-unknown-freebsd12.0 = --sysroot=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT = -mcpu=3Dpowerpc -m32 = -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32= /usr/lib32 = --sysroot=3D/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=3D"c++ -target powerpc64-unknown-freebsd12.0 = --sysroot=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT = -mcpu=3Dpowerpc -m32 -L/ >>> = usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32/us= r/lib32 = --sysroot=3D/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=3D"cpp -target powerpc64-unknown-freebsd12.0 = --sysroot=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT = -mcpu=3Dpowerpc -m32 = -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32= /usr/lib32 = --sysroot=3D/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=3Dno -DNO_LINT MK_TESTS=3Dno = MK_MAN=3Dno MK_HTML=3Dno MK_TOOLCHAIN=3Dno -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=3D/usr/local/powerpc64-freebsd/bin/ld >>> *** [install32] Error code 1 >>>=20 >>> # 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 >>> . . . >>>=20 >>> So there is no "head" to find. Below uses "find" instead >>> to confirm the x86-64 ELF status: >>>=20 >>> # 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 >>>=20 >>>=20 >>>=20 >>> =46rom /usr/src/share/mk/bsd.linker.mk : >>>=20 >>> .if ${ld} =3D=3D "LD" || (${ld} =3D=3D "XLD" && ${XLD} !=3D ${LD}) >>> .if !defined(${X_}LINKER_TYPE) || !defined(${X_}LINKER_VERSION) >>> _ld_version!=3D ${${ld}} --version 2>/dev/null | head -n 1 || echo = none >>> .if ${_ld_version} =3D=3D "none" >>> .error Unable to determine linker type from ${ld}=3D${${ld}} >>> .endif >>>=20 >>>=20 >>> Trying the failing line interactively (no PATH >>> like above though): >>>=20 >>> # /usr/local/powerpc64-freebsd/bin/ld --version 2>/dev/null | head = -n 1 || echo none >>> GNU ld (GNU Binutils) 2.28 >>>=20 >>> So /tmp/install.7ljKosWa/ just needed a copy of head >>> in addition to what it already had. >>=20 >> In /usr/src/Makefile.inc1 : >>=20 >> ITOOLS=3D [ 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} >>=20 >> does not list "head" as a tool. >>=20 >> But I can externally add it via LOCAL_ITOOLS use. >>=20 >=20 > 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=3D/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_altbinut= ils-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/u= sr/lib32/ install -l rs libgssapi_krb5.so.10 = /usr/obj/DESTDIRs/clang-powerpc64-installworld_altbinutils/usr/lib32/libgs= sapi_krb5.so cd /usr/src/libexec/rtld-elf; PROG=3Dld-elf32.so.1 MACHINE=3Dpowerpc = MACHINE_ARCH=3Dpowerpc = MAKEOBJDIRPREFIX=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerp= c64/usr/src/world32 = PATH=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/= tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.power= pc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_clang_altbinutils/p= owerpc.powerpc64/usr/src/tmp/legacy/bin:/usr/obj/powerpc64vtsc_clang_altbi= nutils/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/p= owerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/legacy/usr/bi= n:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/l= egacy/bin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/s= rc/tmp/usr/sbin:/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64= /usr/src/tmp/usr/bin:/tmp/install.n3WUdktD = SYSROOT=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/s= rc/lib32 LIBDIR=3D/usr/lib32 SHLIBDIR=3D/usr/lib32 DTRACE=3D"dtrace" = make LD=3D"/usr/local/powerpc64-freebsd/bin/ld -m elf32ppc_fbsd" = OBJCOPY=3D"/usr/local/powerpc64-freebsd/bin/objcopy" = NM=3D"/usr/local/powerpc64-freebsd/bin/nm" -DCOMPAT_32BIT CC=3D"cc = -target powerpc64-unknown-freebsd12.0 = --sysroot=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT = -mcpu=3Dpowerpc -m32 = -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32= /usr/lib32 = --sysroot=3D/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=3D"c++ -target powerpc64-unknown-freebsd12.0 = --sysroot=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT = -mcpu=3Dpowerpc -m32 = -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32= /usr/lib32 = --sysroot=3D/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=3D"cpp -target powerpc64-unknown-freebsd12.0 = --sysroot=3D/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr= /src/tmp -B/usr/local/powerpc64-freebsd/bin/ -DCOMPAT_32BIT = -mcpu=3Dpowerpc -m32 = -L/usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib32= /usr/lib32 = --sysroot=3D/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=3Dno -DNO_LINT MK_TESTS=3Dno = MK_MAN=3Dno MK_HTML=3Dno MK_TOOLCHAIN=3Dno -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=3D/usr/local/powerpc64-freebsd/bin/ld: , defaulting to = bfd Build Context: = ~/sys_build_scripts.amd64-host/make_powerpc64vtsc_nodebug_clang_altbinutil= s-amd64-host.sh -j8 installworld = DESTDIR=3D/usr/obj/DESTDIRs/clang-powerpc64-installworld_altbinutils # more = ~/sys_build_scripts.amd64-host/make_powerpc64vtsc_nodebug_clang_altbinutil= s-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=3D"/root/src.configs/make.conf" SRCCONF=3D"/dev/null" = SRC_ENV_CONF=3D"/root/src.configs/src.conf.powerpc64-clang_altbinutils-boo= tstrap.amd64-host" \ WITH_META_MODE=3Dyes \ MAKEOBJDIRPREFIX=3D"/usr/obj/powerpc64vtsc_clang_altbinutils" \ # more /root/src.configs/make.conf CFLAGS.gcc+=3D -v # more = /root/src.configs/src.conf.powerpc64-clang_altbinutils-bootstrap.amd64-hos= t TO_TYPE=3Dpowerpc64 TOOLS_TO_TYPE=3D${TO_TYPE} VERSION_CONTEXT=3D12.0 # KERNCONF=3DGENERIC64vtsc-NODBG TARGET=3Dpowerpc .if ${.MAKE.LEVEL} =3D=3D 0 TARGET_ARCH=3D${TO_TYPE} .export TARGET_ARCH .endif # WITH_CROSS_COMPILER=3D WITHOUT_SYSTEM_COMPILER=3D # WITH_LIBCPLUSPLUS=3D WITHOUT_BINUTILS_BOOTSTRAP=3D WITH_ELFTOOLCHAIN_BOOTSTRAP=3D WITH_CLANG_BOOTSTRAP=3D WITH_CLANG=3D WITH_CLANG_IS_CC=3D WITH_CLANG_FULL=3D WITH_CLANG_EXTRAS=3D WITHOUT_LLD_BOOTSTRAP=3D WITH_LLD=3D WITHOUT_LLD_IS_LD=3D WITH_LLDB=3D # WITH_BOOT=3D WITH_LIB32=3D # WITHOUT_GCC_BOOTSTRAP=3D WITHOUT_GCC=3D WITHOUT_GCC_IS_CC=3D WITHOUT_GNUCXX=3D # NO_WERROR=3D MALLOC_PRODUCTION=3D # # Avoid converts between pointers to integer types with different sign = [-Werror,-Wpointer-sign] # and such from blocking the build. WERROR=3D # WITH_REPRODUCIBLE_BUILD=3D WITH_DEBUG_FILES=3D # # # 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=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ .if ${.MAKE.LEVEL} =3D=3D 0 # # Note: The WITH_CROSS_COMPILER picks up the CROSS_BINUTILS_PREFIX # binding automatically. # XAS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as XAR=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar XNM=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm XOBJCOPY=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy XOBJDUMP=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump XRANLIB=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib XSIZE=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size #NO-SUCH: XSTRINGS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings XSTRINGS=3D/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=3D/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. =3D=3D=3D Mark Millard markmi at dsl-only.net