Skip to content

Commit 3d8623f

Browse files
committed
Add Dockerfile, JSC scripts and patches
1 parent 388ed79 commit 3d8623f

File tree

8 files changed

+172
-1
lines changed

8 files changed

+172
-1
lines changed

Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM bitriseio/android-ndk
2+
3+
ENV ANDROID_NDK ${ANDROID_NDK_HOME}
4+
5+
## enhancements
6+
RUN sdkmanager "cmake;3.6.3155560"
7+
8+
# subversion
9+
RUN apt-get install subversion gperf -y

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
1. ./fetch_sources.sh
22
2. ./icu-prep.sh
33
3. JSC_ARCH=arm ./toolchain.sh
4-
4. JSC_ARCH=arm ./icu.sh
4+
4. JSC_ARCH=arm ./icu.sh
5+
5. ./jsc-prep.sh
6+
6. JSC_ARCH=arm ./jsc.sh

extra_headers/wtf/execinfo.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
#ifndef FAKE_EXECINFO_H
5+
#define FAKE_EXECINFO_H
6+
int backtrace(void **array, int size);
7+
char **backtrace_symbols(void *const *array, int size);
8+
void backtrace_symbols_fd (void *const *array, int size, int fd);
9+
#endif

jsc-prep.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
3+
ROOTDIR=`pwd`
4+
5+
cd $ROOTDIR/target/webkit/Source
6+
7+
patch -p0 < $ROOTDIR/patches/jsc.patch
8+
patch -p0 < $ROOTDIR/patches/wtf.patch
9+
patch -p0 < $ROOTDIR/patches/jsc_cmake.patch

jsc.sh

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/bin/bash
2+
3+
source common.sh
4+
5+
PATH=$TOOLCHAIN_DIR/bin:$ANDROID_HOME/cmake/3.6.3155560/bin/:$PATH
6+
7+
rm -rf target/webkit/WebKitBuild
8+
cd target/webkit/Tools/Scripts
9+
10+
CMAKE_CXX_FLAGS=" \
11+
$COMMON_CFLAGS \
12+
$PLATFORM_CFLAGS \
13+
-fno-rtti \
14+
-I$ROOTDIR/extra_headers/wtf/ \
15+
-I$ROOTDIR/target/icu/source/i18n \
16+
"
17+
CMAKE_LD_FLAGS=" \
18+
-latomic \
19+
-lm \
20+
-lc++_shared \
21+
$COMMON_LDFLAGS \
22+
$PLATFORM_LDFLAGS \
23+
"
24+
25+
./build-webkit \
26+
--jsc-only \
27+
--release \
28+
--jit \
29+
--intl \
30+
--no-webassembly \
31+
--no-xslt \
32+
--no-netscape-plugin-api \
33+
--no-tools \
34+
--cmakeargs="-DCMAKE_SYSTEM_NAME=Android \
35+
-DCMAKE_SYSTEM_VERSION=$ANDROID_API \
36+
-DCMAKE_SYSTEM_PROCESSOR=$ARCH \
37+
-DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=$TOOLCHAIN_DIR \
38+
-DWEBKIT_LIBRARIES_INCLUDE_DIR=$ROOTDIR/target/icu/source/common \
39+
-DWEBKIT_LIBRARIES_LINK_DIR=$ROOTDIR/target/icu/$CROSS_COMPILE_PLATFORM/lib \
40+
-DCMAKE_C_COMPILER=$CROSS_COMPILE_PLATFORM-clang \
41+
-DCMAKE_CXX_COMPILER=$CROSS_COMPILE_PLATFORM-clang \
42+
-DCMAKE_SYSROOT=$ANDROID_NDK/platforms/android-$ANDROID_API/arch-$ARCH \
43+
-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS} $COMMON_CXXFLAGS $CMAKE_CXX_FLAGS' \
44+
-DCMAKE_C_FLAGS='${CMAKE_C_FLAGS} $CMAKE_CXX_FLAGS' \
45+
-DCMAKE_SHARED_LINKER_FLAGS='${CMAKE_SHARED_LINKER_FLAGS} $CMAKE_LD_FLAGS' \
46+
-DCMAKE_EXE_LINKER_FLAGS='${CMAKE_MODULE_LINKER_FLAGS} $CMAKE_LD_FLAGS' \
47+
-DENABLE_API_TESTS=0 \
48+
-DCMAKE_VERBOSE_MAKEFILE=on \
49+
"
50+
51+
mv $ROOTDIR/target/webkit/WebKitBuild $ROOTDIR/target/webkit/$CROSS_COMPILE_PLATFORM

