Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Sep 2017 01:14:01 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   head -r324071 system clang 5 based powerpc64 building ports: lang/gcc7 messed up by a matching name vec_step?
Message-ID:  <47941770-2A08-4524-8BCC-3FE1D2F3B7F2@dsl-only.net>

next in thread | raw e-mail | index | archive | help
I attempted a poudriere based build of some
ports and the gcc7 build involved failed
with the following sorts of notices:


=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:3835:27: =
error: expected unqualified-id
  tree new_vec, vec_init, vec_step, t;
                          ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:3835:26: =
error: expected ';' at end of declaration
  tree new_vec, vec_init, vec_step, t;
                         ^
                         ;
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:3983:3: =
error: use of undeclared identifier 't'
  t =3D unshare_expr (new_name);
  ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:3988:49: =
error: use of undeclared identifier 't'
  new_vec =3D build_vector_from_val (stepvectype, t);
                                                ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:3989:12: =
error: expected expression
  vec_step =3D vect_init_vector (iv_phi, new_vec, stepvectype, NULL);
           ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:4011:75: =
error: expected expression
  new_stmt =3D gimple_build_assign (vec_dest, PLUS_EXPR, induc_def, =
vec_step);
                                                                         =
 ^
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:4048:7: =
error: use of undeclared identifier 't'
      t =3D unshare_expr (new_name);
      ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:4051:53: =
error: use of undeclared identifier 't'
      new_vec =3D build_vector_from_val (stepvectype, t);
                                                    ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:4052:16: =
error: expected expression
      vec_step =3D vect_init_vector (iv_phi, new_vec, stepvectype, =
NULL);
               ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:4060:25: =
error: expected expression
                                          vec_def, vec_step);
                                                           ^
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:6327:9: =
error: expected unqualified-id
          tree vec_step =3D build_vector_from_val (cr_index_vector_type, =
step);
               ^
=
/wrkdirs/usr/ports/lang/gcc7/work/gcc-7.2.0/gcc/tree-vect-loop.c:6333:36: =
error: expected expression
          create_iv (series_vect, vec_step, NULL_TREE, loop, &incr_gsi,
                                          ^
50 warnings and 12 errors generated.
gmake[3]: *** [Makefile:1099: tree-vect-loop.o] Error 1
gmake[3]: *** Waiting for unfinished jobs....
42 warnings generated.
51 warnings generated.
50 warnings generated.
rm gfortran.pod gcc.pod
gmake[3]: Leaving directory =
'/wrkdirs/usr/ports/lang/gcc7/work/.build/gcc'
gmake[2]: *** [Makefile:4225: all-gcc] Error 2
gmake[2]: Leaving directory '/wrkdirs/usr/ports/lang/gcc7/work/.build'
gmake[1]: *** [Makefile:893: all] Error 2
gmake[1]: Leaving directory '/wrkdirs/usr/ports/lang/gcc7/work/.build'
=3D=3D=3D> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=3Dyes and rebuild before reporting the =
failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/gcc7
=3D>> Cleaning up wrkdir
=3D=3D=3D>  Cleaning for gcc7-7.2.0_1
build of lang/gcc7 | gcc7-7.2.0_1 ended at Fri Sep 29 00:22:00 PDT 2017
build time: 00:29:27
!!! build failure encountered !!!


FYI:

# grep -r "\<vec_step\>" /usr/src/* | more
/usr/src/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp:    OS << " =
vec_step";
/usr/src/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp:    OS << =
"vec_step";
/usr/src/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp:/// =
VisitUnaryExprOrTypeTraitExpr - Evaluate a sizeof, alignof or vec_step =
with
/usr/src/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp:      // The =
vec_step built-in functions that take a 3-component
/usr/src/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp:             =
                        "cannot yet mangle vec_step expression");
