Remove residual blank line at start of MakefileThis is a residual of the $FreeBSD$ removal.MFC After: 3 days (though I'll just run the command on the branches)Sponsored by: Netflix
Remove $FreeBSD$: one-line sh patternRemove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
Move all sources from the llvm project into contrib/llvm-project.This uses the new layout of the upstream repository, which was recentlymigrated to GitHub, and converted into a "monorepo". That i
Move all sources from the llvm project into contrib/llvm-project.This uses the new layout of the upstream repository, which was recentlymigrated to GitHub, and converted into a "monorepo". That is, most ofthe earlier separate sub-projects with their own branches and tags wereconsolidated into one top-level directory, and are now branched andtagged together.Updating the vendor area to match this layout is next.
show more ...
DIRDEPS_BUILD: Update dependencies.Sponsored by: Dell EMC Isilon
DIRDEPS_BUILD: Connect the new clang build.Sponsored by: EMC / Isilon Storage Division
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 l
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 withrelative 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 buildpeformance. The previous large number of very small libraries, eachwith their own generated files and dependencies was slow to traverseand 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.
Update build glue for clang and the llvm/clang extras.
Add clang-format under WITH_CLANG_EXTRAS.Reviewed by: dimApproved by: re (gjb)Sponsored by: EMC / Isilon Storage DivisionDifferential Revision: https://reviews.freebsd.org/D6856