Commit Graph

29 Commits

Author SHA1 Message Date
Nathan Froyd
a6bc6c6c50 Bug 1330082 - factor out a checkout_or_update function for build-clang.py; r=ehsan
It's just silly to have the same code repeated multiple times; this is
the sort of thing functions were invented for.
2017-01-20 12:54:56 -05:00
Ehsan Akhgari
b5474aa66c Bug 1332022 - Part 1: Use the libc++ headers from the libc++ project being built; r=mystor
LLVM relies on new libc++ features that may not be present in
the system headers.
2017-01-18 23:04:10 -05:00
Ehsan Akhgari
717965ad0c Bug 1329307 - Only package the clang-tidy binaries for the clang-tidy builds; r=mystor 2017-01-06 16:02:23 -05:00
Ehsan Akhgari
f6ed9f6b09 Bug 1329306 - Also clobber the CMakeFiles directory; r=mystor
This directory can include variables for the toolchain path names,
for example, which are different from run to run on Windows TaskCluster
workers.
2017-01-06 16:02:23 -05:00
Ehsan Akhgari
cba6da1fea Bug 1328184 follow-up: Fix a typo 2017-01-05 00:51:47 -05:00
Ehsan Akhgari
62e8d9c7d8 Bug 1328199 - Part 1: Add support for cross-compiling clang for OS X on Linux; r=mystor 2017-01-04 16:50:08 -05:00
Ehsan Akhgari
c9d300d301 Bug 1328457 - Link clang statically against the MSVCRT on Windows; r=mystor 2017-01-04 12:25:57 -05:00
Ehsan Akhgari
2cefae9df6 Bug 1328184 - Part 2: Deal better with an existing build directory being found; r=mystor
Instead of relying on the assumption that a previous run of CMake was
using the same arguments, remove the CMake cache file and re-run it.
This way the script is robust no matter what kind of build directory
existed from before.
2017-01-03 16:59:56 -05:00
Ehsan Akhgari
f3ad7e62b2 Bug 1328184 - Part 1: Deal better with an existing source checkout; r=mystor
Since individual config files have different source repos declared,
it's better to deal with each individual source directory separately.
Also make sure to revert any of the existing changes in each directory
so that attempts to apply patches to the source directory or import
our static analysis checks into clang-tidy are guaranteed to always
succeed.
2017-01-03 16:59:56 -05:00
Ehsan Akhgari
2b5ff49d23 Bug 1324315 - Add support for building clang-tidy with Mozilla static analysis checks to build-clang.py; r=mystor 2016-12-28 20:47:49 -05:00
Ryan VanderMeulen
f9c05d1a2b Bug 1319901 - Enforce Visual Studio 2015 Update 3 as the minimum supported compiler version for Windows builds. r=ted 2016-12-15 19:27:03 -05:00
Ting-Yu Chou
96002b3fba Bug 1316545 part 7 - Install also the import library of clang.exe. r=ehsan 2016-12-09 17:02:06 +08:00
Ting-Yu Chou
df1d8087a5 Bug 1316545 part 2 - Enable LLVM_EXPORT_SYMBOLS_FOR_PLUGINS for linking clang plugin on windows. r=ehsan
MozReview-Commit-ID: 5p5oFAlQyri
2016-11-16 14:00:06 +08:00
Ting-Yu Chou
c1d5bad414 Bug 1316537 part 3 - Fix tar package path conversion for local build. r=Ehsan
MozReview-Commit-ID: 6btpeTxouB
2016-11-15 12:22:44 +08:00
Nathan Froyd
13a614f6f6 Bug 1306650 - part 14 - correct tar package substitution for new taskcluster scheme; r=ehsan
Taskcluster builds live in a different place than our buildbot builds did.
2016-10-26 16:18:23 -04:00
Nathan Froyd
88a67e3cb9 Bug 1306650 - part 12 - explicitly select MSVC version for clang-cl to emulate in stage 2+; r=ehsan
clang-cl would normally derive its MSVC emulation bits from the
installed MSVC version, but we don't have an installed MSVC in this
scenario, so we have to use command-line options instead.  We use
similar options for Gecko builds.
2016-10-26 16:18:23 -04:00
Nathan Froyd
422599a971 Bug 1306650 - part 11 - use a relative path for the build directory on windows; r=ehsan
In a taskcluster world, we cannot used fixed directories, since we don't
know the absolute path of the directory we're building in ahead of time.
(We could pass it in to the build script, or discover it in the script
itself, but that wouldn't really solve the next problem.)  This change
does make the builds not reproducible, but as we're using clang-cl
purely for secondary purposes on Windows, rather than for shipping
Firefox binaries (as we would on Mac, say), I don't feel bad about
punting the reproducibility issue down the road a bit.
2016-10-26 16:18:23 -04:00
Nathan Froyd
552c2c656a Bug 1306650 - part 10 - slashify paths for cmake; r=ehsan
Due to CMake oddities, we need to escape whatever paths we pass in here.
2016-10-26 16:18:23 -04:00
Nathan Froyd
5a788b73f7 Bug 1306650 - part 9 - add CMAKE_ASM_COMPILER to cmake invocation; r=ehsan
CMake is unhappy if we don't provide this piece of information.
2016-10-26 16:18:23 -04:00
Nathan Froyd
ea74f356e5 Bug 1306650 - part 8 - run svn {co,up} with the -q flag; r=ehsan
This change makes the build somewhat less noisy and somewhat faster, by
virtue of not having to print out all the status messages.
2016-10-26 16:18:23 -04:00
Nathan Froyd
4fb8e01e48 Bug 1306650 - part 5 - modify clang-cl toolchain config to look for just cl.exe; r=ehsan
We cannot depend on a fixed location for cl.exe in a taskcluster world.
We therefore need to make our build-clang.py script accomodate relative
path names for cc/cxx and assume those are binaries that should be
looked up on PATH.

We also need to modify the Linux build script so that the virtualenv is
used to look up the new 'which' package.
2016-10-26 16:18:24 -04:00
Wander Lairson Costa
8b5df0b531 Bug 1273981 part 1: Add libc++ to clang. r=glandium
We need to rebuild clang with libc++ to get compatible headers for cross
builds. libc++abi is a dependency of libc++, as the build instructions
says [0].

[0] http://libcxx.llvm.org/docs/BuildingLibcxx.html
2016-08-05 10:46:38 -03:00
Mike Hommey
f957db8901 Bug 1278718 - Build clang 3.8 with static libstdc++. r=froydnj
Use the resulting clang everywhere we are currently using clang 3.8.
2016-06-15 12:22:54 +09:00
Mike Hommey
24bcd5b650 Bug 1264132 - Use $gcc_dir/bin/gcc -print-libgcc-file-name to find the libraries and headers to copy in the clang package. r=ehsan 2016-04-15 08:17:43 +09:00
Mike Hommey
b14166aba4 Bug 1262735 - Don't pass --gcc-toolchain to build clang. r=ehsan
Instead, copy libgcc from the GCC used to build clang at each stage.
When passing --gcc-toolchain, the flag ends up appearing in the output
of llvm-config, and completely defeats the purpose of copying libgcc in
clang/lib/gcc.
2016-04-13 06:54:22 +09:00
Mike Hommey
002db5c8cc Bug 1262735 - Copy libgcc from the GCC used to build clang instead of building a new GCC. r=ehsan
Since build-clang.py requires a gcc_dir to be set, and we're using GCC
from there to build clang, we might as well copy libgcc from there
instead of building a fresh GCC. On the taskcluster job building clang,
GCC comes from a tooltool package that is already the result of
build-gcc anyways.
2016-04-13 06:54:22 +09:00
Mike Hommey
a3f980d620 Bug 1262735 - Fix the path to build-gcc used by build-clang. r=ehsan 2016-04-13 06:54:22 +09:00
Mike Hommey
89e6372554 Bug 1262735 - Separate compiler and flags when passing them to CMake. r=ehsan
When passing -DCMAKE_C_COMPILER="gcc -flags" to CMake, ninja then tries
to literally call "gcc -flags", not "gcc" "-flags", and a "gcc -flags"
file obviously doesn't exist, so the build fails.

This fixes a regression from bug 1042132. Hopefully, this also doesn't
regress bug 1042132 itself.
2016-04-13 06:54:22 +09:00
Ehsan Akhgari
e30457f011 Bug 1042132 - Part 1: Port build-clang.py to Windows; r=rail
This is useful for deploying clang-cl to the infrastructure.
2016-02-08 14:55:27 -05:00