Commit Graph

1731 Commits

Author SHA1 Message Date
Saleem Abdulrasool
9e7f0e1475 build: filter -z,nodelete on Windows
LLVM recently added a new ELF-only linker flag that gets exported.
Filter this from  the linker flags too.
2018-05-24 09:25:10 -07:00
Michael Gottesman
5e53730c44 [cmake] Cleanup the cmake used for adding new fuzzer host tools. 2018-05-06 09:29:38 -07:00
Michael Gottesman
06b19d7a44 Merge pull request #16341 from dcci/demanglefuzz
[tools] Add a libfuzzer based swift demangler fuzzer.
2018-05-06 09:15:28 -07:00
Bob Wilson
a71dd66eb2 Merge pull request #16407 from bob-wilson/rdar37053028
[build-script] NFC: Update a comment regarding LLD for Apple platforms
2018-05-04 21:36:53 -07:00
Bob Wilson
7bb9ae73c7 [build-script] NFC: Update a comment regarding LLD for Apple platforms
PR #14306 fixed the problem in https://bugs.swift.org/browse/SR-6878 but
included a comment about mysterious behavior on macOS. I did some
investigation and found that Clang assumes that Darwin platforms use
a different name for LLD. My impression is that LLD is not yet ready for
prime time on Darwin, so leaving it disabled for Apple platforms seems
like the right thing for now. This just updates the comments to explain
what will need to change whenever someone wants to reenable it.

rdar://problem/37053028
2018-05-04 17:33:30 -07:00
Davide Italiano
98292f4277 [tools] Add a libfuzzer based swift demangler fuzzer.
The debugger demangles names pretty often and we would like
to ensure it never crashes.
2018-05-04 17:31:35 -07:00
Nathan Lanza
7429856034 Change various search and linker paths to account for changes in NDK16
ndk14 introduced "unified headers" which merged the headers for all
different API versions into one directory which effectively split the
"SWIFT_SDK_ANDROID_ARCH_${ARCH}_PATH" into two different directories.

