From owner-freebsd-ppc@freebsd.org Mon Aug 27 07:01:14 2018 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD1FB108EE90 for ; Mon, 27 Aug 2018 07:01:13 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic303-20.consmr.mail.ne1.yahoo.com (sonic303-20.consmr.mail.ne1.yahoo.com [66.163.188.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 68E5A81838 for ; Mon, 27 Aug 2018 07:01:13 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: Rz9IAT8VM1njGHvVPknvKVEJsiiCdjGgLyPoz758tddwFLFJRlKQIdfKujuqu6k p99hxh.uzAFgH_vKkCsx93YOZKt9HV5lKV2xrIbASGhw67KGgLkASvmF2NWgKUY6Xhx7r7cF9mwr mQI1FnPV1ZRVwmEAy8aoOYxiHjOBZOMxctp.yoonfr7ega2WvCxT1dE7O9m_pAhp1_Woy1dc9Mj9 1JquWUds0X.hyC7dEip8unjSEG8ldSXPPHqc3x8HDt9P9j05lA14Me6sjDMzdZ.BnA9xgM_fHpvF CiRxF.oEZ84XI_OFk.MqkAqaXLdDVrafNOAOGESK.7SJJ8x4p9ws4GtCIUBnttiB8ioH0Hc2a5Qx BLi2fi887NAaxrf1SyTbl2pPohpYPf1I0H38358qjzkC0Qd4a1rMhkw6ZXKD07I_.TBhME8z.8.b bmrjhCmlkZy6D7gRSthM7iTJQ.N_GRDTAqfacUc81POcIqwCAsVTFow0qi0URWEqh4k9g7ou8PGW DH6f5ca4QEiiSTCM6XrPchYZ6swRs3fs5fuTK0OPgpEgS88YAKZjM1SJ_GQjGRy807O1H46EjpMN 6lwOFQNmp6q07tnXN5GTsVzquKrtIs_y1jIOYxMesBd33ZorGjkInLllW9DE.6OG8BqvBoEo6UFj uVwkhon7nnTnCyAjwBRPh_VIh5xNn_20EnkL52DBNFXPTinXuTKi9p42bCKs6IXcECCDRvsFkYD6 SJIlulXFxc98vvof.q5hOC5D3vfc162bjKjSI5qZxrBLAxzNwRvov251lH12A_fBqgNIqjYYqrgp BGrLW5S8VSaIt5Om2lxrtSUGT5h.ZIkkGGliFO3bpp8YBYVl2AWg7JT962mJ_YvrzoDW2ljN6xoP MHjMpd1_6Fd4hMhu1zNAiLjdBrCXnlJVhW1HW.a9_bHflCyN16Xvga2gq2pD18mBLJF75b5mbvqJ JwN4jLIKIjyoNspybqHp3KKUAcwYPL5rO_1ex245.dVktxxrWGppX6Ydk0_b5aP8dIVY9qE8bnA- - Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ne1.yahoo.com with HTTP; Mon, 27 Aug 2018 07:01:07 +0000 Received: from ip70-189-131-151.lv.lv.cox.net (EHLO [192.168.0.105]) ([70.189.131.151]) by smtp432.mail.ne1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID c8d3a9027c73a8063e6e765b00851baf; Mon, 27 Aug 2018 07:01:03 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: head -r337868 's stand/defs.mk "CFLAGS.gcc+= -Os" breaks powerpc64's boot1.elf amd64 -> powerpc64 cross build via devel/powerpc64-binutils and devel/powerpc64-gcc Message-Id: <6EAD7607-1FD5-4282-B082-F5FD0087B6C5@yahoo.com> Date: Mon, 27 Aug 2018 00:01:01 -0700 To: Warner Losh , FreeBSD Toolchain , FreeBSD PowerPC ML X-Mailer: Apple Mail (2.3445.9.1) X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Aug 2018 07:01:14 -0000 [My previous build was based on head -r337400 and did not have this problem. I experiment with powerpc64 and powerpc builds via fairly modern compilers and toolchains, although I currently do nto have access to such hardware.] Despite the amd64 and i386 focused comment in: QUOTE # Slim down the image. This saves about 15% in size with clang 6 on x86 # Our most constrained /boot/loader env is BIOS booting on x86, where # our text + data + BTX have to fit into 640k below the ISA hole. # Experience has shown that problems arise between ~520k to ~530k. CFLAGS.clang+=3D -Oz CFLAGS.gcc+=3D -Os ENDQUOTE the code is not conditional on such a context being involved. This changes the powerpc64 to fail for a devel/powerpc64-gcc and devel/powerpc64-binutil based build when boot1.elf is attempted: --- boot1.elf --- Using built-in specs. COLLECT_GCC=3D/usr/local/bin/powerpc64-unknown-freebsd12.0-gcc = COLLECT_LTO_WRAPPER=3D/usr/local/libexec/gcc/powerpc64-unknown-freebsd12.0= /6.4.0/lto-wrapper Target: powerpc64-unknown-freebsd12.0 Configured with: = /wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/configure = --target=3Dpowerpc64-unknown-freebsd12.0 --disable-nls = --enable-languages=3Dc,c++ --enable-gnu-indirect-function = --without-headers --with-gmp=3D/usr/local --with-pkgversion=3D'FreeBSD = Ports Collection for powerpc64' --with-system-zlib = --with-gxx-include-dir=3D/usr/include/c++/v1/ --with-sysroot=3D/ = --with-as=3D/usr/local/bin/powerpc64-unknown-freebsd12.0-as = --with-ld=3D/usr/local/bin/powerpc64-unknown-freebsd12.0-ld = --enable-initfini-array --prefix=3D/usr/local --localstatedir=3D/var = --mandir=3D/usr/local/man --infodir=3D/usr/local/info/ = --build=3Dx86_64-unknown-freebsd12.0 Thread model: posix gcc version 6.4.0 (FreeBSD Ports Collection for powerpc64)=20 = COMPILER_PATH=3D/usr/local/powerpc64-unknown-freebsd12.0/bin/:/usr/local/l= ibexec/gcc/powerpc64-unknown-freebsd12.0/6.4.0/:/usr/local/libexec/gcc/pow= erpc64-unknown-freebsd12.0/6.4.0/:/usr/local/libexec/gcc/powerpc64-unknown= -freebsd12.0/:/usr/local/lib/gcc/powerpc64-unknown-freebsd12.0/6.4.0/:/usr= /local/lib/gcc/powerpc64-unknown-freebsd12.0/:/usr/local/lib/gcc/powerpc64= -unknown-freebsd12.0/6.4.0/../../../../powerpc64-unknown-freebsd12.0/bin/ = LIBRARY_PATH=3D/usr/local/powerpc64-unknown-freebsd12.0/bin/:/usr/local/li= b/gcc/powerpc64-unknown-freebsd12.0/6.4.0/:/usr/local/lib/gcc/powerpc64-un= known-freebsd12.0/6.4.0/../../../../powerpc64-unknown-freebsd12.0/lib/:/us= r/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powerpc64/usr/src/= powerpc.powerpc64/tmp/lib/:/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolch= ain/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/usr/lib/ COLLECT_GCC_OPTIONS=3D'-B' = '/usr/local/powerpc64-unknown-freebsd12.0/bin/' '-O2' '-pipe' = '-nostdinc' '-I' = '/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powerpc64/usr/= src/powerpc.powerpc64/stand/libsa' '-I' '/usr/src/stand/libsa' '-D' = '_STANDALONE' '-I' '/usr/src/sys' '-D' 'double=3Djagged-little-pill' = '-D' 'float=3Dfloaty-mcfloatface' '-D' 'LOADER_GELI_SUPPORT' '-I' = '/usr/src/stand/libsa/geli' '-D' 'LOADER_DISK_SUPPORT' '-m32' = '-mcpu=3Dpowerpc' '-ffreestanding' '-msoft-float' '-I' '.' '-I' = '/usr/src/stand/common' '-std=3Dgnu99' '-Wsystem-headers' = '-Wno-pointer-sign' '-Wno-error=3Daddress' '-Wno-error=3Darray-bounds' = '-Wno-error=3Dattributes' '-Wno-error=3Dbool-compare' = '-Wno-error=3Dcast-align' '-Wno-error=3Dclobbered' = '-Wno-error=3Denum-compare' '-Wno-error=3Dextra' '-Wno-error=3Dinline' = '-Wno-error=3Dlogical-not-parentheses' '-Wno-error=3Dstrict-aliasing' = '-Wno-error=3Duninitialized' '-Wno-error=3Dunused-but-set-variable' = '-Wno-error=3Dunused-function' '-Wno-error=3Dunused-value' = '-Wno-error=3Dmisleading-indentation' '-Wno-error=3Dnonnull-compare' = '-Wno-error=3Dshift-negative-value' '-Wno-error=3Dtautological-compare' = '-Wno-error=3Dunused-const-variable' '-v' '-Os' '-nostdlib' '-static' = '-o' 'boot1.elf' /usr/local/libexec/gcc/powerpc64-unknown-freebsd12.0/6.4.0/collect2 = -plugin = /usr/local/libexec/gcc/powerpc64-unknown-freebsd12.0/6.4.0/liblto_plugin.s= o = -plugin-opt=3D/usr/local/libexec/gcc/powerpc64-unknown-freebsd12.0/6.4.0/l= to-wrapper -plugin-opt=3D-fresolution=3D/tmp//cco6MSov.res = --sysroot=3D/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.pow= erpc64/usr/src/powerpc.powerpc64/tmp -V -static -melf32ppc_fbsd -V = -Bstatic -o boot1.elf -L/usr/local/powerpc64-unknown-freebsd12.0/bin = -L/usr/local/lib/gcc/powerpc64-unknown-freebsd12.0/6.4.0 = -L/usr/local/lib/gcc/powerpc64-unknown-freebsd12.0/6.4.0/../../../../power= pc64-unknown-freebsd12.0/lib = -L/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powerpc64/usr= /src/powerpc.powerpc64/tmp/lib = -L/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powerpc64/usr= /src/powerpc.powerpc64/tmp/usr/lib -N boot1.o qdivrem.o udivdi3.o = ashldi3.o syncicache.o GNU ld (GNU Binutils) 2.30 Supported emulations: elf64ppc_fbsd elf64ppc elf32ppc_fbsd elf32ppc GNU ld (GNU Binutils) 2.30 Supported emulations: elf64ppc_fbsd elf64ppc elf32ppc_fbsd elf32ppcboot1.o: In function `__puts': boot1.c:(.text+0xe0): undefined reference to `_restgpr_28_x' boot1.o: In function `__printf': boot1.c:(.text+0x1a0): undefined reference to `_restgpr_24_x' boot1.o: In function `ofw_getprop': boot1.c:(.text+0x5fc): undefined reference to `_restgpr_31_x' boot1.o: In function `ofw_close': boot1.c:(.text+0x668): undefined reference to `_restgpr_31_x' boot1.o: In function `dskread': boot1.c:(.text+0x76c): undefined reference to `_restgpr_25_x' boot1.o: In function `ofw_write.constprop.2': boot1.c:(.text+0x7f4): undefined reference to `_restgpr_30_x' boot1.o: In function `putchar': boot1.c:(.text+0x844): undefined reference to `_restgpr_30_x' boot1.o: In function `fsread_size.constprop.11': boot1.c:(.text+0x904): undefined reference to `_restgpr_17_x' boot1.o: In function `domount.constprop.4': boot1.c:(.text+0xe98): undefined reference to `_restgpr_30_x' boot1.o: In function `main': boot1.c:(.text.startup+0x3c0): undefined reference to `_restgpr_19_x' qdivrem.o: In function `__qdivrem': qdivrem.c:(.text+0xb8): undefined reference to `_restgpr_25_x' collect2: error: ld returned 1 exit status *** [boot1.elf] Error code 1 make[5]: stopped in /usr/src/stand/powerpc/boot1.chrp .ERROR_TARGET=3D'boot1.elf' = .ERROR_META_FILE=3D'/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/pow= erpc.powerpc64/usr/src/powerpc.powerpc64/stand/powerpc/boot1.chrp/boot1.el= f.meta' .MAKE.LEVEL=3D'5' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'/usr/local/bin/powerpc64-unknown-freebsd12.0-gcc = --sysroot=3D/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.pow= erpc64/usr/src/powerpc.powerpc64/tmp = -B/usr/local/powerpc64-unknown-freebsd12.0/bin/ -O2 -pipe -nostdinc = -I/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powerpc64/usr= /src/powerpc.powerpc64/stand/libsa -I/usr/src/stand/libsa -D_STANDALONE = -I/usr/src/sys -Ddouble=3Djagged-little-pill -Dfloat=3Dfloaty-mcfloatface = -DLOADER_GELI_SUPPORT -I/usr/src/stand/libsa/geli -DLOADER_DISK_SUPPORT = -m32 -mcpu=3Dpowerpc -ffreestanding -msoft-float -I. = -I/usr/src/stand/common -std=3Dgnu99 -Wsystem-headers -Wno-pointer-sign = -Wno-error=3Daddress -Wno-error=3Darray-bounds -Wno-error=3Dattributes = -Wno-error=3Dbool-compare -Wno-error=3Dcast-align -Wno-error=3Dclobbered = -Wno-error=3Denum-compare -Wno-error=3Dextra -Wno-error=3Dinline = -Wno-error=3Dlogical-not-parentheses -Wno-error=3Dstrict-aliasing = -Wno-error=3Duninitialized -Wno-error=3Dunused-but-set-variable = -Wno-error=3Dunused-function -Wno-error=3Dunused-value = -Wno-error=3Dmisleading-indentation -Wno-error=3Dnonnull-compare = -Wno-error=3Dshift-negative-value -Wno-error=3Dtautological-compare = -Wno-error=3Dunused-const-variable -v -Os -nostdlib -static -Wl,-N -o = boot1.elf boot1.o qdivrem.o udivdi3.o ashldi3.o syncicache.o ;' .CURDIR=3D'/usr/src/stand/powerpc/boot1.chrp' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powe= rpc64/usr/src/powerpc.powerpc64/stand/powerpc/boot1.chrp' .TARGETS=3D'all' = DESTDIR=3D'/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powe= rpc64/usr/src/powerpc.powerpc64/tmp' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc64' MAKEOBJDIRPREFIX=3D'' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20180512' = PATH=3D'/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powerpc= 64/usr/src/powerpc.powerpc64/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_xt= oolchain-gcc-no_toolchain/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/= legacy/usr/bin:/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.= powerpc64/usr/src/powerpc.powerpc64/tmp/legacy/bin:/usr/obj/powerpc64vtsc_= xtoolchain-gcc-no_toolchain/powerpc.powerpc64/usr/src/powerpc.powerpc64/tm= p/usr/sbin:/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.powe= rpc64/usr/src/powerpc.powerpc64/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'= SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/powerpc64vtsc_xtoolchain-gcc-no_toolchain/powerpc.power= pc64/usr/src/powerpc.powerpc64' .MAKE.MAKEFILES=3D'/usr/src/share/mk/sys.mk = /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk = /root/src.configs/src.conf.powerpc64-xtoolchain-gcc-no_toolchain.amd64-hos= t /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/src.sys.obj.mk = /usr/src/share/mk/auto.obj.mk /usr/src/share/mk/bsd.suffixes.mk = /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk = /usr/src/share/mk/src.sys.mk /dev/null = /usr/src/stand/powerpc/boot1.chrp/Makefile /usr/src/share/mk/bsd.init.mk = /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk = /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk = /usr/src/stand/powerpc/boot1.chrp/../Makefile.inc = /usr/src/stand/powerpc/boot1.chrp/../../Makefile.inc = /usr/src/stand/powerpc/boot1.chrp/../../defs.mk = /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk = /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk = /usr/src/stand/powerpc/boot1.chrp/Makefile.hfs = /usr/src/share/mk/bsd.prog.mk /usr/src/share/mk/bsd.libnames.mk = /usr/src/share/mk/src.libnames.mk /usr/src/share/mk/bsd.nls.mk = /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.files.mk = /usr/src/share/mk/bsd.dirs.mk /usr/src/share/mk/bsd.incs.mk = /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.man.mk = /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk = /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk = /usr/src/share/mk/bsd.sys.mk' .PATH=3D'. /usr/src/stand/powerpc/boot1.chrp /usr/src/sys/libkern = /usr/src/lib/libc/powerpc/gen /usr/src/stand/powerpc/boot1.chrp' 1 error The following patch was sufficient to show that the -Os use made the difference (but I do not know about other TARGET_ARCH=3D alternatives so it may not be appropriate overall). # svnlite diff /usr/src/stand/defs.mk Index: /usr/src/stand/defs.mk =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /usr/src/stand/defs.mk (revision 338319) +++ /usr/src/stand/defs.mk (working copy) @@ -53,6 +53,7 @@ CFLAGS+=3D -I${SYSDIR} # Spike the floating point interfaces CFLAGS+=3D -Ddouble=3Djagged-little-pill -Dfloat=3Dfloaty-mcfloatface= +.if ${MACHINE_ARCH} =3D=3D "amd64" || ${MACHINE_ARCH} =3D=3D "i386" # Slim down the image. This saves about 15% in size with clang 6 on x86 # Our most constrained /boot/loader env is BIOS booting on x86, where # our text + data + BTX have to fit into 640k below the ISA hole. @@ -59,6 +60,7 @@ # Experience has shown that problems arise between ~520k to ~530k. CFLAGS.clang+=3D -Oz CFLAGS.gcc+=3D -Os +.endif =20 # GELI Support, with backward compat hooks (mostly) .if defined(LOADER_NO_GELI_SUPPORT) @@ -87,6 +89,7 @@ # or powerpc64. .if ${MACHINE_ARCH} =3D=3D "powerpc64" CFLAGS+=3D -m32 -mcpu=3Dpowerpc +LFLAGS+=3D -Wl,-m -Wl,elf32ppc_fbsd .endif =20 # For amd64, there's a bit of mixed bag. Some of the tree (i386, = lib*32) is Note: The "LFLAGS+=3D -Wl,-m -Wl,elf32ppc_fbsd" is a long-standing = item in my powerpc64 experimental environment and is not the point here. For reference: # more = ~/src.configs/src.conf.powerpc64-xtoolchain-gcc-no_toolchain.amd64-host 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 # WITHOUT_CROSS_COMPILER=3D WITHOUT_SYSTEM_COMPILER=3D WITHOUT_SYSTEM_LINKER=3D # WITH_LIBCPLUSPLUS=3D WITHOUT_LLD_BOOTSTRAP=3D WITHOUT_BINUTILS_BOOTSTRAP=3D WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=3D WITHOUT_CLANG_BOOTSTRAP=3D WITHOUT_CLANG_IS_CC=3D WITHOUT_CLANG=3D WITHOUT_CLANG_FULL=3D WITHOUT_CLANG_EXTRAS=3D WITHOUT_LLD=3D WITHOUT_BINUTILS=3D WITHOUT_LLDB=3D # WITH_BOOT=3D # powerpc64 LIB32 builds via gcc 4.9 or later variants that I've tried # but the LIB32 does not work [crtbeginS code problem(s): bad R30 use] #WITHOUT_LIB32=3D WITH_LIB32=3D # WITHOUT_GCC_BOOTSTRAP=3D WITHOUT_GCC=3D WITHOUT_GCC_IS_CC=3D WITHOUT_GNUCXX=3D # NO_WERROR=3D # # Avoid db_trace.o getting: # calling '__builtin_frame_address' with a nonzero argument is unsafe # as an error? Other such points as well. #WERROR=3D MALLOC_PRODUCTION=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_TOOLCHAIN=3D${TO_TYPE}-gcc X_COMPILER_TYPE=3Dgcc = CROSS_BINUTILS_PREFIX=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSI= ON_CONTEXT}/bin/ .if ${.MAKE.LEVEL} =3D=3D 0 = XCC=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-gc= c = XCXX=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-g= ++ = XCPP=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-c= pp .export XCC .export XCXX .export XCPP XAS=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/as= XAR=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/ar= XLD=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/ld= XNM=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/nm= = XOBJCOPY=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/b= in/objcopy = XOBJDUMP=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/b= in/objdump = XRANLIB=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bi= n/ranlib = XSIZE=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/bin/= size #NO-SUCH: = XSTRINGS=3D/usr/local/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}/b= in/strings = XSTRINGS=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEX= T}-strings .export XAS .export XAR .export XLD .export XNM .export XOBJCOPY .export XOBJDUMP .export XRANLIB .export XSIZE .export XSTRINGS .endif # # # =46rom based on clang (via system). . . # .if ${.MAKE.LEVEL} =3D=3D 0 CC=3D/usr/bin/clang CXX=3D/usr/bin/clang++ CPP=3D/usr/bin/clang-cpp .export CC .export CXX .export CPP .endif =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)