/usr/src/contrib/llvm/tools/clang/lib/Headers/opencl-c.h: * by =
vec_step(gentypem). The shuffle mask operand
/usr/src/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp:  case =
tok::kw_vec_step:   // unary-expression: OpenCL 'vec_step' expression
/usr/src/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp:/// vec_step =
and we are at the start of an expression or a parenthesized
/usr/src/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp:/// [OpenCL =
1.1 6.11.12] vec_step built-in function:
/usr/src/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp:///           =
vec_step ( expressions )
/usr/src/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp:///           =
vec_step ( type-name )
/usr/src/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp:         "Not =
a typeof/sizeof/alignof/vec_step expression!");
/usr/src/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp:         "Not =
a sizeof/alignof/vec_step expression!");
/usr/src/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp:  // [OpenCL 1.1 =
6.11.12] "The vec_step built-in function takes a built-in
/usr/src/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h:  /// \brief =
Build a new sizeof, alignof or vec_step expression with a
/usr/src/contrib/llvm/tools/clang/include/clang/AST/Expr.h:/// vec_step =
(OpenCL 1.1 6.11.12).
=
/usr/src/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h:=
/// \brief Matches sizeof (C99), alignof (C++11) and vec_step (OpenCL)
=
/usr/src/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.=
td:  "invalid application of '%select{sizeof|alignof|vec_step}0' to a "
=
/usr/src/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.=
td:  "invalid application of '%select{sizeof|alignof|vec_step}0' to a =
void "
=
/usr/src/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.=
td:  "invalid application of =
'%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align}0' to =
a void type">;
=
/usr/src/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.=
td:  "invalid application of =
'%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align}0' to =
an "
=
/usr/src/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.=
td:  "invalid application of =
'%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align}0' to =
a "
=
/usr/src/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.=
td:  "'vec_step' requires built-in scalar or vector type, %0 invalid">;
=
/usr/src/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def:KEYWO=
RD(vec_step                    , KEYOPENCL|KEYALTIVEC|KEYZVECTOR)
/usr/src/contrib/gcc/config/rs6000/altivec.h:/* Given the vec_step of a =
type, return the corresponding bool type.  */
/usr/src/contrib/gcc/config/rs6000/altivec.h:typename __altivec_bool_ret =
<vec_step (T)>::__ret \
/usr/src/contrib/gcc/config/rs6000/altivec.h:   to #define vec_step to =
__builtin_vec_step.  */
/usr/src/contrib/gcc/config/rs6000/altivec.h:#define vec_step(x) =
__builtin_vec_step (* (__typeof__ (x) *) 0)
/usr/src/contrib/gcc/ChangeLog-2002:    * config/rs6000/altivec.h =
(vec_step): Remove extraneous
/usr/src/contrib/gcc/ChangeLog-2002:    (vec_step): Implement for C++.


Context:

# uname -apKU
FreeBSD FBSDG5L 12.0-CURRENT FreeBSD 12.0-CURRENT  r324071M  powerpc =
powerpc64 1200047 1200047

Built via amd64 -> powerpc64 cross build, using clang
for buildworld:

[Note: The kernel was built with gcc 4.2.1 .]

# poudriere jail -l
JAILNAME      VERSION      ARCH              METHOD TIMESTAMP           =
PATH
FBSDpowerpc64 12.0-CURRENT powerpc.powerpc64 null   2017-09-28 20:55:01 =
/usr/obj/DESTDIRs/clang-powerpc64-installworld_altbinutils-poud

(It is using /usr/src .)

# poudriere ports -l
PORTSTREE METHOD TIMESTAMP           PATH
default   null   2017-09-28 17:04:57 /usr/ports


# more =
~/src.configs/src.conf.powerpc64-clang_altbinutils-bootstrap.amd64-host=20=

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

# svnlite status /usr/src/ | sort
?       /usr/src/sys/amd64/conf/GENERIC-DBG
?       /usr/src/sys/amd64/conf/GENERIC-NODBG
?       /usr/src/sys/arm/conf/GENERIC-DBG
?       /usr/src/sys/arm/conf/GENERIC-NODBG
?       /usr/src/sys/arm64/conf/GENERIC-DBG
?       /usr/src/sys/arm64/conf/GENERIC-NODBG
?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-DBG
?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODBG
?       /usr/src/sys/powerpc/conf/GENERICvtsc-DBG
?       /usr/src/sys/powerpc/conf/GENERICvtsc-NODBG
M       /usr/src/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
M       /usr/src/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp
M       /usr/src/crypto/openssl/crypto/armcap.c
M       /usr/src/lib/Makefile
M       /usr/src/lib/libkvm/kvm_powerpc.c
M       /usr/src/lib/libkvm/kvm_private.c
M       /usr/src/sys/arm64/arm64/identcpu.c
M       /usr/src/sys/arm64/arm64/mp_machdep.c
M       /usr/src/sys/boot/ofw/Makefile.inc
M       /usr/src/sys/boot/powerpc/Makefile.inc
M       /usr/src/sys/boot/powerpc/boot1.chrp/Makefile
M       /usr/src/sys/boot/powerpc/kboot/Makefile
M       /usr/src/sys/boot/uboot/Makefile.inc
M       /usr/src/sys/conf/kmod.mk
M       /usr/src/sys/conf/ldscript.powerpc
M       /usr/src/sys/ddb/db_main.c
M       /usr/src/sys/ddb/db_script.c
M       /usr/src/sys/kern/subr_pcpu.c
M       /usr/src/sys/powerpc/aim/mmu_oea64.c
M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
M       /usr/src/sys/powerpc/powerpc/interrupt.c
M       /usr/src/sys/powerpc/powerpc/mp_machdep.c
M       /usr/src/sys/powerpc/powerpc/trap.c



