devel/llvm-morello: Add a port of Morello LLVM

This port of LLVM to the Arm Morello prototype architecture is based
on the University of Cambridge's CHERI LLVM.
This commit is contained in:
Brooks Davis 2022-03-04 21:49:23 +00:00
parent 1a842613a9
commit c297fd5b8c
7 changed files with 2988 additions and 8 deletions

View file

@ -1476,6 +1476,7 @@
SUBDIR += llvm
SUBDIR += llvm-cheri
SUBDIR += llvm-devel
SUBDIR += llvm-morello
SUBDIR += llvm10
SUBDIR += llvm11
SUBDIR += llvm12

View file

@ -33,10 +33,6 @@ SHEBANG_FILES= \
clang/tools/scan-build-py/bin/analyze-build \
clang/tools/scan-build-py/bin/intercept-build \
clang/tools/scan-build-py/bin/scan-build \
clang/tools/scan-build-py/libexec/analyze-cc \
clang/tools/scan-build-py/libexec/analyze-c++ \
clang/tools/scan-build-py/libexec/intercept-cc \
clang/tools/scan-build-py/libexec/intercept-c++ \
clang/tools/scan-view/bin/scan-view \
clang/utils/hmaptool/hmaptool \
llvm/tools/opt-viewer/optrecord.py \
@ -45,6 +41,13 @@ SHEBANG_FILES= \
llvm/tools/opt-viewer/opt-viewer.py \
llvm/utils/lit/lit.py \
llvm/utils/llvm-lit/llvm-lit.in
.if ${LLVM_SUFFIX} == "-cheri"
SHEBANG_FILES+= \
clang/tools/scan-build-py/libexec/analyze-cc \
clang/tools/scan-build-py/libexec/analyze-c++ \
clang/tools/scan-build-py/libexec/intercept-cc \
clang/tools/scan-build-py/libexec/intercept-c++
.endif
SUB_FILES= llvm-wrapper.sh
SUB_LIST= LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}"
@ -64,7 +67,7 @@ GH_ACCOUNT= CTSRD-CHERI
GH_TAGNAME= ${LLVM_COMMIT}
.endif
.sinclude "${.CURDIR}/Makefile.snapshot"
.sinclude "${.PARSEDIR}/Makefile.snapshot"
OPTIONS_DEFINE= CLANG DOCS LIT LLD
OPTIONS_DEFAULT= CLANG LIT LLD
@ -113,9 +116,11 @@ CONFIGURE_TARGET:=${ARCH:C/amd64/x86_64/:C/armv6hf/armv6/}-portbld-${OPSYS:tl}${
LLVM_ENABLE_PROJECTS+= clang
COMMANDS+= ${CLANG_COMMANDS}
MAN1SRCS+= clang.1 \
clang-tblgen.1 \
diagtool.1 \
scan-build.1
.if ${LLVM_SUFFIX} == "-cheri"
MAN1SRCS+= clang-tblgen.1
.endif
#DOCS_PLIST_FILES+= man/man1/scan-build${LLVM_SUFFIX}.1.gz
USES+= gnome
.endif
@ -171,7 +176,6 @@ MAN1SRCS+= bugpoint.1 \
llvm-nm.1 \
llvm-objcopy.1 \
llvm-objdump.1 \
llvm-otool.1 \
llvm-pdbutil.1 \
llvm-profdata.1 \
llvm-profgen.1 \
@ -183,9 +187,17 @@ MAN1SRCS+= bugpoint.1 \
llvm-strings.1 \
llvm-strip.1 \
llvm-symbolizer.1 \
opt.1
.if ${LLVM_SUFFIX} == "-cheri"
MAN1SRCS+= \
llvm-otool.1 \
llvm-tblgen.1 \
opt.1 \
tblgen.1
.else
MAN1SRCS+= \
xxx-tblgen.1
.endif
.include <bsd.port.pre.mk>
.include "${.CURDIR}/Makefile.COMMANDS"
@ -210,8 +222,10 @@ post-install:
${LN} -f ${STAGEDIR}${PREFIX}/bin/${COMMAND_PREFIX}${FIRST_COMMAND}${COMMAND_SUFFIX} \
${STAGEDIR}${PREFIX}/bin/${COMMAND_PREFIX}${command}${COMMAND_SUFFIX}
.endfor
.if ${LLVM_SUFFIX} == "-cheri"
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/llvm/CHERI/cheri-compressed-cap/.github/workflows
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/llvm/CHERI/cheri-compressed-cap/.github
.endif
post-install-DOCS-on:
${MV} ${STAGEDIR}${LLVM_PREFIX}/share/doc ${STAGEDIR}${DOCSDIR}

View file

@ -0,0 +1,25 @@
# llvm-morello
LLVM_SUFFIX= -morello
COMMENT= LLVM and Clang with support the Arm Morello architecture
LLVM_MAJOR= 11
SNAPDATE= 20201020
DISTINFO_FILE= ${.CURDIR}/distinfo
DESCR= ${.CURDIR}/pkg-descr
PLIST= ${.CURDIR}/pkg-plist
USE_GITLAB= yes
GL_SITE= https://git.morello-project.org
GL_ACCOUNT= morello
GL_PROJECT= llvm-project
GL_COMMIT= 0619e74d198706df7361bc5739e7d7db38e3bc4f
# Regularly tested targets as part of Android development
LLVM_TARGETS= AArch64;ARM;BPF;X86
MASTERDIR= ${.CURDIR}/../llvm-cheri
.include "${MASTERDIR}/Makefile"

View file

@ -0,0 +1 @@
.include "${.CURDIR}/../llvm-cheri/Makefile.COMMANDS"

View file

@ -0,0 +1,3 @@
TIMESTAMP = 1646239986
SHA256 (morello-llvm-project-0619e74d198706df7361bc5739e7d7db38e3bc4f_GL0.tar.gz) = 94aee7c8c19f0b8ecb9e957282a399fba347b249093f9a1e0d4696aa71266765
SIZE (morello-llvm-project-0619e74d198706df7361bc5739e7d7db38e3bc4f_GL0.tar.gz) = 141916788

View file

@ -0,0 +1,8 @@
The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies. This version adds support for the Arm Morello
prototype architecture (CHERI ported to ARMv8-A).
This port includes Clang (a C/C++/Objective-C compiler), LLD (a linker),
and the LLVM infrastructure these are built on.
WWW: https://git.morello-project.org/morello/llvm-project

2928
devel/llvm-morello/pkg-plist Normal file

File diff suppressed because it is too large Load diff