Commit Graph

250 Commits

Author SHA1 Message Date
dim
b66f65929a Update clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0 release.
We were already very close to the last release candidate, so this is a
pretty minor update.

Relnotes:	yes
MFC after:	1 month
X-MFC-With:	r314564
2017-03-10 19:02:41 +00:00
dim
2bb4490c3e Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r296509, and update build glue.
2017-02-28 21:18:23 +00:00
dim
171c29f1fb Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r296202, and update build glue.
2017-02-25 15:00:57 +00:00
dim
36e9e3ef20 Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r296002, and update build glue.
2017-02-23 19:25:29 +00:00
dim
e540b45c8d Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r295380, and update build glue.
2017-02-17 20:07:35 +00:00
dim
67363b4961 Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r294803, and update build glue.
2017-02-11 13:58:05 +00:00
dim
522087e3da Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r294123, and update build glue.
2017-02-05 19:57:41 +00:00
dim
f971e0a0d9 Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r293807, and update build glue.
2017-02-01 21:57:07 +00:00
dim
d34f934cbb Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r293443, and update build glue.
2017-01-29 21:56:47 +00:00
emaste
48f45a5a5b Add -mlong-calls also to LLVM's STATIC_CFLAGS on ARM
-mlong-calls was set only in STATIC_CXXFLAGS, but there are some .c
source files in LLVM which also need -mlong-calls.

Unfortunately this is not sufficient to fix linking lldb on ARM,
because LLVM-generated calls to __aeabi_read_tp do not honour the
-mlong-calls flag.  See LLVM PR31769 for details.

Reviewed by:	dim
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D9348
2017-01-27 21:26:23 +00:00
emaste
b00d428edd Additional LD_AS_LLD -> LD_IS_LLD missed in r312894/r312895 2017-01-27 21:14:42 +00:00
emaste
a52f519c26 Also apply WITH_LLD_AS_LD to build tools
Previously WITH_LLD_AS_LD installed LLD as /usr/bin/ld in the target
system, but still used the GNU BFD ld to link the binaries in that
target. LLD 4.0.0 can link the FreeBSD/amd64 world and kernel so use
LLD as the build-time linker as well when the knob is set.

Reviewed by:	dim
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D9226
2017-01-25 21:05:48 +00:00
dim
346d410d13 Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch
r292951, and update build glue.
2017-01-24 19:56:22 +00:00
dim
10de965d53 Merge llvm, clang, lld and lldb release_40 branch 292732, and update
build glue.
2017-01-22 18:02:44 +00:00
dim
a927e53a91 Fix some erroneous minimization in libclang. 2017-01-15 12:58:14 +00:00
dim
8b0a30be0e Merge llvm, clang, lld and lldb release_40 branch r292009. Also update
build glue.
2017-01-14 22:12:13 +00:00
dim
618592e561 Merge llvm, clang, lld and lldb trunk r291476. 2017-01-09 22:32:19 +00:00
dim
ed3e854d80 Add one more dependency for lld. 2017-01-07 15:18:49 +00:00
dim
a4b6cd239d Update clang and lld Version.inc files. 2017-01-06 20:25:08 +00:00
dim
ace3c83b7c Adjust version numbers for the clang library directory. 2017-01-05 18:32:18 +00:00
dim
4b7c3e3c07 Update clang and lld Version.inc files. 2017-01-04 22:32:17 +00:00
dim
45872e41dd Cleanup commented entries in libllvm Makefile. 2017-01-04 21:57:56 +00:00
dim
7726318a7c Bump FREEBSD_CC_VERSION to force bootstrap compiler build. 2017-01-04 20:42:37 +00:00
dim
3dff1a310a Update lldb Makefile, and disable some functionality for Windows and
Darwin.
2017-01-04 19:53:04 +00:00
dim
f42da32c9d Update lld Version.inc and libllvm/Makefile to match. 2017-01-04 18:54:20 +00:00
dim
972f2bc4ab Initial updates to llvm/clang build glue. 2017-01-03 20:28:09 +00:00
dim
60173ec21a Reapply 310775, now it also builds correctly if lldb is disabled:
Move llvm-objdump from CLANG_EXTRAS to installed by default

We currently install three tools from binutils 2.17.50: as, ld, and
objdump. Work is underway to migrate to a permissively-licensed
tool-chain, with one goal being the retirement of binutils 2.17.50.

LLVM's llvm-objdump is intended to be compatible with GNU objdump
although it is currently missing some options and may have formatting
differences. Enable it by default for testing and further investigation.
It may later be changed to install as /usr/bin/objdump, it becomes a
fully viable replacement.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D8879
2016-12-30 18:00:31 +00:00
dim
bbc9c01e68 Revert r310775 for now, until we can figure out why it does not seem to
work properly when cross-building.  Sorry for the breakage.
2016-12-29 21:57:16 +00:00
dim
760b3e4651 Move llvm-objdump from CLANG_EXTRAS to installed by default
We currently install three tools from binutils 2.17.50: as, ld, and
objdump. Work is underway to migrate to a permissively-licensed
tool-chain, with one goal being the retirement of binutils 2.17.50.

