Because of the following I've had to use
a ports binutils (such as
devel/powerpc64-binutils ) instead of the
system binutils in order to have a clang-based
powerpc64 world do a gcc 4.2.1 based "cross
build" (buildworld buildkernel).


This was from a clang-based buildworld buildkernel
powerpc64 FreeBSD context. It was an attempt to do a
gcc 4.2.1 "cross-compiler" based buildworld
buildkernel. It did not get very far before
(using one of several ld core files as an
example):

# /usr/libexec/gdb ld /var/crash/ld.26814.core 
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc64-marcel-freebsd"...
Core was generated by `/usr/bin/ld --eh-frame-hdr -Bstatic -o gperf.full 
/usr/lib/crt1.o /usr/lib/crti.'.
Program terminated with signal 11, Segmentation fault.
#0  0x000000001002e148 in ppc64_elf_tls_optimize (obfd=<value optimized out>, 
info=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-ppc.c:7172
7172                          for (ent = htab->tls_get_addr->elf.plt.plist;
(gdb) bt
#0  0x000000001002e148 in ppc64_elf_tls_optimize (obfd=<value optimized out>, 
info=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-ppc.c:7172
#1  0x0000000010001034 in ppc_before_allocation () at eelf64ppc_fbsd.c:204
#2  0x0000000010009be4 in ldemul_before_allocation () at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldemul.c:78
#3  0x0000000010017b00 in lang_process () at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldlang.c:5785
#4  0x0000000010021ce0 in main (argc=0, argv=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldmain.c:459
#5  0x00000000100004a8 in _start (argc=0, argv=0x50a24fc0, env=0x50f3feb8, 
obj=<value optimized out>, cleanup=<value optimized out>, ps_strings=<value 
optimized out>)
    at /usr/src/lib/csu/powerpc64/crt1.c:94
Current language:  auto; currently minimal

The source is:

                  if (expecting_tls_get_addr)
                    {
                      struct plt_entry *ent;
                      for (ent = htab->tls_get_addr->elf.plt.plist;
                           ent != NULL;
                           ent = ent->next)
                        if (ent->addend == 0)
                          {
                            if (ent->plt.refcount > 0)
                              {
                                ent->plt.refcount -= 1;
                                expecting_tls_get_addr = 0;
                              }
                            break;
                          }
                    }

(gdb) print htab->tls_get_addr
$3 = (struct ppc_link_hash_entry *) 0x0

0x1002e124 <ppc64_elf_tls_optimize+1068>:       beq-    0x1002e4ec 
<ppc64_elf_tls_optimize+2036>
0x1002e128 <ppc64_elf_tls_optimize+1072>:       li      r3,18
0x1002e12c <ppc64_elf_tls_optimize+1076>:       li      r14,2
0x1002e130 <ppc64_elf_tls_optimize+1080>:       li      r28,0
0x1002e134 <ppc64_elf_tls_optimize+1084>:       cmpwi   r5,0
0x1002e138 <ppc64_elf_tls_optimize+1088>:       crnot   4*cr5+lt,eq
0x1002e13c <ppc64_elf_tls_optimize+1092>:       beq-    cr2,0x1002e198 
<ppc64_elf_tls_optimize+1184>
0x1002e140 <ppc64_elf_tls_optimize+1096>:       bge-    cr5,0x1002e330 
<ppc64_elf_tls_optimize+1592>
0x1002e144 <ppc64_elf_tls_optimize+1100>:       ld      r4,544(r22)
0x1002e148 <ppc64_elf_tls_optimize+1104>:       ld      r4,80(r4)
0x1002e14c <ppc64_elf_tls_optimize+1108>:       cmpldi  r4,0
0x1002e150 <ppc64_elf_tls_optimize+1112>:       beq-    0x1002e16c 
<ppc64_elf_tls_optimize+1140>

(gdb) info reg r5
r5             0x1      1

(I expect that means expecting_tls_get_addr==1 .)

(gdb) info reg r4
r4             0x0      0


--- _bootstrap-tools-gnu/usr.bin/gperf ---
Building 
/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf/version.o
Building 
/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf/getline.o
Building 
/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf/hash.o
Building 
/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf/gperf.full
. . .
--- _bootstrap-tools-gnu/usr.bin/gperf ---
--- gperf.full ---
c++: error: unable to execute command: Segmentation fault (core dumped)
c++: error: linker command failed due to signal (use -v to see invocation)
*** [gperf.full] Error code 254

make[3]: stopped in /usr/src/gnu/usr.bin/gperf
.ERROR_TARGET='gperf.full'
.ERROR_META_FILE='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf/gperf.full.meta'
.MAKE.LEVEL='3'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='c++ -O2 -pipe -g -Qunused-arguments 
-I/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/include
 -I/usr/src/contrib/gperf/lib -I/usr/src/gnu/usr.bin/gperf 
-Wno-c++11-extensions  -static 
-L/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/lib -o 
gperf.full  bool-array.o hash-table.o input.o keyword-list.o keyword.o main.o 
options.o output.o positions.o search.o version.o getline.o hash.o -legacy;'
.CURDIR='/usr/src/gnu/usr.bin/gperf'
.MAKE='make'
.OBJDIR='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf'
.TARGETS='all'
DESTDIR=''
LD_LIBRARY_PATH=''
MACHINE='powerpc'
MACHINE_ARCH='powerpc64'
MAKEOBJDIRPREFIX='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20170720'
PATH='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src'
.MAKE.MAKEFILES='/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-gcc421-bootstrap.powerpc64-host 
/usr/src/share/mk/bsd.mkopt.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/gnu/usr.bin/gperf/Makefile 
/usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.opts.mk 
/usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.compiler.mk 
/usr/src/share/mk/bsd.linker.mk /usr/src/tools/build/mk/bsd.prog.mk 
/usr/src/share/mk/bsd.prog.mk /usr/src/share/mk/bsd.init.mk 
/usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk 
/usr/src/gnu/usr.bin/gperf/../Makefile.inc 
/usr/src/gnu/usr.bin/gperf/../../Makefile.inc /usr/src/share/mk/bsd.libnames.mk 
/usr/src/share/mk/src.libnames.mk /usr/src/share/mk/src.opts.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.incs.mk 
 /usr/src/share/mk/bsd.links.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 
/usr/src/tools/build/mk/Makefile.boot'
.PATH='. /usr/src/gnu/usr.bin/gperf /usr/src/contrib/gperf/src 
/usr/src/contrib/gperf/lib /usr/src/contrib/gperf/doc'
1 error

make[3]: stopped in /usr/src/gnu/usr.bin/gperf
.ERROR_TARGET='gperf.full'
.ERROR_META_FILE='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf/gperf.full.meta'
.MAKE.LEVEL='3'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='c++ -O2 -pipe -g -Qunused-arguments 
-I/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/include
 -I/usr/src/contrib/gperf/lib -I/usr/src/gnu/usr.bin/gperf 
-Wno-c++11-extensions  -static 
-L/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/lib -o 
gperf.full  bool-array.o hash-table.o input.o keyword-list.o keyword.o main.o 
options.o output.o positions.o search.o version.o getline.o hash.o -legacy;'
.CURDIR='/usr/src/gnu/usr.bin/gperf'
.MAKE='make'
.OBJDIR='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src/gnu/usr.bin/gperf'
.TARGETS='all'
DESTDIR=''
LD_LIBRARY_PATH=''
MACHINE='powerpc'
MACHINE_ARCH='powerpc64'
MAKEOBJDIRPREFIX='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20170720'
PATH='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src'
.MAKE.MAKEFILES='/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-gcc421-bootstrap.powerpc64-host 
/usr/src/share/mk/bsd.mkopt.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/gnu/usr.bin/gperf/Makefile 
/usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.opts.mk 
/usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.compiler.mk 
/usr/src/share/mk/bsd.linker.mk /usr/src/tools/build/mk/bsd.prog.mk 
/usr/src/share/mk/bsd.prog.mk /usr/src/share/mk/bsd.init.mk 
/usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk 
/usr/src/gnu/usr.bin/gperf/../Makefile.inc 
/usr/src/gnu/usr.bin/gperf/../../Makefile.inc /usr/src/share/mk/bsd.libnames.mk 
/usr/src/share/mk/src.libnames.mk /usr/src/share/mk/src.opts.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.incs.mk 
 /usr/src/share/mk/bsd.links.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 
/usr/src/tools/build/mk/Makefile.boot'
.PATH='. /usr/src/gnu/usr.bin/gperf /usr/src/contrib/gperf/src 
/usr/src/contrib/gperf/lib /usr/src/contrib/gperf/doc'
*** [_bootstrap-tools-gnu/usr.bin/gperf] Error code 2

make[2]: stopped in /usr/src
.ERROR_TARGET='_bootstrap-tools-gnu/usr.bin/gperf'
.ERROR_META_FILE=''
.MAKE.LEVEL='2'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='.PHONY'
.CURDIR='/usr/src'
.MAKE='make'
.OBJDIR='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src'
.TARGETS='bootstrap-tools'
DESTDIR=''
LD_LIBRARY_PATH=''
MACHINE='powerpc'
MACHINE_ARCH='powerpc64'
MAKEOBJDIRPREFIX='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20170720'
PATH='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/tmp/usr/src/usr/src'
.MAKE.MAKEFILES='/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-gcc421-bootstrap.powerpc64-host 
/usr/src/share/mk/bsd.mkopt.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/Makefile.inc1 
/usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.opts.mk 
/usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.linker.mk 
/usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk 
/usr/src/Makefile.libcompat /usr/src/share/mk/bsd.subdir.mk 
/usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk 
/usr/src/share/mk/src.init.mk'
.PATH='. /usr/src'
4 errors

make[2]: stopped in /usr/src
.ERROR_TARGET='_bootstrap-tools-gnu/usr.bin/gperf'
.ERROR_META_FILE=''
.MAKE.LEVEL='2'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='.PHONY'
.CURDIR='/usr/src'
.MAKE='make'
.OBJDIR='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/usr/src'
.TARGETS='bootstrap-tools'
DESTDIR=''
LD_LIBRARY_PATH=''
MACHINE='powerpc'
MACHINE_ARCH='powerpc64'
MAKEOBJDIRPREFIX='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20170720'
PATH='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/usr/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64/tmp/usr/src/usr/src'
.MAKE.MAKEFILES='/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-gcc421-bootstrap.powerpc64-host 
/usr/src/share/mk/bsd.mkopt.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/Makefile.inc1 
/usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.opts.mk 
/usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.linker.mk 
/usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk 
/usr/src/Makefile.libcompat /usr/src/share/mk/bsd.subdir.mk 
/usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk 
/usr/src/share/mk/src.init.mk'
.PATH='. /usr/src'
*** [_bootstrap-tools] Error code 2



Other examples include:

Core was generated by `/usr/bin/ld --eh-frame-hdr -Bstatic -o make-roken.full 
/usr/lib/crt1.o /usr/lib/'.
Program terminated with signal 11, Segmentation fault.
#0  0x000000001002e148 in ppc64_elf_tls_optimize (obfd=<value optimized out>, 
info=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-ppc.c:7172
7172                          for (ent = htab->tls_get_addr->elf.plt.plist;
(gdb) bt
#0  0x000000001002e148 in ppc64_elf_tls_optimize (obfd=<value optimized out>, 
info=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-ppc.c:7172
#1  0x0000000010001034 in ppc_before_allocation () at eelf64ppc_fbsd.c:204
#2  0x0000000010009be4 in ldemul_before_allocation () at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldemul.c:78
#3  0x0000000010017b00 in lang_process () at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldlang.c:5785
#4  0x0000000010021ce0 in main (argc=0, argv=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldmain.c:459
#5  0x00000000100004a8 in _start (argc=0, argv=0x50a22400, env=0x50bb3658, 
obj=<value optimized out>, cleanup=<value optimized out>, ps_strings=<value 
optimized out>)
    at /usr/src/lib/csu/powerpc64/crt1.c:94