Add include and library specific paths to various compilation and link
invocations across the Swift project to account for this change. Remove
some broken sysroot/sdk specific settings.
2018-05-02 14:18:11 -07:00
Saleem Abdulrasool
61d979348f build: report the ICU path used for the target
Report the ICU I18N and UC include paths and the library path.  This
makes it obvious when the variable is not defined and more importantly
makes it easier to see what the paths are being used particularly when
cross-compiling for multiple architectures.
2018-04-25 21:23:51 -07:00
Alex Hoppen
3e9ae802c2 [libSyntax] Make parsing of attribute arguments more structured
This also fixes several issues where attribute arguments could not be
parsed as a TokenList since some of its arguments already had structure
and were not tokens
2018-04-24 13:18:15 -07:00
Saleem Abdulrasool
decb484fac build: repair Windows build
`-ivfsoverlay` is no longer passed through to the driver with
`clang-cl`.  Explicitly mark it as a clang option to ensure that the
option is handled properly.  This repairs the build on Windows.
2018-04-23 11:20:48 -07:00
Michael Ilseman
46b88ed906 Merge pull request #15928 from milseman/boilerplate_generated
[test] De-gyb stdlib unittest.
2018-04-19 16:25:00 -07:00
Michael Ilseman
c4614a9208 [test] De-gyb stdlib unittest.
StdlibUnittest uses gyb to avoid duplicating many source-context
arguments. However, this means that any test that wishes to add new
expect helpers has to also be gybbed. Given that this structure hasn't
changed in years, and we should have a real language support
eventually, de-gyb it.
2018-04-19 13:06:14 -07:00
Saleem Abdulrasool
8ad1e63858 build: correctly check if we are cross-compiling to Windows
The `-sdk` parameter to the swift compiler causes problems when
cross-compiling to Windows on Linux.  Because the host follows the
traditional unix layout but the headers do not correspond to the target
environment, there are conflicting definitions and incorrect definitions
of basic types imported from C.  Ensure that we do not pass the `-sdk`
parameter to allow correctly building the libraries for the target.
2018-04-19 09:39:34 -07:00
swift-ci
577b2722f7 Merge pull request #13140 from troughton/windows-cross-compile-fixes 2018-04-18 10:56:06 -07:00
Thomas Roughton
823bb0a530 Check for CMAKE_BUILD_TYPE_DEBUG instead of RELEASE
… since MinSizeRel and RelWithDebugInfo are also configurations.
2018-04-18 19:13:47 +12:00
Saleem Abdulrasool
46cc2fa3a5 build: fix typo (IC -> ICU) 2018-04-17 11:26:58 -07:00
Saleem Abdulrasool
88620bc9f5 build: refactor parameter names (NFC)
Create a list that makes it easy to see and add options to the CMake
macro when building.  This makes the `cmake_parse_arguments` call much
more legible by adhering to the CMake recommendations.  NFC.
2018-04-13 18:07:17 -07:00
Nathan Lanza
c3fe715c28 Change the arch argument for configure_sdk_unix to architectures (#15756)
General purpose cross compilation from host x to targets a,b,c will
require the ability to have multiple architectures passed to
`configure_sdk_unix`. Simply change the function to accept multiple
archs.
2018-04-09 19:43:19 -07:00
Saleem Abdulrasool
19aeb69cfb build: indicate VC++ CRT type for Windows builds
Indicate whether the debug or release CRT is in use when building for
Windows.
2018-04-06 13:09:41 -07:00
Jordan Rose
20ae19ef22 [CMake] Improve Xcode project generation with folders (#15738)
- Re-enable the use of folders with the USE_FOLDER setting. This got
  lost a while ago when we stopped including LLVM's top-level
  CMakeLists.txt.

- Put a bunch of new targets into folders.

Should not affect the built product and definitely shouldn't affect
anyone not building with Xcode (or MSVC, I guess).
2018-04-04 18:22:59 -07:00
Saleem Abdulrasool
949216d716 build: disable static RTTI on Windows if possible
Newer SDKs have the ability to disable the static RTTI usage as well as
the dynamic.  We had to enable the use of static RTTI previously for the
use of `std::function`.  Disable the static RTTI if possible.
2018-03-31 16:48:35 -07:00
swift-ci
8e533e3975 Merge pull request #15638 from compnerd/libdir 2018-03-30 17:34:33 -07:00
Saleem Abdulrasool
547a8f6e04 build: library search directories are directories
Use the directory portion of the path to the ICU libraries for the
library search directory.
2018-03-30 15:26:27 -07:00
Nathan Lanza
e06c52584f Change various uses of SWIFT_SDK_${SDK}_PATH to its architecture specific vairant
Cross-compilation for multiple architectures & sdks require various
variables to be split to specify the arch/adk variant being focused on.
This change modifies various uses of the `SWIFT_SDK_${SDK}_PATH` to
`SWIFT_SDK_${SDK}_ARCH_${ARCH}`
2018-03-30 17:50:59 +00:00
Michael Gottesman
0bc86e095f Replace -enable-guaranteed-normal-arguments with -disable-guaranteed-normal-arguments.
rdar://38874323
2018-03-26 12:25:22 -07:00
Nathan Lanza
dd3cbf0b64 Add architecture specific path variables to SwiftConfigureSDK
New variables are introduced to track the path for the architecture
specific subdirectories

This work is mostly attributed to Zach Bowling
2018-03-20 16:20:43 -07:00
swift-ci
4189e758c3 Merge pull request #15334 from lanza/typo-arch 2018-03-19 10:35:30 -07:00
Nathan Lanza
6a3794110f Fix simple typo from SDK to ARCH 2018-03-18 21:18:56 -07:00
Slava Pestov
694fcddf4e Remove build-script flag to disable resilience 2018-03-16 19:56:17 -07:00
Michael Gottesman
56adc6b061 Revert "[cmake] Always add local swift compilation jobs to the local job pool."
This reverts commit c4038de7bc.

Seems to not be working... until I figure out why, I am reverting this.
2018-03-12 10:23:32 -07:00
Michael Gottesman
c4038de7bc [cmake] Always add local swift compilation jobs to the local job pool.
Compiling swift modules are always compiled local... so put them in the local
job pool.
2018-03-11 12:48:27 -07:00
swift-ci
cdff736edc Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-03-06 17:58:02 -08:00
Xi Ge
94c3f55117 libSyntax: extract meta-information of trivia kinds to syntax_gyb_support. NFC
The existing libSyntax infrastructure uses external python
dictionaries to share logic between C++ and Swift implementations.
This patch teaches trivia kinds to adapt to this infrastructure
 as well.
2018-03-06 17:45:43 -08:00
swift-ci
1d4450e26a Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-03-03 07:18:00 -08:00
David Zarzycki
763008ccd7 Merge pull request #14908 from davezarzycki/nfc_cmake_limit_leaf_frame_pointer_opt_to_production
[CMake] Limit -momit-leaf-frame-pointer to production builds
2018-03-03 10:11:52 -05:00
swift-ci
53a66db52f Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-03-01 16:39:55 -08:00
swift-ci
204e51721a Merge pull request #14917 from compnerd/fno-rtti-data 2018-03-01 16:30:45 -08:00
swift-ci
1386c0e9bc Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-03-01 15:59:52 -08:00
Saleem Abdulrasool
4585bc53d6 build: emulate /GR- when compiling for Windows
The /GR- emulation is needed to support building on Windows.
std::function in Microsoft's C++ runtime requires the use of `typeid`.
We do not want to emit RTTI data.  `-frtti -fno-rtti-data` allows the
use of the `typeid` and `dynamic_cast` behaviours but will not emit the
RTTI data.  With this change, it is possible to build the Windows
runtime once again.
2018-03-01 14:14:02 -08:00
Saleem Abdulrasool
2e77e6a8b1 build: tweak gyb line directives
Make the quoted parameters more portable.  This is needed in order to
support building swift on Windows.  Simplify the declaration of the
flags and do a small formatting clean up.  This ensures that the ninja
generation gets the command line invocation correct.
2018-03-01 12:21:54 -08:00
David Zarzycki
b1641fd338 [CMake] Limit -momit-leaf-frame-pointer to production builds
When building with asserts or debug information, don't disable leaf
frame pointers because some debugging/analysis tools have buggy or
nonexistent support for DWARF-style backtraces.
2018-03-01 12:34:58 -05:00
swift-ci
d89cbfe481 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-28 10:40:59 -08:00
Saleem Abdulrasool
420328b886 Merge pull request #14728 from compnerd/icu-arch
build: explicitly state arch for ICU
2018-02-28 10:21:08 -08:00
swift-ci
2cd2bec970 Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-21 14:55:39 -08:00
Xi Ge
1a67b5c60e cmake: mark recently added python files as gyb dependencies. 2018-02-21 12:11:00 -08:00
Thomas Roughton
5173e3c799 SwiftPrivate now builds on Windows with Pull-14710 2018-02-20 22:21:54 +13:00
Saleem Abdulrasool
e77d4c7c98 build: explicitly state arch for ICU
This is needed to support cross-compilation on targets which do not
support FAT binaries (i.e. non-MachO targets).  The primary user of this
functionality right now is Windows, but this support is needed for Linux
and android as well.
2018-02-19 23:27:54 -08:00
swift-ci
5540fb962a Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-12 12:18:12 -08:00
Saleem Abdulrasool
4a557df091 build: avoid incremental links with link.exe
This is a workaround for Visual Studio's link causing corruption with
incremental linking.  The markers for the metadata are padded out
incorrectly, resulting in load time failures.  With this, it is possible
to link with link and use the generated binaries on Windows x86_64.
2018-02-12 09:53:21 -08:00
swift-ci
c6d31e959a Merge remote-tracking branch 'origin/master' into master-llvm-swift5-transition 2018-02-09 08:38:05 -08:00