Commit Graph

968 Commits

Author SHA1 Message Date
Doug Coleman
f03ec5016d [build-script] When cross compiling tools, don't install native host tools. 2016-10-18 13:38:14 -07:00
Bob Wilson
b9d1b49c33 Temporarily disable llvm modules.
Clang-800 is crashing with C++ modules when building this version of LLVM.
Hopefully we can find a workaround. The crash is tracked
in rdar://problem/28739039
2016-10-13 10:41:48 -07:00
adrian-prantl
fd47f925a7 Merge pull request #5186 from adrian-prantl/28655564
build-script: Don't automatically clear the module cache.
2016-10-11 10:04:06 -07:00
Adrian Prantl
65ad63730d build-script: Don't automatically clear the module cache.
On Darwin, LLVM builds with -gmodules which causes debug info for the
types defined by the LLVM modules is stored alongside the modules in the
module cache. Deleting the module cache on every re-invocation of
build-script without re-building the LLVM and clang modules will erase
the debug info and thus render any LLVM types undebuggable.

rdar://problem/28655564
2016-10-07 15:32:46 -07:00
Michael Gottesman
0c88392f31 [build-script] Always set -DNDEBUG when overriding CMAKE_{C,CXX}_FLAGS_RELWITHDEBINFO for swift and llvm.
Turns out -DLLVM_ENABLE_ASSERTIONS does not actually enable assertions in LLVM!
What it actually does is rewrite the -DNDEBUG flag to be -UNDEBUG. This means
that we always want to pass in -DNDEBUG to swift. There are some complications
though. This means that we can not compile the C++ part of the runtime with a
different assertions setting than the swift compiler/llvm. This is a trade off
that for now we are ok with to get the no-asserts build working.

As part of a separate change, we are going to make -DLLVM_ENABLE_ASSERTIONS more
robust by doing what swift does now, putting -DNDEBUG or -UNDEBUG after CMake's
-DNDEBUG so we get the correct behavior of disabling or enabling assertions.

rdar://28485525
2016-10-05 15:10:22 -07:00
Michael Gottesman
1334f88d03 [build-script] Only hard code the C/CXX flags for RelWithDebInfo builds.
This patch resolves some post-commit feedback from @llvmbeanz. Specifically, the
only time that we need to hard code these flags are when compiling with
RelWithDebInfo since we need extra control in that case to ensure that CMake
does not sneak in a -g flag on the command line. This is important to ensure
that we are compiling with -gline-tables-only instead of -g.

Given that it is a performance fix specific to compiling with LTO with debug
info, we should no perform such a change when compiling with:

1. MINRELSIZE since we do not ever perform that build.
2. RELEASE since it does not have debug info.
3. DEBUG since why would one perform an LTO build in DEBUG mode.

In terms of 3, I can potentially imagine someone trying to compile Swift in
Debug with LTO to try to debug an LTO bug, but I imagine such a test case to be
such a rare need that there is no point in trying to make it faster.
2016-10-05 15:10:18 -07:00
swift-ci
ab32802bc7 Merge pull request #4903 from keith/ks/build-bracket 2016-09-25 17:59:47 -07:00
Michael Gottesman
e4d8cc7a4d [build-script-impl] Always add debug info flags from build-script for LLVM and use it to ensure that -gline-tables-only is the only debug flag passed in when compiling with LTO.
rdar://27973141
2016-09-25 15:43:04 -07:00
Luke Larson
0c3c02bdbd [build-script] Add clang PGO support 2016-09-23 14:22:37 -07:00
Keith Smiley
731e58a3ab Remove extra closing bracket from build script
This resulted in a bad substitution when running

