Add LLVM binaries for iOS 9 device
authordbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Oct 2015 23:34:08 +0000 (23:34 +0000)
committerdbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Oct 2015 23:34:08 +0000 (23:34 +0000)
commit84bad63eab5d557dc5a6ec8e9973e5ec4ddd733f
tree5e7ca88134a6cdff790938ab0fc5014e37145160
parent4fa9038bf905e2887d180c457907a251a0dc8c81
Add LLVM binaries for iOS 9 device
https://bugs.webkit.org/show_bug.cgi?id=149913

Source/JavaScriptCore:

Reviewed by Filip Pizlo.

Look for locally built/binary dropped LLVM headers and libraries when building for iOS device
in WebKitBuild/usr/local.

Currently Mac and iOS look for the locally built/binary dropped LLVM in different directories:
WebKitBuild/usr/local and /usr/local/LLVMForJavaScriptCore, respectively. This difference is
due to dependencies with the Apple internal build system. We should look to resolve the
Apple internal dependencies and standardize on one location for both platforms.

* Configurations/Base.xcconfig:

Tools:

Reviewed by Filip Pizlo.

Implement support for building LLVM for ARM64-based iOS devices.

* Scripts/build-jsc: Enable the FTL when building for Mac or iOS device.
* Scripts/copy-webkitlibraries-to-product-directory: Move logic to clean
an existing build earlier in the file such that remove previously built
libraries before building/copying new ones (if applicable).
(fileContains): Moved function outside of if-block.
(isContentOfFileEqualToString): Renamed; formerly named fileContentsEquals().
(buildLLVM): Added. Extracted machinery to build LLVM into this function and
added logic to build LLVM for ARM64-based iOS devices.
(symlinkLLVMLibrariesIfNeeded): Added. Extracted machinery to symlink the built
LLVM into the WebKitBuild directory.

WebKitLibraries:

Rubber-stamped by Filip Pizlo.

Add LLVM 3.6.2 binaries for ARM64-based iOS devices. We make use of LLVM for the FTL,
which is enabled for 64-bit iOS devices.

I built these binaries by performing the following:

1) Check out WebKit to a directory like /some/path/OpenSource.

2) Download and expand the archive <http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz> into /some/path/OpenSource/llvm.

3) In /some/path/OpenSource, delete the WebKitBuild directory to ensure a clean build.

4) Run `Tools/Scripts/build-jsc --release --device ARCHS=arm64 ONLY_ACTIVE_ARCH=NO` to build both LLVM and JavaScriptCore.

5) Run `Tools/Scripts/export-llvm-build -i WebKitLibraries/LLVMIncludesIOSDevice9.tar.bz2 -l WebKitLibraries/LLVMLibrariesIOSDevice9.tar.bz2 -b llvm/wkLLVMBuild -B llvm/wkLLVMBuild/Release+Asserts -s llvm` to produce files LLVM{Includes, Libraries}IOS9.tar.bz2.

* LLVMIncludesIOS9.tar.bz2: Added.
* LLVMLibrariesIOS9.tar.bz2: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@190759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/Configurations/Base.xcconfig
Tools/ChangeLog
Tools/Scripts/build-jsc
Tools/Scripts/copy-webkitlibraries-to-product-directory
WebKitLibraries/ChangeLog
WebKitLibraries/LLVMIncludesIOS9.tar.bz2 [new file with mode: 0644]
WebKitLibraries/LLVMLibrariesIOS9.tar.bz2 [new file with mode: 0644]