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 llvm40-4.0.1_14:
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
Use GCC 7 instead of GCC 5 when the base system doesn't have libc++.
We'd use USE_GCC=yes, but GCC 8 doesn't like the obsolete C++ in this
obsolete codebase.
Requested by: gerald
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
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
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
Remove a needless include of vm/pmap.h which broke the i386 build with
COMPILER_RT enabled on recent CURRENT.
This should have been in r467737, but I mixed things up in the renames.
Remove a needless include of vm/pmap.h which broke the i386 build with
COMPILER_RT enabled on recent CURRENT.
Rename files as if EXTRA_PATCHS+=compiler-rt were used, but don't use it
due to compiler-rt's odd location in WRKDIR.
No functional change.
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
Merge from src and upstream LLVM:
lld: accept EINVAL to indicate posix_fallocate is unsupported
As of r325320 posix_fallocate on a ZFS filesystem returns EINVAL to
indicate that the operation is not supported. (I think this is a strange
choice of errno on the part of POSIX.)
PR: 223383, 223440
Reported by: Mark Millard
- add support for ARMv7
- according to r450176 pass CONFIGURE_TARGET as LLVM_DEFAULT_TARGET_TRIPLE
and LLVM_HOST_TRIPLE
- for ARMv[67], use correct API when building CONFIGURE_TARGET
PR: 219779
Submitted by: mmel
Bump PORTREVISION for ports depending on the canonical version of GCC
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 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, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275
Make ninja opt-out in cmake.mk
Using ninja instead of make (1) can lead to significant speed ups while
building.
Therefore switch from having the ninja generator opt-in to having it opt-out.
Previously cmake-ports that wanted to use ninja could set
CMAKE_NINJA=yes
now, ports that do not work with ninja can set
cmake:<existing args>,noninja
Note, that needing this should be an exception and most often points to a broken
cmake of the port.
The ports using cmake were modified
* removed USES=gmake, if ninja is used
* removed MAKE_ARGS, if ninja is used
* added the cmake-argument noninja if necessary
PR: 219629
PR: 213331
Exp-run by: antoine
Reviewed by: rakuco
Differential Revision: https://reviews.freebsd.org/D10748
Add a patch for upstream r300404:
Use correct registers for "A" inline asm constraint
Summary:
In PR32594, inline assembly using the 'A' constraint on x86_64 causes
llvm to crash with a "Cannot select" stack trace. This is because
`X86TargetLowering::getRegForInlineAsmConstraint` hardcodes that 'A'
means the EAX and EDX registers.
However, on x86_64 it means the RAX and RDX registers, and on 16-bit x86
(ia16?) it means the old AX and DX registers.
Add new register classes in `X86RegisterInfo.td` to support these cases,
and amend the logic in `getRegForInlineAsmConstraint` to cope with
different subtargets. Also add a test case, derived from PR32594.
Submitted by: dim
Remove the misspelled ONLY_FOR_ARCH definitions, which referred to an
arch we no longer support in any case.
Approved by: portmgr (tier-2 blanket), "just fix it"
The LLDB option requires CLANG so make it imply CLANG.
Attempt to reduce the size of WITH_DEBUG builds. Reports suggest they
are still enormous.
Garbage collect some FreeBSD 9.x bits.
Bump PORTREVISIONs for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707
Allow build with EXTRAS disabled.
The plist change is a no-op except when it broke the build so not
bumping PORTREVISION.
PR: 216786
Reported by: greenreaper@hotmail.com
Sponsored by: DARPA, AFRL