swift/utils/build-script --swiftpm --llbuild
2016-09-21 13:54:20 -04:00
Grzegorz Miłoś
f96b655a89 Merge remote-tracking branch 'upstream/master' into SR-755-linux-fatal-stacktrace-symbolication 2016-09-20 18:24:04 +01:00
Todd Fiala
1f2843cb89 Merge pull request #4871 from tfiala/lldb-macos-run-gtests
run LLDB gtests on macOS via the Xcode build
2016-09-19 23:43:16 -07:00
Todd Fiala
a3e11c36a0 run LLDB gtests on macOS via the Xcode build
This change introduces a helper function to construct the
LLDB Xcode options that are now used in two different locations.
On macOS Xcode builds, it builds and runs the lldb-gtest scheme
in the LLDB workspace.  This step will fail the lldb test phase
if any of the gtests fail to compile or generate a test failure.
2016-09-19 15:37:48 -07:00
Vedant Kumar
61af28b6fe build-script: Disable llvm module builds when asan is enabled
Apparently some sanitizer flags aren't properly encoded in module
hashes. This leads to a crash in the frontend.

rdar://problem/28356072
2016-09-19 10:10:49 -07:00
Vedant Kumar
208e82f66f Merge pull request #4779 from vedantk/modules
build-script: Enable module builds of llvm by default
2016-09-15 13:31:30 -07:00
Grzegorz Miłoś
74ff4dad81 Merge remote-tracking branch 'upstream/master' into SR-755-linux-fatal-stacktrace-symbolication 2016-09-15 14:17:15 +01:00
Luke Larson
573a58cacd [coverage] Add scripts supporting specific coverage
The three included Python scripts work together to generate a sqlite3
database containing mappings of all covered Swift source code regions to
the specific tests that cover them.

Additionally, build-script support is included for utilizing the
coverage database to prioritize tests covering changes in the Swift
repository.
2016-09-14 15:14:01 -07:00
Vedant Kumar
30c2169a5d build-script: Enable module builds by default 2016-09-14 14:22:02 -07:00
Grzegorz Miłoś
e819ae9779 Fix bash PRODUCT enumeration, this makes test run OK. 2016-09-14 16:54:58 +01:00
Michael Gottesman
31195798a7 Merge remote-tracking branch 'origin/master-next' 2016-09-11 02:27:16 -07:00
Grzegorz Miłoś
0600c64398 Review comments. Round 7. Look away please. 2016-09-08 17:52:02 +01:00
Arthur
b29fbeae51 [build] Fix incorrect path quoting in build-script 2016-09-08 16:43:04 +02:00
Grzegorz Miłoś
d10146592d Review comments. Round 5. Integration test for symbolicate-linux-fatal. 2016-09-08 15:01:25 +01:00
Michael Gottesman
b48b4d96fe Merge remote-tracking branch 'origin/master' into master-next 2016-09-07 15:35:07 -07:00
Todd Fiala
7cdab0b843 Merge pull request #4574 from karwa/lldb-cross
[build-script] LLDB cross-compiling
2016-09-06 22:43:46 -07:00
Michael Gottesman
8f4bf953ed Merge pull request #4577 from dgrove-oss/libdispatch-verbose-failing-test
send detailed log for failing libdispatch test to stdout
2016-09-02 08:18:03 -07:00
David Grove
5327fe9c1a send detailed log for failing libdispatch test to stdout
If VERBOSE is set, the automake test harness used by libdispatch
will cat the log file for any failing testcase to stdout. This will
enable the detailed output from the failed test cases to be captured
by the CI system in the console log, enabling better test failure
diagnosis.
2016-08-31 18:19:49 -04:00
Greg Parker
b751eb4ab0 [build-script] Fix build args passed to cmake commands that run tests. 2016-08-31 14:55:33 -07:00
SpringsUp
5bca476763 [build-script] LLDB cross-compiling 2016-08-31 21:46:48 +02:00
Michael Gottesman
fa1bb95923 Merge remote-tracking branch 'origin/master' into master-next 2016-08-30 19:50:12 -07:00
Michael Gottesman
cdc6530f52 [build-script] Remove dead code. NFC. 2016-08-29 21:51:02 -07:00
Tony Parker
59a7c7397a Merge pull request #4203 from phausler/build_libdispatch_by_default
build libdispatch by default in both linux build bot configurations
2016-08-19 22:38:48 -07:00
Philippe Hausler
3951bf8387 Remove logging call to which on autoreconf 2016-08-19 14:31:52 -07:00
Philippe Hausler
f131f827ab Add logging diagnostics to nail down the build script failures 2016-08-19 11:17:39 -07:00
Philippe Hausler
0ca01e14be reconfigure libdispatch when asked to by the build script 2016-08-19 10:58:18 -07:00
Michael Gottesman
4aad5801c8 [vacation/gardening] Move clang/swift version specification from build-script-impl => swift_build_support.products. 2016-08-12 10:07:20 -04:00
Michael Gottesman
72603eb944 [vacation/gardening] Move compiler-vendor code from build-script-impl => swift_build_support.products.
This is part of an effort to provide examples on how to migrate product
specific flags from build-script-impl => swift_build_support.products.
2016-08-12 10:07:20 -04:00
Michael Gottesman
14b2dd5296 [build-script] Move computation of LLVM_ENABLE_ASSERTIONS from build-script-impl to swift_build_support.products.LLVM. 2016-08-10 01:30:30 -04:00
Michael Gottesman
a56d6ac068 [build-script] Move llvm-targets-to-build to swift_build_support.products.LLVM from build-script-impl. 2016-08-10 01:30:30 -04:00
Michael Gottesman
c28ce159cb [build-script] Add support for specifying per host cmake options.
These are computed by build-script and passed directly by build-script-impl into
cmake for the relevant target. We can now start to migrate per product cmake
options from build-script-impl into build-script.
2016-08-03 14:17:41 -07:00
Vedant Kumar
aa11349043 [build-script] Disable building llvm with modules by default
There may be some issues building compiler-rt with modules. Temporarily
disable the module build by default until we know more.