# svnlite info /usr/ports/ | grep "Re[plv]"
Relative URL: ^/head
Repository Root: svn://svn0.us-west.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 450478
Last Changed Rev: 450478

# svnlite status /usr/ports
M       /usr/ports/Mk/bsd.port.mk
M       /usr/ports/Mk/bsd.qt.mk
M       /usr/ports/audio/liba52/Makefile
M       /usr/ports/base/gcc/Makefile
M       /usr/ports/base/gcc/distinfo
M       /usr/ports/base/gcc/pkg-plist
M       /usr/ports/devel/libunwind/Makefile
?       =
/usr/ports/devel/qt5/files/extrapatch-config.tests_unix_arch.test
M       /usr/ports/lang/gcc7/Makefile
M       /usr/ports/sysutils/cdrdao/Makefile
?       =
/usr/ports/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMA=
ssembler.h
?       =
/usr/ports/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMv=
7Assembler.h
?       =
/usr/ports/www/qt5-webkit/files/patch-Source_JavaScriptCore_offlineasm_arm=
.rb
?       /usr/ports/www/qt5-webkit/files/patch-Source_WTF_wtf_Platform.h
?       =
/usr/ports/www/qt5-webkit/files/patch-Source_WebCore_platform_graphics_cpu=
_arm_filters_FELightingNEON.cpp
?       =
/usr/ports/www/qt5-webkit/files/patch-Source_bmalloc_bmalloc_BPlatform.h


# more /usr/local/etc/poudriere.d/make.conf
WANT_QT_VERBOSE_CONFIGURE=3D1
#
DEFAULT_VERSIONS+=3Dperl5=3D5.24 gcc=3D7
#
# =46rom a local /usr/ports/Mk/bsd.port.mk extension:
ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG=3D
#
.if ${.CURDIR:M*/devel/llvm*}
#WITH_DEBUG=3D
.elif ${.CURDIR:M*/www/qt5-webkit*}
#WITH_DEBUG=3D
.else
WITH_DEBUG=3D
.endif
MALLOC_PRODUCTION=3D
#
# The system clang for TARGET_ARCH=3Dpowerpc64
# and the system binutils (such as ld) do not
# (yet?) mix well. So for ports use the
# devel/binutils ones. (A problem before
# they are already in place!)
#USE_BINUTILS=3D
CFLAGS+=3D-B${LOCALBASE}/bin/
CXXFLAGS+=3D-B${LOCALBASE}/bin/
CPPFLAGS+=3D-B${LOCALBASE}/bin/


# svnlite diff /usr/ports/Mk/bsd.port.mk
Index: /usr/ports/Mk/bsd.port.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/ports/Mk/bsd.port.mk	(revision 450478)
+++ /usr/ports/Mk/bsd.port.mk	(working copy)
@@ -1130,12 +1130,12 @@
=20
 # Get the operating system type
 .if !defined(OPSYS)
-OPSYS!=3D	${UNAME} -s
+OPSYS!=3D	echo FreeBSD
 .endif
 _EXPORTED_VARS+=3D	OPSYS
=20
 .if !defined(_OSRELEASE)
-_OSRELEASE!=3D	${UNAME} -r
+_OSRELEASE!=3D	echo 12.0-CURRENT
 .endif
 _EXPORTED_VARS+=3D	_OSRELEASE
=20
@@ -1651,7 +1651,11 @@
 STRIP_CMD=3D	${TRUE}
 .endif
 DEBUG_FLAGS?=3D	-g
+.if defined(ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG)
+CFLAGS:=3D		${CFLAGS} ${DEBUG_FLAGS}
+.else
 CFLAGS:=3D		${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS}
+.endif
 .if defined(INSTALL_TARGET)
 INSTALL_TARGET:=3D	${INSTALL_TARGET:S/^install-strip$/install/g}
 .endif


(Note: I've had problems with some ${UNAME} use returning empty strings,
which is why I've used echo as a replacement in places. The real point
for the above is the ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG use.)


=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?47941770-2A08-4524-8BCC-3FE1D2F3B7F2>