My 1st head -r351102 amd64->powerpc64 cross-build via devel/llvm90 failed, but it may be just operator error
Mark Millard
marklmi at yahoo.com
Fri Aug 16 02:00:18 UTC 2019
My first attempt to cross buildworld buildkernel amd64->powerpc64
via devel/llvm90 without involving devel/powerpc64-binutils (or
other such) failed with:
--- gnu/lib/libssp/libssp_nonshared__PL ---
/usr/local/llvm90/bin/llvm-ranlib: error: Exactly one archive should be specified.
OVERVIEW: LLVM Ranlib (llvm-ranlib)
This program generates an index to speed access to archives
USAGE: llvm-ranlib <archive-file>
OPTIONS:
-help - Display available options
-version - Display the version of this program
*** [libssp_nonshared.a] Error code 1
make[4]: *** libssp_nonshared.a removed
make[4]: stopped in /usr/src/gnu/lib/libssp/libssp_nonshared
.ERROR_TARGET='libssp_nonshared.a'
.ERROR_META_FILE='/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/gnu/lib/libssp/libssp_nonshared/libssp_nonshared.a.meta'
.MAKE.LEVEL='4'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='@echo building static ssp_nonshared library; @rm -f libssp_nonshared.a; /usr/local/llvm90/bin/llvm-ar -crD libssp_nonshared.a `NM='/usr/local/llvm90/bin/llvm-nm' NMFLAGS='' lorder ssp-local.o | tsort -q` ; /usr/local/llvm90/bin/llvm-ranlib -D libssp_nonshared.a;'
.CURDIR='/usr/src/gnu/lib/libssp/libssp_nonshared'
.MAKE='make'
.OBJDIR='/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/gnu/lib/libssp/libssp_nonshared'
.TARGETS='all'
DESTDIR='/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp'
LD_LIBRARY_PATH=''
MACHINE='powerpc'
MACHINE_ARCH='powerpc64'
MAKEOBJDIRPREFIX=''
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20181221'
PATH='/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/usr/sbin:/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/usr/bin:/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/legacy/bin::/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/powerpc64vtsc_xtoolchain-llvm/powerpc.powerpc64/usr/src/powerpc.powerpc64'
.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-xtoolchain-llvm.amd64-host /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/gnu/lib/libssp/libssp_nonshared/Makefile /usr/src/share/mk/bsd.lib.mk /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/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk /usr/src/share/mk/bsd.linker.mk /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.symver.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.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='. /usr/src/gnu/lib/libssp/libssp_nonshared /usr/src/contrib/gcclibs/libssp /usr/src/contrib/gcclibs/libssp/ssp'
1 error
This was based on head -r351102 trying to cross-build itself and
on using:
# more ~/src.configs/src.conf.powerpc64-xtoolchain-llvm.amd64-host
TO_TYPE=powerpc64
LLVM_VINTAGE=llvm90
#
KERNCONF=GENERIC64vtsc-NODBG
TARGET=powerpc
.if ${.MAKE.LEVEL} == 0
TARGET_ARCH=${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITHOUT_CROSS_COMPILER=
WITHOUT_SYSTEM_COMPILER=
WITHOUT_SYSTEM_LINKER=
#
WITH_LLVM_LIBUNWIND=
WITH_LIBCPLUSPLUS=
WITHOUT_LLD_BOOTSTRAP=
WITHOUT_BINUTILS_BOOTSTRAP=
WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
WITHOUT_LLVM_TARGET_ALL=
WITHOUT_CLANG_BOOTSTRAP=
WITH_CLANG=
WITH_CLANG_IS_CC=
WITH_CLANG_FULL=
WITH_CLANG_EXTRAS=
WITH_LLD=
WITH_LLD_IS_LD=
WITHOUT_BINUTILS=
WITHOUT_PORT_BASE_BINUTILS=
WITH_LLDB=
#
WITH_BOOT=
WITH_LIB32=
#
LOADER_DEFAULT_INTERP=4th
#
WITHOUT_GCC_BOOTSTRAP=
WITHOUT_GCC=
WITHOUT_GCC_IS_CC=
WITHOUT_GNUCXX=
#
NO_WERROR=
#
# Avoid build aborting for the likes of, for example,
# sign mismatch errors for integer types. Avoids:
# [-Werror,-Wpointer-sign]
#
WERROR=
MALLOC_PRODUCTION=
#
# Avoid stripping but do not control host -g status as well:
DEBUG_FLAGS+=
#
WITH_REPRODUCIBLE_BUILD=
WITH_DEBUG_FILES=
#
#
# For TO (so-called "cross") stages . . .
#
CROSS_TOOLCHAIN=${LLVM_VINTAGE}
#X_COMPILER_TYPE=clang
CROSS_BINUTILS_PREFIX=/usr/local/${LLVM_VINTAGE}/bin/
.if ${.MAKE.LEVEL} == 0
XCC=/usr/local/bin/clang90
XCXX=/usr/local/bin/clang++90
XCPP=/usr/local/bin/clang-cpp90
.export XCC
.export XCXX
.export XCPP
XAS=/usr/local/${LLVM_VINTAGE}/bin/llvm-as
XAR=/usr/local/${LLVM_VINTAGE}/bin/llvm-ar
XLD=/usr/local/${LLVM_VINTAGE}/bin/ld
XNM=/usr/local/${LLVM_VINTAGE}/bin/llvm-nm
XOBJCOPY=/usr/local/${LLVM_VINTAGE}/bin/llvm-objcopy
XOBJDUMP=/usr/local/${LLVM_VINTAGE}/bin/llvm-objdump
XRANLIB=/usr/local/${LLVM_VINTAGE}/bin/llvm-ranlib
XSIZE=/usr/local/${LLVM_VINTAGE}/bin/llvm-size
XSTRINGS=/usr/local/${LLVM_VINTAGE}/bin/llvm-strings
.export XAS
.export XAR
.export XLD
.export XNM
.export XOBJCOPY
.export XOBJDUMP
.export XRANLIB
.export XSIZE
.export XSTRINGS
.endif
#
#
# From based on clang (via system). . .
#
.if ${.MAKE.LEVEL} == 0
CC=/usr/bin/clang
CXX=/usr/bin/clang++
CPP=/usr/bin/clang-cpp
.export CC
.export CXX
.export CPP
.endif
It may well be that the use of some of llvm-as, llvm-ar,
llvm-nm, llvm-objcopy, llvm-objdump, llvm-ranlib,
llvm-size, and llvm-strings is not intended. But I've
not seen a description of the intent.
(My build with devel/powerpc64-binutils involved
completed just fine.)
For reference, devel/llvm90 here is based on ports head
-r509054 providing rc2 of llvm90.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-ppc
mailing list