Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jan 2016 03:25:53 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   powerpc64-gcc unable to compile clang 3.8.0 from clang380-import -r294609 via buildworld
Message-ID:  <67523280-9F20-4638-BF24-1BFAE8583805@dsl-only.net>

next in thread | raw e-mail | index | archive | help
I tried a buildworld that included building clang and lldb based on =
using powerpc64-xtoolchain-gcc/powerpc64-gcc as a cross compiler. It =
failed, see below. This might indicate a more general gcc 5.x vs. clang =
3.8.0 source code mismatch. This was my first try. This could have been =
true for some time.

--- CFG.o ---
/usr/local/bin/powerpc64-portbld-freebsd11.0-g++ -isystem =
/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include =
-L/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/lib =
--sysroot=3D/usr/obj/xtoolchain/powerpc.po
werpc64/usr/src/tmp -B/usr/local/powerpc64-freebsd/bin/ =
-I/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include/c++/v1 =
-std=3Dgnu++11 =
-L/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/../lib/libc++ =
--sysroot=3D/usr
/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp =
-B/usr/local/powerpc64-freebsd/bin/  -O2 -pipe =
-I/usr/src/lib/clang/libclanganalysis/../../../contrib/llvm/include =
-I/usr/src/lib/clang/libclanganalysis/../../../contrib/llvm
/tools/clang/include =
-I/usr/src/lib/clang/libclanganalysis/../../../contrib/llvm/tools/clang/li=
b/Analysis -I. =
-I/usr/src/lib/clang/libclanganalysis/../../../contrib/llvm/../../lib/clan=
g/include -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS =
-D__STDC_CONSTANT_MACROS -DCLANG_ENABLE_ARCMT =
-DCLANG_ENABLE_STATIC_ANALYZER -fno-strict-aliasing =
-DLLVM_DEFAULT_TARGET_TRIPLE=3D\"powerpc64-unknown-freebsd11.0\" =
-DLLVM_HOST_TRIPLE=3D\"powerpc64
-unknown-freebsd11.0\" -DDEFAULT_SYSROOT=3D\"\" -MD -MP -MF.depend.CFG.o =
-MTCFG.o -fstack-protector-strong -Wno-error=3Dunused-function =
-Wno-error=3Denum-compare -Wno-error=3Dlogical-not-parentheses =
-Wno-error=3Dbool-compare -Wno-
error=3Duninitialized -Wno-error=3Darray-bounds -Wno-error=3Dclobbered =
-Wno-error=3Dcast-align -Wno-error=3Dextra -Wno-error=3Dattributes =
-Wno-error=3Dinline -Wno-error=3Dunused-but-set-variable =
-Wno-error=3Dunused-value -Wno-error=3Dstrict
-aliasing -Wno-error=3Daddress  -std=3Dc++11 -fno-exceptions -fno-rtti  =
-c =
/usr/src/lib/clang/libclanganalysis/../../../contrib/llvm/tools/clang/lib/=
Analysis/CFG.cpp -o CFG.o
. . .
--- all_subdir_libclanganalysis ---
=
/usr/src/lib/clang/libclanganalysis/../../../contrib/llvm/tools/clang/lib/=
Analysis/CFG.cpp: In member function 'std::__1::unique_ptr<clang::CFG> =
{anonymous}::CFGBuilder::buildCFG(const clang::Decl*, clang::Stmt*)':
=
/usr/src/lib/clang/libclanganalysis/../../../contrib/llvm/tools/clang/lib/=
Analysis/CFG.cpp:1046:45: error: no matching function for call to =
'reverse(clang::CXXConstructorDecl::init_const_range)'
     for (auto *I : llvm::reverse(CD->inits())) {
                                             ^

(not the only error reported for CFG.cpp=E2=80=99s compile, I just =
listed the first).

I do not know if the -std=3Dgnu++11 that is automatically used is =
causing variations in the language definition in use or not.



I do this sort of thing with 11.0-CURRENT now and have been for a long =
time, including building clang 3.7.1 and its lldb via powerpc64-gcc in =
more recent times. But powerpc64-gcc has historically rejected the clang =
extras so I=E2=80=99ve used WITHOUT_CLANG_EXTRAS=3D historically.



Some context notes:

Empty make.conf via __MAKE_CONF use.

scr.conf:
(actually: used via SRC_ENV_CONF=3D)

TO_TYPE=3Dpowerpc64
TOOLS_TO_TYPE=3D${TO_TYPE}
FROM_TYPE=3Damd64
TOOLS_FROM_TYPE=3Dx86_64
VERSION_CONTEXT=3D11.0
#
KERNCONF=3DGENERIC64vtsc-NODEBUG
TARGET=3Dpowerpc
.if ${.MAKE.LEVEL} =3D=3D 0
TARGET_ARCH=3D${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITHOUT_CROSS_COMPILER=3D
#
# 1 thing that fails to build if attempted via gcc variants:
WITHOUT_CLANG_EXTRAS=3D
#
WITH_FAST_DEPEND=3D
WITH_LIBCPLUSPLUS=3D
WITH_LIB32=3D
WITH_BOOT=3D
WITH_CLANG=3D
WITH_CLANG_IS_CC=3D
WITH_CLANG_FULL=3D
WITH_LLDB=3D
#
WITHOUT_GCC=3D
WITHOUT_GNUCXX=3D
#
NO_WERROR=3D
MALLOC_PRODUCTION=3D
#CFLAGS+=3D -DELF_VERBOSE
#
WITH_DEBUG=3D
WITH_DEBUG_FILES=3D
#
# TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related bintutils...
#
CROSS_TOOLCHAIN=3D${TO_TYPE}-gcc
X_COMPILER_TYPE=3Dgcc
CROSS_BINUTILS_PREFIX=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
#
.if ${.MAKE.LEVEL} =3D=3D 0
=
XCC=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-gc=
c
=
XCXX=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-g=
++
=
XCPP=3D/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-c=
pp
.export XCC
.export XCXX
.export XCPP
XAS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
XAR=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
XLD=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
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 XLD
.export XNM
.export XOBJCOPY
.export XOBJDUMP
.export XRANLIB
.export XSIZE
.export XSTRINGS
.endif
#
# =46rom clang (via system)...
#
.if ${.MAKE.LEVEL} =3D=3D 0
CC=3D/usr/bin/clang -B/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin
CXX=3D/usr/bin/clang++ -B/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin
CPP=3D/usr/bin/clang-cpp -B/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin
.export CC
.export CXX
.export CPP
.endif
#
# TOOLS_FROM_TYPE binutils...
#
.if ${.MAKE.LEVEL} =3D=3D 0
AS=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/as
AR=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/ar
LD=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/ld
NM=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/nm
OBJCOPY=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/objcopy
OBJDUMP=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/objdump
RANLIB=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/ranlib
SIZE=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/size
#NO-SUCH: STRINGS=3D/usr/local/${TOOLS_FROM_TYPE}-freebsd/bin/strings
STRINGS=3D/usr/local/bin/${TOOLS_FROM_TYPE}-freebsd-strings
.export AS
.export AR
.export LD
.export NM
.export OBJCOPY
.export OBJDUMP
.export RANLIB
.export SIZE
.export STRINGS
.endif



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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?67523280-9F20-4638-BF24-1BFAE8583805>