The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies. This version adds support for CHERI on RISC-V
and MIPS64.
This port includes Clang (a C/C++/Objective-C compiler), LLD (a linker),
and the LLVM infrastructure these are built on.
===> The following configuration options are available for llvm-cheri-17.0.d20261006:
CLANG=on: Build clang
DOCS=on: Build and/or install documentation
EXTRAS=on: Extra clang tools
LIT=on: Install lit and FileCheck test tools
LLD=on: Install lld linker
STATIC_LIBS=on: Install static libraries (does not effect sanitizers)
XTOOLCHAIN=on: Install cross toolchain file
===> Use 'make config' to modify these settings
devel/llvm-{cheri,morello}: new snapshots
Update CHERI and Morello LLVM compilers to new snapshots.
Attempt to fix builds with LLVM 21 by conditionally applying the patch
used with devel/llvm17. I'm not applying it universally as llvm-morello
fails to compile with it on my 14.4-RELEASE test system.
Sponsored by: DARPA, AFRL
all: drop support for FreeBSD 13, mips and risc64sf
Reviewed by: many (*)
Differential Revision: https://reviews.freebsd.org/D55624
Differential Revision: https://reviews.freebsd.org/D55642 (merged in from bofh)
many (*)
acm arrowd brooks cmt dch decke dinoex eduardo fluffy fuz gahr garga
jbeich joerg jrm kai kenrap martymac matthew mfechner michaelo mizhka
nobutaka pkubaj se tagattie thj
Anton Saietskii
GenericRikka
Gert Doering
Jan Bramkamp
Oleh Hushchenkov
Oleksandr Kryvulia
Ralf van der Enden
Yamagi
desktop kde python tcltk office
devel/llvm-{cheri,morello}: Remove obsolete patch
Both llvm-cheri and llvm-morello have been upgraded to LLVM 17 so we
don't need LLVM 15 patches.
Sponsored by: DARPA, AFRL
devel/llvm-{cheri,morello}: Update distinfo for new snapshots
Missed in earlier commit.
Fixes: 0f4057007926 ("devel/llvm-{cheri,morello}: new snapshots")
llvm-{cheri,morello}: use ELF capabiltiy relocations
This corresponds to CheriBSD commit c7bb34a499c7 and may have impacted
the build of static binaries for Morello.
Sponsored by: DARPA, AFRL
devel/llvm-{cheri,morello}: new snapshots, enable STATIC_LIBS
We've now got some reserarch partners who want to build compiler passes
so enable static libraries in the packages.
Sponsored by: DARPA, AFRL
devel/llvm-cheriot: break up with devel/llvm-cheri
There isn't enough commonality between llvm-cheri and llvm-cheriot due
to increasing version skew so give llvm-cheriot it's own Makefile.
No functional change intended. Port version bumped due to WWW change.
Update to the latest version to follow immediately.
devel/llvm-{cheri,morello}: allow non-triple targets
aarch64 and aarch64-freebsd are both valid targets so remove all
attempts to validate the target in the wrapper script and slightly
expand the match for possible CHERI targets.
Reported by: jhb
Suggestions from: jrtc27
Sponsored by: DARPA, AFRL
devel/llvm-{cheri*,morello}: new snapshots
Update llvm-cheri to a new LLVM 17 based snapshot, llvm-cheriot to an
LLVM 18 based snapshot, and llvm-morello to a snapshot with new function
pointer semantics to better support compartmentalization.
Update the wrapper script to enable the new function pointer semantics
on sufficently new CheriBSD system.
Sponsored by: DARPA, AFRL
llvm-{cheri,morello}: Fix wrapper script
grep -q exits when it's found a match so if it exits fast enough,
llvm-readelf might get a SIGPIPE which it failes to handle. Avoid this
by using a redirect to /dev/null to silence grep instead of -q.
Submitted by: def
devel/llvm-{cheri,morello}: align warning with base
FreeBSD's base llvm currently makes -Wimplicit-int and
-Wimplicit-function-declaration not produce errors by default (see
c3450ad127e94d3fa67ae337310e59c002f51bfc) which means a chunk
of the ports collection depends on this behavior. Until this is resolve
we need to mirror that behavior on CheriBSD.
Sponsored by: DARPA, AFRL
devel/llvm-{cheri,morello}: explain --start/end-no-unused-arguments use
I'd misunderstood the case where --start/end-no-unused-arguments were
needed in my previous commit. Add a comment with the correct
explanation which is not future proofing, but instead that some
invocations of the compiler (e.g., clang -v) don't end up consuming
the -Xclang arguments.
Reported by: jrtc27
Fixes: 1cf80317e3ec devel/llvm-{cheri,morello}: future-proof ABI arguments
devel/llvm-{cheri,morello}: future-proof ABI arguments
-Xclang arguments may become unused with never compiler versions so
bracket them with --start-no-unused-arguments/--end-no-unused-arguments
to silence warnings.
Reported by: jrtc27
Sponsored by: DARPA, AFRL
devel/llvm-{cheri,morello}: better target native ABI
Make the wrapper script for llvm-cheri and llvm-morello add the
necessicary ABI flags for the targeted CheriBSD version when targeting a
CHERI platform with a CheriBSD sysroot.
Normally Clang targets the native ABI when no arguments are given, but
on CheriBSD we currently run a hybrd CHERI LLVM on CHERI systems and
want to target purecap CHERI by default. We also need to support
toolchain versions with different defaults and our ABI is evolving
rapidly as we explore fine-grained compartmentalization. We have used
a prior version of this wrapper to build >10K packages for Morello.
While here, fix install when ${LOCALBASE}/llvm-* is not on the same
filesystem as ${LOCALBASE}.
devel/llvm-cheriot: Fix !CLANG plist
llvm-debuginfo-analyzer isn't part of Clang, but was matched by the
overly broad pattern `-analyzer`.
Reported by: jrtc27
Sponsored by: DARPA, AFRL
devel/llvm-{cheri,morello}: add clang-tools-extras
This adds clangd among other things.
(Due to the port structure, this includes a graturious PORTREVISION bump
in llvm-cheriot. It doesn't seem worth the effort to avoid at this
point.)
devel/llvm-cheri: Actually add files/llvm## to patches
Move condiationl EXTRA_PATCHES additions after bsd.port.pre.mk so
PATCHDIR is defined.
Sponsored by: DARPA, AFRL
devel/llvm*: flip LICENSE_FILE_BSD3CLAUSE setting [NFC]
The location of this license file moved in LLVM 16. Since I'm doing
cleanup in this area and the split of ports is about 50/50, switch to
setting the old location in the older ports so the newer ports set fewer
variables.
Sponsored by: DARPA, AFRL
devel/llvm*: LICENSE_DIR simplification
WRKSRC moved to the top of the source tree with llvm12. As a result,
LICENSE_DIR became ${WRKSRC}/llvm. Given that llvm11 the only port that
wasn't setting LICENSE_DIR, flip the script and default to
${WRKSRC}/llvm with llvm11 overriding.
Sponsored by: DARPA, AFRL
devel/llvm*: Always define LLVM2 license [NFC]
All LLVM ports in the tree use the Apache License 2.0 with LLVM
Exceptions license so cerntralize the definition.
Sponsored by: DARPA, AFRL
devel/llvm-cheriot: remove stray patches
These patches apply to LLVM 13 and should have been removed when
llvm-cheriot was updated.
Fixes: 56f3450f8ac1 devel/llvm-cheriot: new LLVM 17 based snapshot
Sponsored by: DARPA, AFRL
devel/llvm-cheri: minor tidying [NFC]
Align license section with other devel/llvm* ports.
Only add per-LLVM release patches if any exist.
Sponsored by: DARPA, AFRL
devel/llvm-{cheri,cheriot,morello}: update
Update to the latest snapshots.
We've done OK so far with installing standard headers as part of
devel/llvm## ports so extend that to these ports. This is certainly
correct for llvm-cheriot. Practical testing is likely required for the
others.
devel/llvm-{cheri,cheriot,morello}: link llvm-cxx{dump,filt}
These commands were some how not linked into bin long ago. Correct
this error.
(Some other commands are also missing, but were specifically missing
llvm-cxxfilt).
Reported by: jrtc27
Sponsoredy by: AFRL, DARPA
devel/llvm-{cheri,cheriot,morello}: assorted fixups
Allow override of GH_PROJECT and GH_ACCOUNT[0] and fix GH_PROJECT in
llvm-cheriot. No change in the source, but the filename is now
corrected.
Centralize include of Makefile.snapshot.
Reported by: Irina Dudina <irina.dudina@ed.ac.uk>
devel/llvm-{cheri,cheriot,morello}: XTOOLCHAIN option
Make the cross toolchain file optional and disable it completely for
cheriot where the compiler targets an architecture we'll ever support
(RV32E).
devel/llvm-{cheri,cheriot,morello}: new snapshots
Major changes:
llvm-cheri: merge LLVM 15
llvm-cheriot: switch the fork at github.com/CHERIoT-Platform
llvm-morello: merge LLVM 14
Rework patching and filtering of commands and man pages to better
accomdate version skew between the different ports now that all three
have different bases.
Centralize the addition of ${.CURDIR}/files to EXTRA_PATCHS.
devel/llvm*: Sanitize MANPREFIX
Not bumping as there is no change in PKG. This should have been done in
my previous commit.
Approved by: portmgr (blanket)
devel/llvm-{cheri,cheriot,morello}: fix for lld 17
Grab the patches from devel/llvm13 and devel/llvm14 to fix these ports
build with lld 17.
PR: 273959
devel/llvm-{cheri,morello}: update to new snapshots
llvm-cheri: a few months of updates and fixes
llvm-morello: support for Morello benchmarking ABI
Sponsored by: DARPA
all: remove explicit versions in USES=python for "3.x+"
The logic in USES=python will automatically convert this to 3.8+ by
itself.
Adjust two ports that only had Python 3.7 mentioned but build fine
on Python 3.8 too.
finance/quickfix: mark BROKEN with PYTHON
libtool: compile: c++ -DHAVE_CONFIG_H -I. -I../.. -I -I. -I.. -I../.. -I../C++
-DLIBICONV_PLUG -DPYTHON_MAJOR_VERSION=3 -Wno-unused-variable
-Wno-maybe-uninitialized -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong
-fno-strict-aliasing -DLIBICONV_PLUG -Wall -ansi
-Wno-unused-command-line-argument -Wpointer-arith -Wwrite-strings
-Wno-overloaded-virtual -Wno-deprecated-declarations -Wno-deprecated -std=c++0x
-MT _quickfix_la-QuickfixPython.lo -MD -MP -MF
.deps/_quickfix_la-QuickfixPython.Tpo -c QuickfixPython.cpp -fPIC -DPIC -o
.libs/_quickfix_la-QuickfixPython.o
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
'-Wno-uninitialized'? [-Wunknown-warning-option]
QuickfixPython.cpp:175:11: fatal error: 'Python.h' file not found
^~~~~~~~~~
1 warning and 1 error generated.
Reviewed by: portmgr, vishwin, yuri
Differential Revision: <https://reviews.freebsd.org/D40568>
devel/llvm*: Consistently use python:3.7+
llvm12 was inappropriately constrained to 3.6-3.9 breaking the ability
to set 3.10 as the default. llvm11 just specified "python", but there's
no need to keep 2.7 support around. The rest had obsolete 3.6+ entries.
No functional change: This is not expected to change the version of
python used.
PR: 270978
MFH: 2023Q2
Reported by: michael.osipov@siemens.com
Sponsored by: DARPA
devel/llvm-{cheri,morello}: new snapshots, lit fixes
Fix the the python module name to use an '_' in place of '-' in the
port-specific module name.
PR: 270670, 269931
Sponsored by: DARPA
Co-Authored-by: Pawel Biernacki <kaktus@freebsd.org>
devel/llvm-{cheri,morello}: reduce runtime dependencies
Disable libedit and libxml2 dependencies as they have no obvious use.
Disable the the perl and python runtime deps. While we do install
scripts that require these, most users of these ports will either use
them on a full system where perl and python will end up installed or use
them on a CHERI system were reducing bootstrap time is valuable.
Sponsored by: DARPA
devel/llvm-{cheri,morello}: add a STATIC_LIBS option
When enabled assorted LLVM componant static libraries are included in
the package. Unlike mainstream LLVM ports I've disabled this by
default as the libraries are of limited use here.
Sponsored by: DARPA
devel/llvm-{cheri,morello}: Update to new snapshots
llvm-cheri:
- This updates from an LLVM 13 base to an LLVM 14 base.
- Save a little compile time by dropping MIPS support. The CHERI
MIPS target still exists, but CheriBSD no longer supports it and the
places that use it (e.g., https://cheri-compiler-explorer.cl.cam.ac.uk)
use a Linux build.
llvm-morello:
- Minor optimization improvements
llvm-{cheri,morello}: don't install std*.h
As with regular llvm ports, don't install std*.h as they conflict with
FreeBSD versions.
While here, update llvm-cheri to the latest snapshot.
Fix WWW in parent/child ports
Many of the WWW are overwritten later which means the wrong value
is used. This did not happen before where the children were either
a) just using the pkg-descr from the parents
b) or had their own separate pkg-descr with custom WWW
Use WWW?= in parents when the child's WWW is different.
Children that use the same WWW as the parent can just inherit it,
i.e., the child WWW can be removed.
Approved by: portmgr (implicit)
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
llvm-{cheri,morello}: Update to new shapshots
Update llvm-cheri to the latest commit on the dev branch and
llvm-morello to the latest on morello/main.
For llvm-morello this update includes a change to the default varargs
ABI (all major consumers have already switched to using this ABI).
Sponsored by: DARPA, AFRL
compiler: use CHOSEN_COMPILER_TYPE instead of COMPILER_TYPE
CHOSEN_COMPILER_TYPE is the only safe variable to let a port know which
typer of compiler has been elected to be used by the framework
PR: 199098
devel/llvm-{cheri,morello}: Add ld symlink
Add an ld -> ld.lld symlink in ${PREFIX}/llvm-{cheri,morello}/bin so
that clang finds the linker without adding -fuse-ld=ld.lld.
devel/llvm-{cheri,morello}: new snapshots
Update both llvm-cheri and llvm-morello to new snapshots as we head for
a CheriBSD release with package support.
Switch llvm-morello to use a Makefile.snapshot for more consistancy
with other LLVM snapshot ports.
textproc/libxml2: bump all LIB_DEPENDS consumers
This is a separate commit to facilitate easier cherry-picking for
quarterly.
PR: 262853, 262940, 262877, 263126
Approved by: fluffy (mentor)
textproc/libxml2: bump all dependencies
This should make sure that all dependent ports will pick
up the new version commited with a13ec21cd733f67a9fc0dc00ab45268bdc236246
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.
devel/llvm-cheri: Update to a new snapshot
Adopt Makefile.COMMANDS file used in other llvm ports to reduce the size
of the main Makefile and limit churn there.
Update to a new snapshot
Allow to build on powerpc64 and add PowerPC target. [0]
Add ARM target (needed for boot/firmware bits in some cases for Arm64).
PR: 251826 [0]
Submitted by: pkubaj [0]
Sponsored by: DARPA
New snapshot and infrastructure updates
Reduce the number of targets built to CHERI targets (RISC-V and Mips)
and plausable host targets (AArch64 and X86).
Allow this port to be used as a master port by an port in an overlay.
That is mostly allowing certain variables to be overridden plus using
.PARSEDIR to find llvm-devel's license files.
Resurrect devel/llvm-cheri and update
This version comes from the dev branch as that is close to the base for
the upcoming release of the Arm Morello toolchain.
Make the CROSS_TOOLCHAIN file machine-independent and install it as
llvm-cheri.
Sponsored by: DARPA
Remove expired ports:
2020-09-15 audio/abraca: Uses deprecated version of python
2020-09-15 audio/ardour5: Uses deprecated version of python
2020-09-15 audio/cplay: Uses deprecated version of python
2020-09-15 audio/cpp-xmms2: Uses deprecated version of python
2020-09-15 audio/p5-xmms2: Uses deprecated version of python
2020-09-15 biology/haplohseq: Uses deprecated version of python
2020-09-15 biology/tophat: Uses deprecated version of python
2020-09-15 chinese/ibus-array: Uses deprecated version of python
2020-09-15 comms/congruity: Uses deprecated version of python
2020-09-15 comms/libbtbb: Uses deprecated version of python
2020-09-15 comms/quisk: Uses deprecated version of python
2020-09-15 databases/mtools-mongodb: Uses deprecated version of python
2020-09-15 databases/mydbf2mysql: Uses deprecated version of python
(Only the first 15 lines of the commit message are shown above )
devel/llvm*: Avoid extraneous escapes
All of these single quotes are safe on their own, as they're enclosed in
double quotes. Removes the escapes, because they're currently passed through
to the underlying regex engine as \' to be interpreted as '.
A future change will forbid this escape, then an even further future change
will actually imbue \' with special meaning based on GNU interpretation
("end of subject").
No PORTREVISION bump or rebuild is needed, as they're functionally
equivalent.
PR: 247058
Approved by: koobs (mentor), brooks (maintainer)
MFH: 2020Q2 (blanket: trivial build fix)
devel/llvm*: Upgrade Sphinx dependency to 3.X
This avoids conflicts between Sphinx ports when not using Poudriere.
PR: 246500
Approved by: brooks (maintainer)
Update Sphinx
- Repocopy textproc/py-sphinx to textproc/py-sphinx18
Update it to 1.8.5 (latest version from 1.8.X).
This version supports Python 2 and 3.
Add test target.
- textproc/py-sphinx: Update to 3.0.2
Python 3 only (3.5+).
Add test target.
- Mk/Uses/python.mk: Add PY_SPHINX
(Only the first 15 lines of the commit message are shown above )
Update qemu-cheri and llvm-cheri to recent snapshots.
In qemu-cheri:
* Fix build with llvm10 [0]
* Remove the 256-bit capability version
* Add CHERI RISC-V
PR: 244768 [0]
Submitted by: dim [0]
Sponsored by: DARPA
Exclude from 32-bit systems.
While it may build on some, no one is likely to develop CHERI software
from a 32-bit platform (maybe with exception of an armv7 SoC on an
FPGA and we can enable the build there that if that ever happens).
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330