The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies.
This port includes Clang (a C/C++/Objective-C compiler), LLD (a linker),
LLDB (a debugger), an OpenMP runtime library, and the LLVM infrastructure
these are built on.
WWW: http://llvm.org/
===> The following configuration options are available for llvm60-6.0.1_7:
CLANG=on: Build clang
COMPILER_RT=on: Sanitizer libraries
DOCS=on: Build and/or install documentation
EXTRAS=on: Extra clang tools
GOLD=on: Build the LLVM Gold plugin for LTO
LIT=on: Install lit and FileCheck test tools
LLD=on: Install lld, the LLVM linker
LLDB=on: Install lldb, the LLVM debugger
OPENMP=on: Install libomp, the LLVM OpenMP runtime library
===> Use 'make config' to modify these settings
Remove most expired ports that depend on Python 2.7:
Exceptions are:
- mail/mailman, our listservers still use it
- www/chromium, solely because of popular demand,
upstream is (slowly) working on porting it to Python 3
- ports that have actual patches for Python 3 against
them (Cinnamon and a few unrelated other ports)
- llvm70 and qt5-webengine because they seem to have a lot
of dependencies which need further analysis
- sysutils/uefi-edk2-bhyve because bhyve seems to use them
- python2 and python27 themselves
I'm sure there will be complaints, but the nice thing about
a version control system is that we can revert and adjust things.
(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 )
Drop C++11 workaround for GCC < 6 after r449590
lang/gcc5 will expire in ~1 month. If someone still uses lang/gcc48
they should backport C++11 fix instead. QA on GCC architecuters is
currently limited to powerpc64 which uses GCC_DEFAULT.
PR: 193528
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
Move the list of llvm commands to seperate Makefile.COMMANDS to be used
by another port to come later.
Reorder Makefiles a bit to group similar things together.
Remove support for generating patch files from upstream SVN revisions.
The required interfaces have been disabled for some time and LLVM is in
the process if migrating to Git.
No functional changes (pkg-plist changes are simply ordering).
Don't override the compiler on armv7.
The base system compiler is now sufficent to build and link.
No version bump. While technically required for armv7, forcing everyone
to rebuild for this minor change that doesn't effect actual use is not
justifiable.
PR: 235282
Submitted by: jbeich
More throughly disable assertions. This works around USES=cmake
overriding the CFLAGS used to build. [0]
devel/llvm[45]0: Fix build on GCC systems. [1]
devel/llvm[456]: Avoid realpath calls where possible in the wrapper
script. [2]
PR: 233506 [0], 234647 [1], 234937 [1]
Submitted by: greg@unrelenting.technology [0], pkubaj@anongoth.pl [1],
bdrewery [2]
Differential Revision: https://reviews.freebsd.org/D17990
Add a patch files for stable/12 r342281, which corresponds to the
following upstream revision:
https://reviews.llvm.org/rL329671
This fixes 'Assertion failed: (Result.isUninit() && "temporary created
multiple times"), function createTemporary' errors (if assertions are
enabled, otherwise the compiler internal state might go bad), when
building the graphics/rawtherapee port.
Submitted by: dim
Differential Revision: https://reviews.freebsd.org/D18699
Change cmake default behaviour to outsource.
Ports that build out of source now simply can use "USES=cmake"
instead of "USES=cmake:outsource". Ports that fail to build
out of source now need to specify "USES=cmake:insource".
I tried to only set insource where explictely needed.
PR: 232038
Exp-run by: antoine
Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
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, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
Use exec in wrapper to avoid an extra shell process sticking around.
I purposely didn't bump PORTREVISION for this as it's not really
worth a rebuild even though technically required.
Approved by: brooks
Remove compatibility code for FreeBSD < 11.2 from all ports.
Simplify some ports where DragonFlyBSD no longer needs to be special-cased.
Submitted by: rene
Reviewed by: bapt, jbeich
Differential Revision: https://reviews.freebsd.org/D17724
Add all patches from base llvm/clang/lld/lldb 6.0 to devel/llvm60
This adds all the patches that were applied in the past to head, under
contrib/llvm. After these, there only minimal diffs left between the
port sources and the base sources.
Most of these remaining diffs are due to #ifdef shortcuts in the base
sources, because we don't compile certain features in. Other diffs are
because the port has applied a few changes that we don't have in base.
While here, use Makefile.LICENSE from the devel/llvm-devel port.
Approved by: brooks (maintainer)
Reviewed by: brooks
PR: 212343, 225128, 225471, 226388, 226658, 226872, 229050, 230444, 230604,
231355
MFH: 2018Q4
Differential Revision: https://reviews.freebsd.org/D17702
Limit LLVM builds to linking a single binary at a time.
Regular builds can requires multiple gigabytes of memory at Debug builds
can exceed 100GB. This should help low-memory systems such as
Raspberry-Pis and VMs.
Submitted by: dim
Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542
Merge r322325 from upstream. This allows devel/godot to build in a
reasionable abount of time:
PeepholeOpt cleanup/refactor; NFC
- Less unnecessary use of `auto`
- Add early `using RegSubRegPair(AndIdx) =` to avoid countless
`TargetInstrInfo::` qualifications.
- Use references instead of pointers where possible.
- Remove unused parameters.
- Rewrite the CopyRewriter class hierarchy:
- Pull out uncoalescable copy rewriting functionality into
PeepholeOptimizer class.
- Use an abstract base class to make it clear that rewriters are
independent.
- Remove unnecessary \brief in doxygen comments.
- Remove unused constructor and method from ValueTracker.
- Replace UseAdvancedTracking of ValueTracker with DisableAdvCopyOpt use.
PR: 228261
Reported by: FreeBSD@ShaneWare.Biz
Work around a race in sphinx.
Create the target directory before calling sphinx to render
content into it. Sphinx suffers from a race where it crashes with an
exception if it tries to make a directory and someone else does first.
PR: 227460
Reported by: ohartmann@walstatt.org
MFH: 2018Q2
Merge r332833 from FreeBSD HEAD.
This should ensure clang does not use pushf/popf sequences to
save and restore flags, avoiding problems with unrelated flags (such as
the interrupt flag) being restored unexpectedly.
PR: 225330
devel/llvm*: Fix wrapper scripts to support symlinking to them
The wrapper scripts currently do not resolve the real path to $0:
$ install -l rs /usr/local/bin/clang50 gcc
$ ./gcc
./gcc: /usr/local/llvm50/bin/gcc: not found
Here /usr/local/llvm50/bin/clang should be called not
/usr/local/llvm50/bin/gcc.
Approved by: brooks (maintainer)
Differential Revision: https://reviews.freebsd.org/D14727