rdar://problem/27019000
2016-08-03 10:17:53 -07:00
Vedant Kumar
75fa5ea5c5 [build-script] Enable building llvm with modules by default 2016-08-01 15:39:45 -07:00
Michael Gottesman
b16c2b2a7d [build-script-impl] Remove enable-ubsan flag. This is handled via swift_build_support. 2016-08-01 15:11:09 -07:00
Vedant Kumar
693c8cc2f3 [build-script] Add --llvm-enable-modules
(cherry picked from commit b65a172608)
2016-08-01 15:03:49 -07:00
Jacob Mizraji
f9d6de5ceb Make the llvm-include-tests flag actually do something
Before this patch, it would not actually do anything unless
compute_cmake_llvm_tool_disable_flags()
was called, which is currently dead code, in the state of
build-script-impl currently.
2016-07-29 16:24:56 -07:00
Michael Gottesman
0f1f5d772d [build-script] Add the ability to only build/install toolchain files via the non-fine grained approach, only for this release though.
I am preparing a different PR that reverts this change and will be merged for
swift-4.

This is disabled by default so on the builders it should be NFC.
2016-07-26 00:30:29 -07:00
Michael Gottesman
907f73d121 [build-script] Refactor computation of the flags for disabling LLVM tools to its on function. 2016-07-23 11:51:46 -07:00
Michael Gottesman
88da17fbfa [build-script] If we are not testing Swift as well as not testing LLVM, disable
all parts of LLVM that are not needed for compiling Swift.
2016-07-23 11:51:46 -07:00
Michael Gottesman
bca08025a0 [build-script] Rename source-tree-includes-tests to swift-include-tests.
This matches cmake more closely and also matches the build-script-impl argument
for including llvm tests ("llvm-include-tests").
2016-07-23 11:51:46 -07:00
Michael Gottesman
a457a2290b [build-script] Remove direct setting of the cmake variable LLVM_INCLUDE_TESTS via SOURCE_TREE_CINDLUES_TESTS. It is by default set to True and we turn it off via the variable LLVM_INCLUDE_TESTS now.
This actually became a no-op since the build-script-impl triggered instance of
LLVM_INCLUDE_TESTS is always put strictly after this instance of setting the
cmake variable on the cmake line.
2016-07-23 11:51:08 -07:00