Current language:  auto; currently minimal


Core was generated by `/usr/bin/ld --eh-frame-hdr -Bstatic -o strfile.full 
/usr/lib/crt1.o /usr/lib/crt'.
Program terminated with signal 11, Segmentation fault.
#0  0x000000001002e148 in ppc64_elf_tls_optimize (obfd=<value optimized out>, 
info=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-ppc.c:7172
7172                          for (ent = htab->tls_get_addr->elf.plt.plist;
(gdb) bt
#0  0x000000001002e148 in ppc64_elf_tls_optimize (obfd=<value optimized out>, 
info=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/libbfd/../../../../contrib/binutils/bfd/elf64-ppc.c:7172
#1  0x0000000010001034 in ppc_before_allocation () at eelf64ppc_fbsd.c:204
#2  0x0000000010009be4 in ldemul_before_allocation () at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldemul.c:78
#3  0x0000000010017b00 in lang_process () at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldlang.c:5785
#4  0x0000000010021ce0 in main (argc=0, argv=<value optimized out>) at 
/usr/src/gnu/usr.bin/binutils/ld/../../../../contrib/binutils/ld/ldmain.c:459
#5  0x00000000100004a8 in _start (argc=0, argv=0x50a222c0, env=0x50bdbfb8, 
obj=<value optimized out>, cleanup=<value optimized out>, ps_strings=<value 
optimized out>)
    at /usr/src/lib/csu/powerpc64/crt1.c:94
Current language:  auto; currently minimal


It appears that clang 5 outputs something
that the system ld does not expect, such that
htab->tls_get_addr==NULL is involved when
expecting_tls_get_addr==1 .


Details for the failing build's context:

# more 
~/sys_build_scripts.powerpc64-host/make_powerpc64vtsc_nodebug_gcc421_bootstrap-powerpc64-host.sh
 
kldload -n filemon && \
script 
~/sys_typescripts/typescript_make_powerpc64vtsc_nodebug_gcc421_bootstrap-powerpc64-host-$(date
 +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" \
SRCCONF="/dev/null" 
SRC_ENV_CONF="/root/src.configs/src.conf.powerpc64-gcc421-bootstrap.powerpc64-host"
 \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/powerpc64vtsc_gcc421/powerpc.powerpc64" \
make $*

# more /root/src.configs/src.conf.powerpc64-gcc421-bootstrap.powerpc64-host
TO_TYPE=powerpc64
#
KERNCONF=GENERIC64vtsc-NODBG
TARGET=powerpc
.if ${.MAKE.LEVEL} == 0
TARGET_ARCH=${TO_TYPE}
.export TARGET_ARCH
.endif
#
#WITH_CROSS_COMPILER=
WITH_SYSTEM_COMPILER=
#
WITHOUT_LIBCPLUSPLUS=
WITH_BINUTILS_BOOTSTRAP=
WITH_ELFTOOLCHAIN_BOOTSTRAP=
WITHOUT_CLANG_BOOTSTRAP=
WITHOUT_CLANG=
WITHOUT_CLANG_IS_CC=
WITHOUT_CLANG_FULL=
WITHOUT_CLANG_EXTRAS=
WITHOUT_LLD=
WITHOUT_LLDB=
#
WITH_BOOT=
WITH_LIB32=
#
WITH_GCC_BOOTSTRAP=
WITH_GCC=
WITH_GCC_IS_CC=
WITH_GNUCXX=
#
NO_WERROR=
#WERROR=
MALLOC_PRODUCTION=
#
WITH_REPRODUCIBLE_BUILD=
WITH_DEBUG_FILES=


Making it work means adding
(for example):

TOOLS_TO_TYPE=${TO_TYPE}
. . .
#
#
# 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=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
.if ${.MAKE.LEVEL} == 0
#
CFLAGS.clang+= -B${CROSS_BINUTILS_PREFIX}
CXXFLAGS.clang+= -B${CROSS_BINUTILS_PREFIX}
.export CFLAGS.clang
.export CXXFLAGS.clang
AS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
AR=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
NM=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm
OBJCOPY=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy
OBJDUMP=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump
RANLIB=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib
XSIZE=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size
#NO-SUCH: STRINGS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings
STRINGS=/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings
.export AS
.export AR
.export NM
.export OBJCOPY
.export OBJDUMP
.export RANLIB
.export SIZE
.export STRINGS
LD=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
.export LD
.endif

As I remember, back in clang 4 days I did
not have to do such a thing (or it would
have been already be in place in my
environment for these experiments).

It may well be that 32-bit powerpc would
not have this issue.

===
Mark Millard
markmi at dsl-only.net

_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to