diff --git a/Makefile.inc1 b/Makefile.inc1 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -175,7 +175,24 @@ .if ((defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == "gcc") || \ (!defined(X_COMPILER_TYPE) && ${COMPILER_TYPE} == "gcc")) .if ${TARGET} == "arm" -.error "armv6/armv7 build are broken with gcc. See https://reviews.freebsd.org/D36754" +_GCC_BROKEN="https://reviews.freebsd.org/D36754" +.endif +.if ${TARGET_ARCH} == "powerpc" +_GCC_BROKEN=Missing atomic builtins in libc++. +.endif +.if ${TARGET_ARCH:Mpowerpc64*} +_GCC_BROKEN=libsys.so.7.full has a LOAD segment with RWX permissions. +.endif +.if ${TARGET} == "riscv" +_GCC_BROKEN=boot code linker script issues. +.endif +.if defined(_GCC_BROKEN) +.warning Target ${TARGET} is broken with GCC: ${_GCC_BROKEN} +.if defined(TRY_GCC_BROKEN) +.warning Trying build anyway. +.else +.error Avoiding broken build. Define TRY_GCC_BROKEN to try anyway. +.endif .endif .endif