patches/jsc.patch

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
diff --exclude=.svn -aur JavaScriptCore-org/CMakeLists.txt JavaScriptCore/CMakeLists.txt
2+
--- JavaScriptCore-org/CMakeLists.txt 2017-02-10 02:49:33.000000000 +0100
3+
+++ JavaScriptCore/CMakeLists.txt 2017-06-02 10:18:36.000000000 +0200
4+
@@ -18,7 +18,7 @@
5+
"${JAVASCRIPTCORE_DIR}/dfg"
6+
"${JAVASCRIPTCORE_DIR}/disassembler"
7+
"${JAVASCRIPTCORE_DIR}/disassembler/udis86"
8+
- "${JAVASCRIPTCORE_DIR}/disassembler/arm64"
9+
+ "${JAVASCRIPTCORE_DIR}/disassembler/ARM64"
10+
"${JAVASCRIPTCORE_DIR}/domjit"
11+
"${JAVASCRIPTCORE_DIR}/ftl"
12+
"${JAVASCRIPTCORE_DIR}/heap"
13+
@@ -1491,7 +1491,7 @@
14+
15+
target_include_directories(LLIntOffsetsExtractor PRIVATE ${JavaScriptCore_INCLUDE_DIRECTORIES})
16+
17+
-add_subdirectory(shell)
18+
+# add_subdirectory(shell)
19+
20+
WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
21+
WEBKIT_FRAMEWORK(JavaScriptCore)
22+
diff --exclude=.svn -aur JavaScriptCore-org/heap/EdenGCActivityCallback.cpp JavaScriptCore/heap/EdenGCActivityCallback.cpp
23+
--- JavaScriptCore-org/heap/EdenGCActivityCallback.cpp 2016-11-02 23:01:04.000000000 +0100
24+
+++ JavaScriptCore/heap/EdenGCActivityCallback.cpp 2017-05-30 15:57:45.000000000 +0200
25+
@@ -30,7 +30,7 @@
26+
27+
namespace JSC {
28+
29+
-#if USE(CF) || USE(GLIB)
30+
+#if 1
31+
32+
EdenGCActivityCallback::EdenGCActivityCallback(Heap* heap)
33+
: GCActivityCallback(heap)

patches/jsc_cmake.patch

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
diff --exclude=.svn -aur webkit/Source/cmake/FindICU.cmake target/webkit/Source/cmake/FindICU.cmake
2+
--- webkit/Source/cmake/FindICU.cmake 2017-05-16 12:00:04.000000000 +0200
3+
+++ cmake/FindICU.cmake 2017-05-19 16:25:44.000000000 +0200
4+
@@ -25,7 +25,7 @@
5+
# Look for the library.
6+
find_library(
7+
ICU_LIBRARY
8+
- NAMES libicuuc cygicuuc cygicuuc32 icuuc
9+
+ NAMES libicuuc cygicuuc cygicuuc32 icuuc icuuc_jsc
10+
HINTS ${PC_ICU_LIBRARY_DIRS}
11+
${PC_ICU_LIBDIR}
12+
${WEBKIT_LIBRARIES_LINK_DIR}
13+
@@ -51,7 +51,7 @@
14+
pkg_check_modules(PC_ICU_I18N icu-i18n)
15+
find_library(
16+
ICU_I18N_LIBRARY
17+
- NAMES icui18n libicui18n libicuin cygicuin cygicuin32 icuin
18+
+ NAMES icui18n libicui18n libicuin cygicuin cygicuin32 icuin icui18n_jsc
19+
HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
20+
${PC_ICU_I18N_LIBDIR}
21+
${WEBKIT_LIBRARIES_LINK_DIR}
22+
@@ -68,7 +68,7 @@
23+
# Look for the ICU data libraries
24+
find_library(
25+
ICU_DATA_LIBRARY
26+
- NAMES icudata libicudata cygicudata cygicudata32
27+
+ NAMES icudata libicudata cygicudata cygicudata32 icudata_jsc
28+
HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
29+
${PC_ICU_I18N_LIBDIR}
30+
${WEBKIT_LIBRARIES_LINK_DIR}
31+
diff --exclude=.svn -aur webkit/Source/cmake/OptionsJSCOnly.cmake target/webkit/Source/cmake/OptionsJSCOnly.cmake
32+
--- webkit/Source/cmake/OptionsJSCOnly.cmake 2017-05-16 12:00:04.000000000 +0200
33+
+++ cmake/OptionsJSCOnly.cmake 2017-05-26 13:58:10.000000000 +0200
34+
@@ -23,7 +23,8 @@
35+
set(ENABLE_WEBCORE OFF)
36+
set(ENABLE_WEBKIT OFF)
37+
set(ENABLE_WEBKIT2 OFF)
38+
-set(ENABLE_API_TESTS ON)
39+
+set(ENABLE_API_TESTS OFF)
40+
+set(ENABLE_SAMPLING_PROFILER OFF)
41+
42+
if (WTF_CPU_X86 OR WTF_CPU_X86_64)
43+
SET_AND_EXPOSE_TO_BUILD(USE_UDIS86 1)

patches/wtf.patch

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --exclude=.svn -aur WTF-org/wtf/Assertions.cpp WTF/wtf/Assertions.cpp
2+
--- WTF-org/wtf/Assertions.cpp 2016-09-01 03:33:40.000000000 +0200
3+
+++ WTF/wtf/Assertions.cpp 2017-05-30 14:47:06.000000000 +0200
4+
@@ -72,11 +72,9 @@
5+
#include <unistd.h>
6+
#endif
7+
8+
-#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
9+
#include <cxxabi.h>
10+
#include <dlfcn.h>
11+
#include <execinfo.h>
12+
-#endif
13+
14+
extern "C" {
15+

0 commit comments

Comments
 (0)