svn commit: r511878 - in head/devel: llvm90 llvm90/files/openmp xtoolchain-llvm-devel xtoolchain-llvm90
Brooks Davis
brooks at FreeBSD.org
Thu Sep 12 12:49:48 UTC 2019
Author: brooks
Date: Thu Sep 12 12:49:46 2019
New Revision: 511878
URL: https://svnweb.freebsd.org/changeset/ports/511878
Log:
llvm90:
Enable OpenMP on power64. [0]
Add an option to link ld.lld to ld and enable by default on power64. [1]
xtoolchain-llvm-devel:
Add the ability to disable linking ld.lld to ld in slave ports.
xtoolchain-llvm90:
Disable linking ld.lld to ld since llvm90 can now do it.
PR: 240516 [0]
Submitted by: pkubaj [0]
Requested by: kib [1]
Added:
head/devel/llvm90/files/openmp/
head/devel/llvm90/files/openmp/patch-projects_openmp_runtime_src_kmp__platform.h (contents, props changed)
head/devel/llvm90/files/openmp/patch-projects_openmp_runtime_src_z__Linux__asm.S (contents, props changed)
Modified:
head/devel/llvm90/Makefile
head/devel/llvm90/pkg-plist
head/devel/xtoolchain-llvm-devel/Makefile
head/devel/xtoolchain-llvm90/Makefile
Modified: head/devel/llvm90/Makefile
==============================================================================
--- head/devel/llvm90/Makefile Thu Sep 12 12:06:06 2019 (r511877)
+++ head/devel/llvm90/Makefile Thu Sep 12 12:49:46 2019 (r511878)
@@ -2,7 +2,7 @@
PORTNAME= llvm
DISTVERSION= 9.0.0rc4
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= devel lang
.if ${DISTVERSION:M*rc*}
MASTER_SITES= http://prereleases.llvm.org/${LLVM_RELEASE}/${RCDIR}
@@ -66,12 +66,14 @@ CMAKE_ARGS+= -DPYTHON_EXECUTABLE=${PYTHON_CMD} \
CFLAGS+= -DNDEBUG
CXXFLAGS+= -DNDEBUG
-OPTIONS_DEFINE= BE_AMDGPU CLANG DOCS EXTRAS LIT LLD LLDB PYCLANG
+OPTIONS_DEFINE= BE_AMDGPU CLANG DOCS EXTRAS LIT LLD LLD_LINK LLDB PYCLANG
OPTIONS_DEFINE_amd64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFINE_i386= COMPILER_RT OPENMP
+OPTIONS_DEFINE_powerpc64= OPENMP
OPTIONS_DEFAULT= BE_AMDGPU BE_STANDARD CLANG EXTRAS LIT LLD LLDB PYCLANG
-OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD OPENMP
+OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD LLD_LINK OPENMP
OPTIONS_DEFAULT_i386= COMPILER_RT OPENMP
+OPTIONS_DEFAULT_powerpc64= OPENMP
OPTIONS_SINGLE= BACKENDS
OPTIONS_SINGLE_BACKENDS=BE_FREEBSD BE_NATIVE BE_STANDARD
OPTIONS_SUB= yes
@@ -115,6 +117,8 @@ LIT_DESC= Install lit and FileCheck test tools
LIT_VARS= _USES_PYTHON=python:3.6+
LLD_DESC= Install lld, the LLVM linker
LLD_DISTFILES= lld-${DISTVERSION}.src${EXTRACT_SUFX}
+LLD_LINK_DESC= Link ld.lld as ld to clang uses it
+LLD_LINK_IMPLIES= LLD
LLDB_BUILD_DEPENDS= swig3.0:devel/swig30 \
${PY_ENUM34}
LLDB_DESC= Install lldb, the LLVM debugger
@@ -124,6 +128,7 @@ LLDB_IMPLIES= CLANG
LLDB_PORTDOCS= lldb
LLDB_VARS= _USES_PYTHON=python:3.6+
OPENMP_DESC= Install libomp, the LLVM OpenMP runtime library
+OPENMP_EXTRA_PATCHES= ${PATCHDIR}/openmp
OPENMP_DISTFILES= openmp-${DISTVERSION}.src${EXTRACT_SUFX}
PYCLANG_DESC= Install python bindings to libclang
PYCLANG_IMPLIES= CLANG
@@ -533,6 +538,9 @@ post-install-LIT-on:
${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/FileCheck \
${STAGEDIR}${PREFIX}/bin/FileCheck${LLVM_SUFFIX}
+post-install-LLD_LINK-on:
+ ${LN} -s ld.lld ${STAGEDIR}${LOCALBASE}/llvm${LLVM_SUFFIX}/bin/ld
+
TEST_CMD= '(cd ${WRKSRC}/test; ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${WRKSRC}/Release/lib ${MAKE_CMD} check-local-lit)'
do-test:
if [ `${ID} -u` = 0 ]; then \
@@ -579,6 +587,7 @@ build-plist:
{printf "%%%%COMPILER_RT%%%%"} \
if ($$0 ~ /(${EXTRAS_PATTERN})/) {printf "%%%%EXTRAS%%%%"} \
if ($$0 ~ /(lld|wasm-ld)/ && $$0 !~ /(lldb)/) {printf "%%%%LLD%%%%"} \
+ if ($$0 ~ /(bin\/ld$$)/) {printf "%%%%LLD_LINK%%%%"} \
if ($$0 ~ /(argdumper|lldb|six.py)/) {printf "%%%%LLDB%%%%"} \
if ($$0 ~ /(lib.*omp|omp.h|ompt.h)/) {printf "%%%%OPENMP%%%%"} \
if ($$0 ~ /(LLVMgold)/) {printf "%%%%GOLD%%%%"} \
Added: head/devel/llvm90/files/openmp/patch-projects_openmp_runtime_src_kmp__platform.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/llvm90/files/openmp/patch-projects_openmp_runtime_src_kmp__platform.h Thu Sep 12 12:49:46 2019 (r511878)
@@ -0,0 +1,33 @@
+--- projects/openmp/runtime/src/kmp_platform.h.orig 2019-01-19 10:56:40 UTC
++++ projects/openmp/runtime/src/kmp_platform.h
+@@ -93,9 +93,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
+
+@@ -117,12 +117,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
Added: head/devel/llvm90/files/openmp/patch-projects_openmp_runtime_src_z__Linux__asm.S
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/llvm90/files/openmp/patch-projects_openmp_runtime_src_z__Linux__asm.S Thu Sep 12 12:49:46 2019 (r511878)
@@ -0,0 +1,62 @@
+--- projects/openmp/runtime/src/z_Linux_asm.S.orig 2019-07-02 13:45:40 UTC
++++ projects/openmp/runtime/src/z_Linux_asm.S
+@@ -1328,12 +1328,12 @@ KMP_LABEL(kmp_1):
+ // 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
+@@ -1341,7 +1341,7 @@ KMP_LABEL(kmp_1):
+
+ .type __kmp_invoke_microtask, at function
+
+-# if KMP_ARCH_PPC64_LE
++# if KMP_ARCH_PPC64_ELFv2
+ __kmp_invoke_microtask:
+ .Lfunc_begin0:
+ .Lfunc_gep0:
+@@ -1385,7 +1385,7 @@ __kmp_invoke_microtask:
+ .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
+@@ -1463,7 +1463,7 @@ __kmp_invoke_microtask:
+ // 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
+@@ -1475,7 +1475,7 @@ __kmp_invoke_microtask:
+ bdnz .Lnext
+
+ .Lcall:
+-# if KMP_ARCH_PPC64_LE
++# if KMP_ARCH_PPC64_ELFv2
+ std 2, 24(1)
+ mr 12, 3
+ #else
+@@ -1491,7 +1491,7 @@ __kmp_invoke_microtask:
+
+ mtctr 12
+ bctrl
+-# if KMP_ARCH_PPC64_LE
++# if KMP_ARCH_PPC64_ELFv2
+ ld 2, 24(1)
+ # else
+ ld 2, 40(1)
Modified: head/devel/llvm90/pkg-plist
==============================================================================
--- head/devel/llvm90/pkg-plist Thu Sep 12 12:06:06 2019 (r511877)
+++ head/devel/llvm90/pkg-plist Thu Sep 12 12:49:46 2019 (r511878)
@@ -141,6 +141,7 @@ llvm%%LLVM_SUFFIX%%/bin/dsymutil
%%EXTRAS%%llvm%%LLVM_SUFFIX%%/bin/find-all-symbols
%%CLANG%%llvm%%LLVM_SUFFIX%%/bin/git-clang-format
%%CLANG%%llvm%%LLVM_SUFFIX%%/bin/hmaptool
+%%LLD_LINK%%llvm%%LLVM_SUFFIX%%/bin/ld
%%LLD%%llvm%%LLVM_SUFFIX%%/bin/ld.lld
%%LLD%%llvm%%LLVM_SUFFIX%%/bin/ld64.lld
llvm%%LLVM_SUFFIX%%/bin/llc
Modified: head/devel/xtoolchain-llvm-devel/Makefile
==============================================================================
--- head/devel/xtoolchain-llvm-devel/Makefile Thu Sep 12 12:06:06 2019 (r511877)
+++ head/devel/xtoolchain-llvm-devel/Makefile Thu Sep 12 12:49:46 2019 (r511878)
@@ -1,7 +1,11 @@
# $FreeBSD$
PORTNAME= xtoolchain
+.ifndef NO_LLD_LINK
PORTVERSION= 0.1
+.else
+PORTVERSION= 0.2
+.endif
CATEGORIES= devel
MASTER_SITES= # none
DISTFILES= # none
@@ -37,11 +41,13 @@ do-install:
@${INSTALL_DATA} ${WRKDIR}/xtoolchain.mk \
${STAGEDIR}${PREFIX}/share/toolchains/llvm${LLVM_SUFFIX}.mk
+.ifndef NO_LLD_LINK
# XXX: would be better to add -fuse-ld=lld to LDFLAGS, but there isn't
# yet a mechansim for that. Link added here, not in devel/llvm* to avoid
# forcing lld on all users.
post-install:
@${MKDIR} ${STAGEDIR}${LOCALBASE}/llvm${LLVM_SUFFIX}/bin
@${LN} -s ld.lld ${STAGEDIR}${LOCALBASE}/llvm${LLVM_SUFFIX}/bin/ld
+.endif
.include <bsd.port.mk>
Modified: head/devel/xtoolchain-llvm90/Makefile
==============================================================================
--- head/devel/xtoolchain-llvm90/Makefile Thu Sep 12 12:06:06 2019 (r511877)
+++ head/devel/xtoolchain-llvm90/Makefile Thu Sep 12 12:49:46 2019 (r511878)
@@ -1,6 +1,7 @@
# $FreeBSD$
LLVM_SUFFIX=90
+NO_LLD_LINK=yes
MASTERDIR= ${.CURDIR}/../xtoolchain-llvm-devel
More information about the svn-ports-head
mailing list