[If work/gcc-7.2.0/gcc/tree-vect-loop.c avoids the name vec_step then it avoids the conflicting use for altivec support in the powerpc64 context. I used vec_step_renamed as the name in work/gcc-7.2.0/gcc/tree-vect-loop.c instead. Similarly for devel/powerpc64-gcc and likely other variants.]
On 2017-Sep-29, at 12:14 PM, Mark Millard <mar...@dsl-only.net> wrote: > Summary of later additions: > > devel/powerpc64-gcc has the same problem as gcc7 > in this clang-based powerpc64. > > My note about using gcc 4.2.1 for the kernel > build was wrong. (My 32-bit powerpc builds > are that way, not the powerpc64 ones.) > > On 2017-Sep-29, at 1:51 AM, Mark Millard <markmi at dsl-only.net> wrote: > >> [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: > > devel/powerpc64-gcc has the same problem as gcc7 > in this clang-based powerpc64 > >>> /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.) It turns out that avoiding the non-global identifier vec_step allows getting past this issue. For lang/gcc7 : # more /usr/ports/lang/gcc7/files/patch-gcc_tree-vect-loop.c --- gcc/tree-vect-loop.c.orig 2017-03-28 15:35:56 UTC +++ gcc/tree-vect-loop.c @@ -3832,7 +3832,7 @@ get_initial_def_for_induction (gimple *iv_phi) edge pe = loop_preheader_edge (loop); struct loop *iv_loop; basic_block new_bb; - tree new_vec, vec_init, vec_step, t; + tree new_vec, vec_init, vec_step_renamed, t; tree new_name; gimple *new_stmt; gphi *induction_phi; @@ -3986,7 +3986,7 @@ get_initial_def_for_induction (gimple *iv_phi) stepvectype = get_vectype_for_scalar_type (TREE_TYPE (new_name)); gcc_assert (stepvectype); new_vec = build_vector_from_val (stepvectype, t); - vec_step = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); + vec_step_renamed = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); /* Create the following def-use cycle: @@ -4008,7 +4008,7 @@ get_initial_def_for_induction (gimple *iv_phi) induc_def = PHI_RESULT (induction_phi); /* Create the iv update inside the loop */ - new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR, induc_def, vec_step); + new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR, induc_def, vec_step_renamed); vec_def = make_ssa_name (vec_dest, new_stmt); gimple_assign_set_lhs (new_stmt, vec_def); gsi_insert_before (&si, new_stmt, GSI_SAME_STMT); @@ -4049,7 +4049,7 @@ get_initial_def_for_induction (gimple *iv_phi) gcc_assert (CONSTANT_CLASS_P (new_name) || TREE_CODE (new_name) == SSA_NAME); new_vec = build_vector_from_val (stepvectype, t); - vec_step = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); + vec_step_renamed = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); vec_def = induc_def; prev_stmt_vinfo = vinfo_for_stmt (induction_phi); @@ -4057,7 +4057,7 @@ get_initial_def_for_induction (gimple *iv_phi) { /* vec_i = vec_prev + vec_step */ new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR, - vec_def, vec_step); + vec_def, vec_step_renamed); vec_def = make_ssa_name (vec_dest, new_stmt); gimple_assign_set_lhs (new_stmt, vec_def); @@ -6324,13 +6324,13 @@ vectorizable_reduction (gimple *stmt, gimple_stmt_iter /* Create a vector of the step value. */ tree step = build_int_cst (cr_index_scalar_type, nunits_out); - tree vec_step = build_vector_from_val (cr_index_vector_type, step); + tree vec_step_renamed = build_vector_from_val (cr_index_vector_type, step); /* Create an induction variable. */ gimple_stmt_iterator incr_gsi; bool insert_after; standard_iv_increment_position (loop, &incr_gsi, &insert_after); - create_iv (series_vect, vec_step, NULL_TREE, loop, &incr_gsi, + create_iv (series_vect, vec_step_renamed, NULL_TREE, loop, &incr_gsi, insert_after, &indx_before_incr, &indx_after_incr); /* Next create a new phi node vector (NEW_PHI_TREE) which starts For devel/powerpc64-gcc: # more /usr/ports/devel/powerpc64-gcc/files/patch-gcc_tree-vect-loop.c --- gcc/tree-vect-loop.c.orig 2016-06-01 16:06:29 UTC +++ gcc/tree-vect-loop.c @@ -3702,7 +3702,7 @@ get_initial_def_for_induction (gimple *iv_phi) edge pe = loop_preheader_edge (loop); struct loop *iv_loop; basic_block new_bb; - tree new_vec, vec_init, vec_step, t; + tree new_vec, vec_init, vec_step_renamed, t; tree new_name; gimple *new_stmt; gphi *induction_phi; @@ -3856,7 +3856,7 @@ get_initial_def_for_induction (gimple *iv_phi) stepvectype = get_vectype_for_scalar_type (TREE_TYPE (new_name)); gcc_assert (stepvectype); new_vec = build_vector_from_val (stepvectype, t); - vec_step = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); + vec_step_renamed = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); /* Create the following def-use cycle: @@ -3878,7 +3878,7 @@ get_initial_def_for_induction (gimple *iv_phi) induc_def = PHI_RESULT (induction_phi); /* Create the iv update inside the loop */ - new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR, induc_def, vec_step); + new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR, induc_def, vec_step_renamed); vec_def = make_ssa_name (vec_dest, new_stmt); gimple_assign_set_lhs (new_stmt, vec_def); gsi_insert_before (&si, new_stmt, GSI_SAME_STMT); @@ -3919,7 +3919,7 @@ get_initial_def_for_induction (gimple *iv_phi) gcc_assert (CONSTANT_CLASS_P (new_name) || TREE_CODE (new_name) == SSA_NAME); new_vec = build_vector_from_val (stepvectype, t); - vec_step = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); + vec_step_renamed = vect_init_vector (iv_phi, new_vec, stepvectype, NULL); vec_def = induc_def; prev_stmt_vinfo = vinfo_for_stmt (induction_phi); @@ -3927,7 +3927,7 @@ get_initial_def_for_induction (gimple *iv_phi) { /* vec_i = vec_prev + vec_step */ new_stmt = gimple_build_assign (vec_dest, PLUS_EXPR, - vec_def, vec_step); + vec_def, vec_step_renamed); vec_def = make_ssa_name (vec_dest, new_stmt); gimple_assign_set_lhs (new_stmt, vec_def); @@ -6129,13 +6129,13 @@ vectorizable_reduction (gimple *stmt, gimple_stmt_iter /* Create a vector of the step value. */ tree step = build_int_cst (cr_index_scalar_type, nunits_out); - tree vec_step = build_vector_from_val (cr_index_vector_type, step); + tree vec_step_renamed = build_vector_from_val (cr_index_vector_type, step); /* Create an induction variable. */ gimple_stmt_iterator incr_gsi; bool insert_after; standard_iv_increment_position (loop, &incr_gsi, &insert_after); - create_iv (series_vect, vec_step, NULL_TREE, loop, &incr_gsi, + create_iv (series_vect, vec_step_renamed, NULL_TREE, loop, &incr_gsi, insert_after, &indx_before_incr, &indx_after_incr); /* Next create a new phi node vector (NEW_PHI_TREE) which starts >>> 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 .] > > Wrong: I was thinking of the powerpc (32- bit) build > when I wrote that. powerpc64 is a pure clang based build. > >>> >>> # 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"