[Looks like gcc7 might be causing its own problem via a vec_step macro name in its altivec.h .]
On 2017-Sep-29, at 1:14 AM, Mark Millard <markmi at dsl-only.net> wrote: > 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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' > ===> Compilation failed unexpectedly. > Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to > the maintainer. > *** Error code 1 > > Stop. > make: stopped in /usr/ports/lang/gcc7 > =>> Cleaning up wrkdir > ===> 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 !!! Turns out that there is: # grep -r "\<vec_step\>" ~/poudriere_failure/lang_gcc7/ | more . . . /root/poudriere_failure/lang_gcc7/work/gcc-7.2.0/gcc/config/rs6000/altivec.h:/* Given the vec_step of a type, return the corresponding bool type. */ /root/poudriere_failure/lang_gcc7/work/gcc-7.2.0/gcc/config/rs6000/altivec.h:typename __altivec_bool_ret <vec_step (T)>::__ret \ /root/poudriere_failure/lang_gcc7/work/gcc-7.2.0/gcc/config/rs6000/altivec.h: to #define vec_step to __builtin_vec_step. */ /root/poudriere_failure/lang_gcc7/work/gcc-7.2.0/gcc/config/rs6000/altivec.h:#define vec_step(x) __builtin_vec_step (* (__typeof__ (x) *) 0) . . . ( config/s390/vecintrin.h has something similar.) > 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:KEYWORD(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 > TO_TYPE=powerpc64 > TOOLS_TO_TYPE=${TO_TYPE} > VERSION_CONTEXT=12.0 > # > KERNCONF=GENERIC64vtsc-NODBG > TARGET=powerpc > .if ${.MAKE.LEVEL} == 0 > TARGET_ARCH=${TO_TYPE} > .export TARGET_ARCH > .endif > # > WITH_CROSS_COMPILER= > WITHOUT_SYSTEM_COMPILER= > # > WITH_LIBCPLUSPLUS= > WITHOUT_BINUTILS_BOOTSTRAP= > WITH_ELFTOOLCHAIN_BOOTSTRAP= > WITH_CLANG_BOOTSTRAP= > WITH_CLANG= > WITH_CLANG_IS_CC= > WITH_CLANG_FULL= > WITH_CLANG_EXTRAS= > WITHOUT_LLD_BOOTSTRAP= > WITH_LLD= > WITHOUT_LLD_IS_LD= > WITH_LLDB= > # > WITH_BOOT= > WITH_LIB32= > # > WITHOUT_GCC_BOOTSTRAP= > WITHOUT_GCC= > WITHOUT_GCC_IS_CC= > WITHOUT_GNUCXX= > # > NO_WERROR= > MALLOC_PRODUCTION= > # > # Avoid converts between pointers to integer types with different sign > [-Werror,-Wpointer-sign] > # and such from blocking the build. > WERROR= > # > WITH_REPRODUCIBLE_BUILD= > WITH_DEBUG_FILES= > # > # > # 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 > # > # Note: The WITH_CROSS_COMPILER picks up the CROSS_BINUTILS_PREFIX > # binding automatically. > # > XAS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as > XAR=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar > XNM=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm > XOBJCOPY=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy > XOBJDUMP=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump > XRANLIB=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib > XSIZE=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size > #NO-SUCH: XSTRINGS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings > XSTRINGS=/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=/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_ARMAssembler.h > ? > /usr/ports/www/qt5-webkit/files/patch-Source_JavaScriptCore_assembler_ARMv7Assembler.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=1 > # > DEFAULT_VERSIONS+=perl5=5.24 gcc=7 > # > # From a local /usr/ports/Mk/bsd.port.mk extension: > ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG= > # > .if ${.CURDIR:M*/devel/llvm*} > #WITH_DEBUG= > .elif ${.CURDIR:M*/www/qt5-webkit*} > #WITH_DEBUG= > .else > WITH_DEBUG= > .endif > MALLOC_PRODUCTION= > # > # The system clang for TARGET_ARCH=powerpc64 > # 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= > CFLAGS+=-B${LOCALBASE}/bin/ > CXXFLAGS+=-B${LOCALBASE}/bin/ > CPPFLAGS+=-B${LOCALBASE}/bin/ > > > # svnlite diff /usr/ports/Mk/bsd.port.mk > Index: /usr/ports/Mk/bsd.port.mk > =================================================================== > --- /usr/ports/Mk/bsd.port.mk (revision 450478) > +++ /usr/ports/Mk/bsd.port.mk (working copy) > @@ -1130,12 +1130,12 @@ > > # Get the operating system type > .if !defined(OPSYS) > -OPSYS!= ${UNAME} -s > +OPSYS!= echo FreeBSD > .endif > _EXPORTED_VARS+= OPSYS > > .if !defined(_OSRELEASE) > -_OSRELEASE!= ${UNAME} -r > +_OSRELEASE!= echo 12.0-CURRENT > .endif > _EXPORTED_VARS+= _OSRELEASE > > @@ -1651,7 +1651,11 @@ > STRIP_CMD= ${TRUE} > .endif > DEBUG_FLAGS?= -g > +.if defined(ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG) > +CFLAGS:= ${CFLAGS} ${DEBUG_FLAGS} > +.else > CFLAGS:= ${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS} > +.endif > .if defined(INSTALL_TARGET) > INSTALL_TARGET:= ${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.) === 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"