LLVM's llvm-objdump is intended to be compatible with GNU objdump
although it is currently missing some options and may have formatting
differences. Enable it by default for testing and further investigation.
It may later be changed to install as /usr/bin/objdump, it becomes a
fully viable replacement.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D8879
2016-12-29 13:27:04 +00:00
dim
ddeb7387ce Merge llvm, clang, lld, lldb, compiler-rt and libc++ 3.9.1 release
r289601.
2016-12-16 18:30:53 +00:00
dim
50b03a7e17 Update llvm, clang, lld, lldb, compiler-rt and libc++ to release_39
branch r288847.
2016-12-10 15:30:39 +00:00
dim
cc48a551de Merge ^/head r309519 through r309757. 2016-12-09 20:57:43 +00:00
dim
fe5a91c61d During the bootstrap phase, when building the minimal llvm library on
PowerPC, add lib/Support/Atomic.cpp.  This is needed because upstream
llvm revision r271821 disabled the use of std::call_once, which causes
some fallback functions from Atomic.cpp to be used instead.

Reported by:	Mark Millard
PR:		214902
X-MFC-With:	309124
2016-12-06 20:44:40 +00:00
dim
d4fb1bd681 Update build glue for clang 3.9.1 r288513. 2016-12-02 19:40:00 +00:00
dim
0478937950 Merge ^/head r309170 through r309212. 2016-11-27 14:27:51 +00:00
dim
8f62ee2282 Update build glue for llvm/clang 3.9.1. 2016-11-26 01:13:53 +00:00
dim
13bea338cb Bump FREEBSD_CC_VERSION again for r309147 and 309149. 2016-11-25 18:12:57 +00:00
dim
109d0b5696 In preparation for merging back to head, bump __FreeBSD_version,
FREEBSD_CC_VERSION and set date in ObsoleteFiles.inc.
2016-11-24 21:12:43 +00:00
dim
774f339bee Some further micro-optimizations for the libllvm and lldb build. 2016-09-04 16:54:55 +00:00
dim
06b2138b24 Update clang to the final 3.9.0 release. There were no more code changes
since the last release candidate.
2016-09-02 19:20:27 +00:00
bdrewery
ca9630d43b Use a proper comment.
Submitted by:	emaste
2016-09-01 21:02:02 +00:00
bdrewery
ccc1cc3a4e DIRDEPS_BUILD: Connect the new clang build.
Sponsored by:	EMC / Isilon Storage Division
2016-09-01 20:38:59 +00:00
emaste
26ebe61d5c Add WITH_/WITHOUT_LLD knobs to enable the lld linker
Use this to control inclusion of the libllvm functionality required
by lld. Enable by default on arm64 and amd64, the two platforms where
lld is most usable for testing.

Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D7713
2016-08-31 21:18:38 +00:00
emaste
f08218eff4 Add Version.inc to set lld's version information
We might want to generate this file at build time, but for now just
provide a static copy as done with other version files.

Sponsored by:	The FreeBSD Foundation
2016-08-30 21:06:19 +00:00
dim
4354b878f3 Update llvm to release_39 branch r279689. 2016-08-27 11:51:08 +00:00
dim
57e762fbe3 Centralize where LLVM_SRCS, CLANG_SRCS and LLDB_SRCS are defined. 2016-08-27 10:00:33 +00:00
dim
a01ea72a6b Use SRCTOP and OBJTOP throughout the llvm/clang/lldb build. 2016-08-27 09:29:39 +00:00
dim
43f5494220 Add forgotten {llvm,clang}.pre.mk files. 2016-08-26 22:56:23 +00:00
dim
502ed8de84 Completely revamp the way llvm, clang and lldb are built.
* Bootstrap llvm-tblgen and clang-tblgen with a minimal llvm static
  library, that has no other dependencies.
* Roll up all separate llvm libraries into one big static libllvm.
* Similar for all separate clang and lldb static libraries.
* For all these libraries, generate their .inc files only once.
* Link all llvm tools (including extra) against the big libllvm.
* Link clang and clang-format against the big libllvm and libclang.
* Link lldb against the big libllvm, libclang and liblldb.

N.B.: This is work in progress, some details may still be missing.

It also heavily depends on bsd.*.mk's support for SRCS and DPSRCS with
relative pathnames, which apparently does not always work as expected.
For building llvm, clang and lldb though, it seems to work just fine.

The main idea behind this restructuring is maintainability and build
peformance.  The previous large number of very small libraries, each
with their own generated files and dependencies was slow to traverse
and hard to understand.

Possible future improvements:
* Only build certain targets, e.g. for most regular users having just
  one target will be fine.  This will shave off some build time.
* Building the big llvm, clang and lldb libraries as shared (private)
  libraries.
* Adding other components from the LLVM project, such as lld.
2016-08-26 22:44:22 +00:00
dim
800be4f63e Move some more files under MK_CLANG_FULL. 2016-08-25 21:29:16 +00:00