Index: contrib/openmp/runtime/src/kmp_platform.h =================================================================== --- contrib/openmp/runtime/src/kmp_platform.h +++ contrib/openmp/runtime/src/kmp_platform.h @@ -94,9 +94,9 @@ #define KMP_ARCH_X86 0 #define KMP_ARCH_X86_64 0 #define KMP_ARCH_AARCH64 0 -#define KMP_ARCH_PPC64_BE 0 -#define KMP_ARCH_PPC64_LE 0 -#define KMP_ARCH_PPC64 (KMP_ARCH_PPC64_LE || KMP_ARCH_PPC64_BE) +#define KMP_ARCH_PPC64_ELFv1 0 +#define KMP_ARCH_PPC64_ELFv2 0 +#define KMP_ARCH_PPC64 (KMP_ARCH_PPC64_ELFv2 || KMP_ARCH_PPC64_ELFv1) #define KMP_ARCH_MIPS 0 #define KMP_ARCH_MIPS64 0 @@ -118,12 +118,12 @@ #undef KMP_ARCH_X86 #define KMP_ARCH_X86 1 #elif defined __powerpc64__ -#if defined __LITTLE_ENDIAN__ -#undef KMP_ARCH_PPC64_LE -#define KMP_ARCH_PPC64_LE 1 +#if defined(_CALL_ELF) && _CALL_ELF == 2 +#undef KMP_ARCH_PPC64_ELFv2 +#define KMP_ARCH_PPC64_ELFv2 1 #else -#undef KMP_ARCH_PPC64_BE -#define KMP_ARCH_PPC64_BE 1 +#undef KMP_ARCH_PPC64_ELFv1 +#define KMP_ARCH_PPC64_ELFv1 1 #endif #elif defined __aarch64__ #undef KMP_ARCH_AARCH64 Index: contrib/openmp/runtime/src/z_Linux_asm.S =================================================================== --- contrib/openmp/runtime/src/z_Linux_asm.S +++ contrib/openmp/runtime/src/z_Linux_asm.S @@ -1503,12 +1503,12 @@ // return: r3 (always 1/TRUE) // .text -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 .abiversion 2 # endif .globl __kmp_invoke_microtask -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 .p2align 4 # else .p2align 2 @@ -1516,7 +1516,7 @@ .type __kmp_invoke_microtask,@function -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 __kmp_invoke_microtask: .Lfunc_begin0: .Lfunc_gep0: @@ -1560,7 +1560,7 @@ .cfi_offset lr, 16 // Compute the size necessary for the local stack frame. -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 li 12, 72 # else li 12, 88 @@ -1638,7 +1638,7 @@ // for the microtask begins 48 + 8*8 == 112 bytes above r1 for ELFv1 and // 32 + 8*8 == 96 bytes above r1 for ELFv2. addi 4, 4, 40 -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 addi 12, 1, 88 # else addi 12, 1, 104 @@ -1650,7 +1650,7 @@ bdnz .Lnext .Lcall: -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 std 2, 24(1) mr 12, 3 #else @@ -1666,7 +1666,7 @@ mtctr 12 bctrl -# if KMP_ARCH_PPC64_LE +# if KMP_ARCH_PPC64_ELFv2 ld 2, 24(1) # else ld 2, 40(1) Index: lib/Makefile =================================================================== --- lib/Makefile +++ lib/Makefile @@ -195,7 +195,9 @@ _librtld_db= librtld_db .endif +.if ${MACHINE_ARCH} != "powerpc" SUBDIR.${MK_OPENMP}+= libomp +.endif SUBDIR.${MK_OPENSSL}+= libmp SUBDIR.${MK_PMC}+= libpmc libpmcstat SUBDIR.${MK_RADIUS_SUPPORT}+= libradius Index: share/man/man5/src.conf.5 =================================================================== --- share/man/man5/src.conf.5 +++ share/man/man5/src.conf.5 @@ -1539,12 +1539,12 @@ Set to not build LLVM's OpenMP runtime. .Pp This is a default setting on -arm/arm, arm/armv6, arm/armv7, arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. +arm/arm, arm/armv6, arm/armv7, arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. .It Va WITH_OPENMP Set to build LLVM's OpenMP runtime. .Pp This is a default setting on -amd64/amd64 and i386/i386. +amd64/amd64, i386/i386 and powerpc/powerpc64. .It Va WITHOUT_OPENSSH Set to not build OpenSSH. .It Va WITHOUT_OPENSSL Index: share/mk/src.opts.mk =================================================================== --- share/mk/src.opts.mk +++ share/mk/src.opts.mk @@ -398,7 +398,7 @@ BROKEN_OPTIONS+=BSD_CRTBEGIN .endif -.if ${COMPILER_FEATURES:Mc++11} && (${__T} == "amd64" || ${__T} == "i386") +.if ${COMPILER_FEATURES:Mc++11} && (${__T} == "amd64" || ${__T} == "i386" || ${__T} == "powerpc64") __DEFAULT_YES_OPTIONS+=OPENMP .else __DEFAULT_NO_OPTIONS+=OPENMP