Changeset 192469 in webkit
- Timestamp:
- Nov 16, 2015 5:02:00 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 4 deleted
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r192376 r192469 1 2015-11-16 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Use FTL by default when LLVM 3.7 is available 4 https://bugs.webkit.org/show_bug.cgi?id=142128 5 6 Reviewed by Csaba Osztrogonác. 7 8 Enable FTL by default when architecture is X86_64. It requires 9 LLVM 3.7, but can be disabled manually as a cmake configure 10 argument. 11 12 * Source/cmake/FindLLVM.cmake: In debian llvm-config is only 13 available if the metapackage is installed and it points to 14 llvm-config-3.5. So, here we check first if the llvm-config is 15 from a recent enough version, and if not we check several 16 llvm-config-<version> programs, so this should work on any distro. 17 * Source/cmake/OptionsGTK.cmake: Enable FTL by default when 18 target architecture is X86_64, and check the LLVM is at least 19 3.7. The option is now public, since we want people to be able to 20 disable it manually. 21 1 22 2015-11-11 Anders Carlsson <andersca@apple.com> 2 23 -
trunk/Source/JavaScriptCore/ChangeLog
r192465 r192469 1 2015-11-16 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Use FTL by default when LLVM 3.7 is available 4 https://bugs.webkit.org/show_bug.cgi?id=142128 5 6 Reviewed by Csaba Osztrogonác. 7 8 * PlatformGTK.cmake: Install libllvmForJSC.so. 9 * llvm/InitializeLLVMLinux.cpp: 10 (JSC::getLLVMInitializerFunction): For developer build try to load first 11 libllvmForJSC.so from standard paths since not installed binaries 12 have the RPATH set. If it fails try the installed one. For 13 production buils load always the installed one. 14 1 15 2015-11-15 Saam barati <sbarati@apple.com> 2 16 -
trunk/Source/JavaScriptCore/PlatformGTK.cmake
r188673 r192469 39 39 endif () 40 40 41 if (ENABLE_FTL_JIT) 42 install(TARGETS llvmForJSC 43 DESTINATION "${LIB_INSTALL_DIR}/javascriptcoregtk-${WEBKITGTK_API_VERSION}" 44 ) 45 endif () 46 41 47 add_definitions(-DSTATICALLY_LINKED_WITH_WTF) 48 add_definitions(-DLIBDIR="${LIB_INSTALL_DIR}") 42 49 43 50 list(APPEND JavaScriptCore_LIBRARIES -
trunk/Source/JavaScriptCore/llvm/InitializeLLVMLinux.cpp
r182483 r192469 33 33 #include "InitializeLLVMPOSIX.h" 34 34 35 #if PLATFORM(GTK) 36 #include <wtf/glib/GUniquePtr.h> 37 #endif 38 35 39 namespace JSC { 36 40 37 41 LLVMInitializerFunction getLLVMInitializerFunction(bool verbose) 38 42 { 43 #if PLATFORM(GTK) 44 #if ENABLE(DEVELOPER_MODE) 45 LLVMInitializerFunction function = getLLVMInitializerFunctionPOSIX("libllvmForJSC.so", verbose); 46 if (function) 47 return function; 48 #endif 49 static const char* libllvmForJSCInstalledPath = LIBDIR G_DIR_SEPARATOR_S "javascriptcoregtk-" WEBKITGTK_API_VERSION_STRING G_DIR_SEPARATOR_S; 50 GUniquePtr<char> libllvmForJSCFilename(g_build_filename(libllvmForJSCInstalledPath, "libllvmForJSC.so", nullptr)); 51 return getLLVMInitializerFunctionPOSIX(libllvmForJSCFilename.get(), verbose); 52 #else 39 53 return getLLVMInitializerFunctionPOSIX("libllvmForJSC.so", verbose); 54 #endif 40 55 } 41 56 -
trunk/Source/cmake/FindLLVM.cmake
r191889 r192469 8 8 # LLVM_STATIC_LIBRARIES - list of paths for the static llvm libraries. 9 9 10 find_program(LLVM_CONFIG_EXE NAMES "llvm-config")11 10 12 execute_process(COMMAND ${LLVM_CONFIG_EXE} --version OUTPUT_VARIABLE LLVM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) 11 foreach (_program_name llvm-config llvm-config-3.7 llvm-config-3.6 llvm-config-3.5) 12 find_program(LLVM_CONFIG_EXE NAMES ${_program_name}) 13 if (LLVM_CONFIG_EXE) 14 execute_process(COMMAND ${LLVM_CONFIG_EXE} --version OUTPUT_VARIABLE LLVM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) 15 if ("${LLVM_VERSION}" VERSION_LESS "${LLVM_FIND_VERSION}") 16 unset(LLVM_CONFIG_EXE CACHE) 17 else () 18 break () 19 endif () 20 endif () 21 endforeach () 22 13 23 execute_process(COMMAND ${LLVM_CONFIG_EXE} --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE) 14 24 execute_process(COMMAND ${LLVM_CONFIG_EXE} --libfiles OUTPUT_VARIABLE LLVM_STATIC_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE) -
trunk/Source/cmake/OptionsGTK.cmake
r192095 r192469 67 67 endif () 68 68 69 if (WTF_CPU_X86_64) 70 set(ENABLE_FTL_DEFAULT ON) 71 else () 72 set(ENABLE_FTL_DEFAULT OFF) 73 endif () 74 69 75 WEBKIT_OPTION_DEFINE(ENABLE_GLES2 "Whether to enable OpenGL ES 2.0." PUBLIC ${ENABLE_GLES2_DEFAULT}) 70 76 WEBKIT_OPTION_DEFINE(ENABLE_GTKDOC "Whether or not to use generate gtkdoc." PUBLIC OFF) … … 120 126 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CREDENTIAL_STORAGE PUBLIC ON) 121 127 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON) 128 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC ${ENABLE_FTL_DEFAULT}) 122 129 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON) 123 130 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ICONDATABASE PUBLIC ON) … … 249 256 250 257 if (ENABLE_FTL_JIT) 251 find_package(LLVM) 252 if (NOT LLVM_FOUND) 253 message(FATAL_ERROR "LLVM is needed for ENABLE_FTL_JIT") 254 endif () 255 SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE) 258 if (WTF_CPU_X86_64) 259 find_package(LLVM 3.7) 260 if (NOT LLVM_FOUND) 261 message(FATAL_ERROR "LLVM 3.7 is required for ENABLE_FTL_JIT") 262 endif () 263 SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE) 264 else () 265 message(FATAL_ERROR "FTL is only supported for X86_64") 266 endif () 256 267 endif () 257 268 -
trunk/Tools/ChangeLog
r192463 r192469 1 2015-11-16 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Use FTL by default when LLVM 3.7 is available 4 https://bugs.webkit.org/show_bug.cgi?id=142128 5 6 Reviewed by Csaba Osztrogonác. 7 8 * Scripts/run-javascriptcore-tests: Enable FTL for GTK+ port when 9 architecture is x86_64. 10 * Scripts/update-webkit-libs-jhbuild: 11 (cleanJhbuild): Remove also the separate Build directory used by 12 GTK+ port now. 13 * Scripts/webkitdirs.pm: 14 (isX86_64): 15 * Scripts/webkitperl/FeatureList.pm: Enable FTL by default for 16 GTK+ port when architecture is x86_64. 17 * gtk/jhbuild-optional.modules: Remove llvm. 18 * gtk/jhbuild.modules: Add llvm 3.7 and include it as dependecy 19 only when architecture is x86_64. 20 * gtk/jhbuildrc: Set a buildroot to use a separate build 21 directory. LLVM 3.7 fails to build if configure script is run from 22 source dir. Since it's not possible to use a separate build dir 23 only for llvm, we do it now globally. Modules not supporting non 24 source build dirs are marked in the moduleset. Also set x86_64 25 condition when the architecture is x86_64. 26 * gtk/patches/llvm-elf-add-stackmaps-arm64.patch: Removed. 27 * gtk/patches/llvm-elf-add-stackmaps.patch: Removed. 28 * gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch: Removed. 29 * gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range.patch: Removed. 30 * jhbuild/jhbuild-wrapper: Use a newer jhbuild version to be able 31 to use conditions. 32 1 33 2015-11-15 Commit Queue <commit-queue@webkit.org> 2 34 -
trunk/Tools/Scripts/run-javascriptcore-tests
r192371 r192469 63 63 my $gmallocDefaultPath = "/usr/lib/libgmalloc.dylib"; 64 64 65 my $enableFTL = isAppleMacWebKit() ;65 my $enableFTL = isAppleMacWebKit() || (isGtk() && isX86_64()); 66 66 my $createTarball = 0; 67 67 my $remoteHost = 0; -
trunk/Tools/Scripts/update-webkit-libs-jhbuild
r191784 r192469 123 123 die "Cleaning jhbuild sources failed!"; 124 124 } 125 126 if (isGtk()) { 127 # GTK+ uses a separate build directory. 128 system("rm -rf $jhbuildPath/Build"); 129 } 125 130 } 126 131 -
trunk/Tools/Scripts/webkitdirs.pm
r192371 r192469 1158 1158 } 1159 1159 1160 sub isX86_64() 1161 { 1162 return (architecture() eq "x86_64") || 0; 1163 } 1164 1160 1165 sub isCrossCompilation() 1161 1166 { -
trunk/Tools/Scripts/webkitperl/FeatureList.pm
r192093 r192469 459 459 460 460 { option => "ftl-jit", desc => "Toggle FTLJIT support", 461 define => "ENABLE_FTL_JIT", default => 0, value => \$ftlJITSupport },461 define => "ENABLE_FTL_JIT", default => (isGtk() && isX86_64()), value => \$ftlJITSupport }, 462 462 ); 463 463 -
trunk/Tools/gtk/jhbuild-optional.modules
r186655 r192469 10 10 <repository type="tarball" name="ftp.gnome.org" 11 11 href="http://ftp.gnome.org"/> 12 <repository type="tarball" name="llvm.org"13 href="http://llvm.org"/>14 12 15 13 <autotools id="libsecret" autogen-sh="configure"> … … 45 43 </autotools> 46 44 47 <autotools id="llvm"48 autogenargs="--enable-optimized --disable-terminfo --disable-zlib --enable-targets=host --disable-backtraces --disable-crash-overrides --disable-expensive-checks --disable-debug-runtime --disable-assertions --enable-shared">49 <branch repo="llvm.org"50 module="/releases/3.5.0/llvm-3.5.0.src.tar.xz" version="3.5.0" checkoutdir="llvm-3.5.0"51 hash="sha256:28e199f368ef0a4666708f31c7991ad3bcc3a578342b0306526dd35f07595c03">52 <patch file="llvm-elf-allow-fde-references-outside-the-2gb-range.patch" strip="1"/>53 <patch file="llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch" strip="1"/>54 <patch file="llvm-elf-add-stackmaps.patch" strip="1"/>55 <patch file="llvm-elf-add-stackmaps-arm64.patch" strip="1"/>56 </branch>57 </autotools>58 59 45 </moduleset> -
trunk/Tools/gtk/jhbuild.modules
r191583 r192469 34 34 <dep package="openwebrtc"/> 35 35 <dep package="libseccomp"/> 36 <if condition-set="x86_64"> 37 <dep package="llvm"/> 38 </if> 36 39 </dependencies> 37 40 </metamodule> … … 64 67 <repository type="tarball" name="people.freedesktop.org" 65 68 href="http://people.freedesktop.org"/> 69 <repository type="tarball" name="llvm.org" 70 href="http://llvm.org"/> 66 71 67 72 <autotools id="cairo" … … 87 92 </autotools> 88 93 89 <autotools id="fonts" 94 <autotools id="fonts" supports-non-srcdir-builds="no" 90 95 skip-autogen="true"> 91 96 <branch repo="github.com" module="mrobinson/webkitgtk-test-fonts.git" checkoutdir="webkitgtk-test-fonts" tag="0.0.5"/> 92 97 </autotools> 93 98 94 <autotools id="dicts" 99 <autotools id="dicts" supports-non-srcdir-builds="no" 95 100 skip-autogen="true"> 96 101 <branch repo="github.com" module="mrobinson/webkitgtk-test-dicts.git" checkoutdir="webkitgtk-test-dicts" tag="0.0.1"/> … … 123 128 </autotools> 124 129 125 <autotools id="libseccomp" autogen-sh="./autogen.sh; ./configure">130 <autotools id="libseccomp" supports-non-srcdir-builds="no" autogen-sh="./autogen.sh; ./configure"> 126 131 <branch repo="github.com" module="seccomp/libseccomp.git" tag="v2.2.3"/> 127 132 </autotools> … … 223 228 </autotools> 224 229 225 <autotools id="gnome-icon-theme-symbolic" autogen-sh="configure">230 <autotools id="gnome-icon-theme-symbolic" supports-non-srcdir-builds="no" autogen-sh="configure"> 226 231 <dependencies> 227 232 <dep package="gtk+"/> … … 276 281 </autotools> 277 282 278 <autotools id="libxml2" 283 <autotools id="libxml2" supports-non-srcdir-builds="no" 279 284 autogen-sh="./autogen.sh; ./configure --with-python=no"> 280 285 <branch module="/sources/libxml2-2.9.1.tar.gz" version="2.9.1" … … 372 377 </autotools> 373 378 374 <autotools id="libusrsctp" autogen-sh="./bootstrap; ./configure --disable-warnings-as-errors">379 <autotools id="libusrsctp" supports-non-srcdir-builds="no" autogen-sh="./bootstrap; ./configure --disable-warnings-as-errors"> 375 380 <branch repo="github.com" module="sctplab/usrsctp.git" checkoutdir="usrsctp" tag="078ff3252f73327e0ac11d6fd5eff62011f6646e"/> 376 381 </autotools> 377 382 378 <autotools id="gst-plugins-openwebrtc" supports-parallel-builds="no" autogen-sh="./autogen.sh; ./configure">383 <autotools id="gst-plugins-openwebrtc" supports-parallel-builds="no" supports-non-srcdir-builds="no" autogen-sh="./autogen.sh; ./configure"> 379 384 <dependencies> 380 385 <dep package="gst-plugins-base"/> … … 384 389 </autotools> 385 390 386 <autotools id="libnice" >391 <autotools id="libnice" supports-non-srcdir-builds="no"> 387 392 <dependencies> 388 393 <dep package="gstreamer"/> … … 399 404 </autotools> 400 405 406 <autotools id="llvm" 407 autogenargs="--enable-optimized --disable-terminfo --disable-zlib --enable-targets=host --disable-backtraces --disable-crash-overrides --disable-expensive-checks --disable-debug-runtime --disable-assertions --enable-shared"> 408 <branch repo="llvm.org" 409 module="/releases/3.7.0/llvm-3.7.0.src.tar.xz" version="3.7.0" checkoutdir="llvm-3.7.0" 410 hash="sha256:ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153"/> 411 </autotools> 412 401 413 <!-- Dependencies listed below this point are not thought to affect test results, and are only 402 414 included because they themselves depend on other dependencies built by jhbuild. --> -
trunk/Tools/gtk/jhbuildrc
r172830 r192469 18 18 import sys 19 19 import os 20 import platform 20 21 21 22 sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../jhbuild") ) … … 34 35 autogenargs='--enable-introspection' 35 36 37 # LLVM requires that builddir != srcdir, and it's not possible to do that in jhbuild only 38 # for a module, so we do it here globally since it's a good idea for all other modules as well. 39 buildroot = os.path.join(os.path.dirname(checkoutroot), "Build") 40 36 41 if use_lib64: 37 42 os.environ['LLVMPIPE_LIBGL_PATH'] = os.path.abspath(os.path.join(checkoutroot, 'Mesa', 'lib64', 'gallium')) 38 43 else: 39 44 os.environ['LLVMPIPE_LIBGL_PATH'] = os.path.abspath(os.path.join(checkoutroot, 'Mesa', 'lib', 'gallium')) 45 46 if 'x86_64' in platform.machine(): 47 conditions.add('x86_64') -
trunk/Tools/jhbuild/jhbuild-wrapper
r190622 r192469 25 25 import sys 26 26 27 jhbuild_revision = ' c0cb46177d79189ffe0f760703c732f1c7ea8b29'27 jhbuild_revision = '3.12.0' 28 28 29 29 def determine_platform():
Note: See TracChangeset
for help on using the changeset viewer.