Skip to content

Commit

Permalink
Merge pull request #3 from SoftwareMansion/updateSource
Browse files Browse the repository at this point in the history
Use baseline JIT only + update binary sizes
  • Loading branch information
kmagiera authored Jun 27, 2017
2 parents 60875ab + 3d01435 commit 86b24e6
Show file tree
Hide file tree
Showing 7 changed files with 78 additions and 109 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,11 @@ As a part of this project we provide a patch to the React Native source code tha

| | android-jsc (r174650) | new JSC (r216113) |
| -------------------- |----------------------:| -----------------:|
| cold start time | 427 ms | 443 ms |
| binary size (armv7) | 1.8 MiB | 5.7 MiB |
| binary size (x86) | 4.4 MiB | 10 MiB |
| binary size (arm64) | N/A | 11 MiB |
| binary size (x86_64) | N/A | 13 MiB |
| cold start time | 427 ms | ? ms |
| binary size (armv7) | 1.8 MiB | 4.4 MiB |
| binary size (x86) | 4.4 MiB | 7.5 MiB |
| binary size (arm64) | N/A | 6.7 MiB |
| binary size (x86_64) | N/A | 7.4 MiB |

## Credits

Expand Down
17 changes: 5 additions & 12 deletions fetch_sources.sh
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
#!/bin/bash

TARGET_DIR=target
# This SVN revision number was determined by looking for the latest iOS release at https://trac.webkit.org/browser/webkit/releases/Apple
SVN_REV=216995
mkdir -p $TARGET_DIR/webkit
svn export -r $SVN_REV https://svn.webkit.org/repository/webkit/trunk/Source $TARGET_DIR/webkit/Source
svn export -r $SVN_REV https://svn.webkit.org/repository/webkit/trunk/Tools $TARGET_DIR/webkit/Tools
svn export -r $SVN_REV https://svn.webkit.org/repository/webkit/trunk/CMakeLists.txt $TARGET_DIR/webkit/CMakeLists.txt

# As the trunk for $SVN_REV differs from releases dir I'm replacing JSC and WTF with versions from releases dir
rm -rf $TARGET_DIR/webkit/Source/JavaScriptCore
svn export -r $SVN_REV https://svn.webkit.org/repository/webkit/releases/Apple/iOS%2010.3.2/JavaScriptCore $TARGET_DIR/webkit/Source/JavaScriptCore
SVN_DIR=releases/WebKitGTK/webkit-2.17.1

rm -rf $TARGET_DIR/webkit/Source/WTF
svn export -r $SVN_REV https://svn.webkit.org/repository/webkit/releases/Apple/iOS%2010.3.2/WTF $TARGET_DIR/webkit/Source/WTF
mkdir -p $TARGET_DIR/webkit
svn export https://svn.webkit.org/repository/webkit/$SVN_DIR/Source $TARGET_DIR/webkit/Source
svn export https://svn.webkit.org/repository/webkit/$SVN_DIR/Tools $TARGET_DIR/webkit/Tools
svn export https://svn.webkit.org/repository/webkit/$SVN_DIR/CMakeLists.txt $TARGET_DIR/webkit/CMakeLists.txt

mkdir -p $TARGET_DIR/icu
# This is for the latest release for the latest android from https://android.googlesource.com/platform/external/icu/
Expand Down
4 changes: 1 addition & 3 deletions jsc-prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

ROOTDIR=`pwd`

cd $ROOTDIR/target/webkit/Source
cd $ROOTDIR/target

patch -p0 < $ROOTDIR/patches/jsc.patch
patch -p0 < $ROOTDIR/patches/wtf.patch
patch -p0 < $ROOTDIR/patches/jsc_cmake.patch
2 changes: 1 addition & 1 deletion lib/lib/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION_NAME=r216995
VERSION_NAME=r216113
GROUP=org.webkit

POM_NAME=android-jsc
Expand Down
96 changes: 66 additions & 30 deletions patches/jsc.patch
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
diff --exclude=.svn -aur JavaScriptCore-org/CMakeLists.txt JavaScriptCore/CMakeLists.txt
--- JavaScriptCore-org/CMakeLists.txt 2017-02-10 02:49:33.000000000 +0100
+++ JavaScriptCore/CMakeLists.txt 2017-06-05 12:00:20.000000000 +0200
@@ -18,7 +18,7 @@
"${JAVASCRIPTCORE_DIR}/dfg"
"${JAVASCRIPTCORE_DIR}/disassembler"
"${JAVASCRIPTCORE_DIR}/disassembler/udis86"
- "${JAVASCRIPTCORE_DIR}/disassembler/arm64"
+ "${JAVASCRIPTCORE_DIR}/disassembler/ARM64"
"${JAVASCRIPTCORE_DIR}/domjit"
"${JAVASCRIPTCORE_DIR}/ftl"
"${JAVASCRIPTCORE_DIR}/heap"
@@ -1491,7 +1491,7 @@
diff -aur org/webkit/Source/JavaScriptCore/CMakeLists.txt webkit/Source/JavaScriptCore/CMakeLists.txt
--- org/webkit/Source/JavaScriptCore/CMakeLists.txt 2017-06-27 13:37:42.000000000 +0200
+++ webkit/Source/JavaScriptCore/CMakeLists.txt 2017-06-27 13:39:41.000000000 +0200
@@ -1543,7 +1543,7 @@

target_include_directories(LLIntOffsetsExtractor PRIVATE ${JavaScriptCore_INCLUDE_DIRECTORIES})

Expand All @@ -19,34 +10,79 @@ diff --exclude=.svn -aur JavaScriptCore-org/CMakeLists.txt JavaScriptCore/CMakeL

WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
WEBKIT_FRAMEWORK(JavaScriptCore)
@@ -1503,6 +1503,7 @@
@@ -1555,6 +1555,7 @@
install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
endif ()
endif ()
+set_target_properties(JavaScriptCore PROPERTIES OUTPUT_NAME jsc)

# Force staging of shared scripts, even if they aren't directly used to build JavaScriptCore.

diff --exclude=.svn -aur JavaScriptCore-org/heap/EdenGCActivityCallback.cpp JavaScriptCore/heap/EdenGCActivityCallback.cpp
--- JavaScriptCore-org/heap/EdenGCActivityCallback.cpp 2016-11-02 23:01:04.000000000 +0100
+++ JavaScriptCore/heap/EdenGCActivityCallback.cpp 2017-05-30 15:57:45.000000000 +0200
@@ -30,7 +30,7 @@

namespace JSC {
diff -aur org/webkit/Source/WTF/wtf/Assertions.cpp webkit/Source/WTF/wtf/Assertions.cpp
--- org/webkit/Source/WTF/wtf/Assertions.cpp 2017-06-27 13:38:14.000000000 +0200
+++ webkit/Source/WTF/wtf/Assertions.cpp 2017-06-27 13:39:41.000000000 +0200
@@ -74,7 +74,6 @@
#endif

-#if USE(CF) || USE(GLIB)
+#if 1
#if HAVE(BACKTRACE)
-#include <execinfo.h>
#endif

EdenGCActivityCallback::EdenGCActivityCallback(Heap* heap)
: GCActivityCallback(heap)
diff --exclude=.svn -aur JavaScriptCore-org/inspector/JSGlobalObjectInspectorController.cpp JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp
--- JavaScriptCore-org/inspector/JSGlobalObjectInspectorController.cpp 2016-12-14 17:04:30.000000000 +0100
+++ JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp 2017-06-06 13:23:24.000000000 +0200
@@ -52,7 +52,6 @@
#if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK))
extern "C" {
diff -aur org/webkit/Source/WTF/wtf/StackTrace.cpp webkit/Source/WTF/wtf/StackTrace.cpp
--- org/webkit/Source/WTF/wtf/StackTrace.cpp 2017-06-27 13:38:15.000000000 +0200
+++ webkit/Source/WTF/wtf/StackTrace.cpp 2017-06-27 13:39:41.000000000 +0200
@@ -33,7 +33,6 @@
#if HAVE(BACKTRACE_SYMBOLS) || HAVE(DLADDR)
#include <cxxabi.h>
#include <dlfcn.h>
-#include <execinfo.h>
#endif

#if ENABLE(REMOTE_INSPECTOR)
namespace WTF {
diff -aur org/webkit/Source/cmake/FindICU.cmake webkit/Source/cmake/FindICU.cmake
--- org/webkit/Source/cmake/FindICU.cmake 2017-06-27 13:37:41.000000000 +0200
+++ webkit/Source/cmake/FindICU.cmake 2017-06-27 13:39:41.000000000 +0200
@@ -25,7 +25,7 @@
# Look for the library.
find_library(
ICU_LIBRARY
- NAMES libicuuc cygicuuc cygicuuc32 icuuc
+ NAMES libicuuc cygicuuc cygicuuc32 icuuc icuuc_jsc
HINTS ${PC_ICU_LIBRARY_DIRS}
${PC_ICU_LIBDIR}
${WEBKIT_LIBRARIES_LINK_DIR}
@@ -51,7 +51,7 @@
pkg_check_modules(PC_ICU_I18N icu-i18n)
find_library(
ICU_I18N_LIBRARY
- NAMES icui18n libicui18n libicuin cygicuin cygicuin32 icuin
+ NAMES icui18n libicui18n libicuin cygicuin cygicuin32 icuin icui18n_jsc
HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
${PC_ICU_I18N_LIBDIR}
${WEBKIT_LIBRARIES_LINK_DIR}
@@ -68,7 +68,7 @@
# Look for the ICU data libraries
find_library(
ICU_DATA_LIBRARY
- NAMES icudata libicudata cygicudata cygicudata32
+ NAMES icudata libicudata cygicudata cygicudata32 icudata_jsc
HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
${PC_ICU_I18N_LIBDIR}
${WEBKIT_LIBRARIES_LINK_DIR}
diff -aur org/webkit/Source/cmake/OptionsJSCOnly.cmake webkit/Source/cmake/OptionsJSCOnly.cmake
--- org/webkit/Source/cmake/OptionsJSCOnly.cmake 2017-06-27 13:37:41.000000000 +0200
+++ webkit/Source/cmake/OptionsJSCOnly.cmake 2017-06-27 13:49:04.000000000 +0200
@@ -23,7 +23,11 @@
set(ENABLE_WEBCORE OFF)
set(ENABLE_WEBKIT OFF)
set(ENABLE_WEBKIT2 OFF)
-set(ENABLE_API_TESTS ON)
+set(ENABLE_API_TESTS OFF)
+set(ENABLE_SAMPLING_PROFILER OFF)
+set(ENABLE_DFG_JIT OFF)
+set(ENABLE_FTL_JIT OFF)
+set(ENABLE_JIT ON)

if (WTF_CPU_X86 OR WTF_CPU_X86_64)
SET_AND_EXPOSE_TO_BUILD(USE_UDIS86 1)
43 changes: 0 additions & 43 deletions patches/jsc_cmake.patch

This file was deleted.

15 changes: 0 additions & 15 deletions patches/wtf.patch

This file was deleted.

0 comments on commit 86b24e6

Please sign in to comment.