Diff
Modified: trunk/ChangeLog (192468 => 192469)
--- trunk/ChangeLog 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/ChangeLog 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1,3 +1,24 @@
+2015-11-16 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [GTK] Use FTL by default when LLVM 3.7 is available
+ https://bugs.webkit.org/show_bug.cgi?id=142128
+
+ Reviewed by Csaba Osztrogonác.
+
+ Enable FTL by default when architecture is X86_64. It requires
+ LLVM 3.7, but can be disabled manually as a cmake configure
+ argument.
+
+ * Source/cmake/FindLLVM.cmake: In debian llvm-config is only
+ available if the metapackage is installed and it points to
+ llvm-config-3.5. So, here we check first if the llvm-config is
+ from a recent enough version, and if not we check several
+ llvm-config-<version> programs, so this should work on any distro.
+ * Source/cmake/OptionsGTK.cmake: Enable FTL by default when
+ target architecture is X86_64, and check the LLVM is at least
+ 3.7. The option is now public, since we want people to be able to
+ disable it manually.
+
2015-11-11 Anders Carlsson <ander...@apple.com>
Enable cross-platform context menus by default
Modified: trunk/Source/_javascript_Core/ChangeLog (192468 => 192469)
--- trunk/Source/_javascript_Core/ChangeLog 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1,3 +1,17 @@
+2015-11-16 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [GTK] Use FTL by default when LLVM 3.7 is available
+ https://bugs.webkit.org/show_bug.cgi?id=142128
+
+ Reviewed by Csaba Osztrogonác.
+
+ * PlatformGTK.cmake: Install libllvmForJSC.so.
+ * llvm/InitializeLLVMLinux.cpp:
+ (JSC::getLLVMInitializerFunction): For developer build try to load first
+ libllvmForJSC.so from standard paths since not installed binaries
+ have the RPATH set. If it fails try the installed one. For
+ production buils load always the installed one.
+
2015-11-15 Saam barati <sbar...@apple.com>
64-bit in the DFG: non tail Calls unnecessarily store the argument count twice on the callee frame and tails calls unnecessarily store it once
Modified: trunk/Source/_javascript_Core/PlatformGTK.cmake (192468 => 192469)
--- trunk/Source/_javascript_Core/PlatformGTK.cmake 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Source/_javascript_Core/PlatformGTK.cmake 2015-11-16 13:02:00 UTC (rev 192469)
@@ -38,7 +38,14 @@
)
endif ()
+if (ENABLE_FTL_JIT)
+ install(TARGETS llvmForJSC
+ DESTINATION "${LIB_INSTALL_DIR}/_javascript_coregtk-${WEBKITGTK_API_VERSION}"
+ )
+endif ()
+
add_definitions(-DSTATICALLY_LINKED_WITH_WTF)
+add_definitions(-DLIBDIR="${LIB_INSTALL_DIR}")
list(APPEND _javascript_Core_LIBRARIES
${GLIB_LIBRARIES}
Modified: trunk/Source/_javascript_Core/llvm/InitializeLLVMLinux.cpp (192468 => 192469)
--- trunk/Source/_javascript_Core/llvm/InitializeLLVMLinux.cpp 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Source/_javascript_Core/llvm/InitializeLLVMLinux.cpp 2015-11-16 13:02:00 UTC (rev 192469)
@@ -32,11 +32,26 @@
#include "InitializeLLVMPOSIX.h"
+#if PLATFORM(GTK)
+#include <wtf/glib/GUniquePtr.h>
+#endif
+
namespace JSC {
LLVMInitializerFunction getLLVMInitializerFunction(bool verbose)
{
+#if PLATFORM(GTK)
+#if ENABLE(DEVELOPER_MODE)
+ LLVMInitializerFunction function = getLLVMInitializerFunctionPOSIX("libllvmForJSC.so", verbose);
+ if (function)
+ return function;
+#endif
+ static const char* libllvmForJSCInstalledPath = LIBDIR G_DIR_SEPARATOR_S "_javascript_coregtk-" WEBKITGTK_API_VERSION_STRING G_DIR_SEPARATOR_S;
+ GUniquePtr<char> libllvmForJSCFilename(g_build_filename(libllvmForJSCInstalledPath, "libllvmForJSC.so", nullptr));
+ return getLLVMInitializerFunctionPOSIX(libllvmForJSCFilename.get(), verbose);
+#else
return getLLVMInitializerFunctionPOSIX("libllvmForJSC.so", verbose);
+#endif
}
} // namespace JSC
Modified: trunk/Source/cmake/FindLLVM.cmake (192468 => 192469)
--- trunk/Source/cmake/FindLLVM.cmake 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Source/cmake/FindLLVM.cmake 2015-11-16 13:02:00 UTC (rev 192469)
@@ -7,9 +7,19 @@
# LLVM_INCLUDE_DIRS - include directories for the llvm headers.
# LLVM_STATIC_LIBRARIES - list of paths for the static llvm libraries.
-find_program(LLVM_CONFIG_EXE NAMES "llvm-config")
-execute_process(COMMAND ${LLVM_CONFIG_EXE} --version OUTPUT_VARIABLE LLVM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+foreach (_program_name llvm-config llvm-config-3.7 llvm-config-3.6 llvm-config-3.5)
+ find_program(LLVM_CONFIG_EXE NAMES ${_program_name})
+ if (LLVM_CONFIG_EXE)
+ execute_process(COMMAND ${LLVM_CONFIG_EXE} --version OUTPUT_VARIABLE LLVM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if ("${LLVM_VERSION}" VERSION_LESS "${LLVM_FIND_VERSION}")
+ unset(LLVM_CONFIG_EXE CACHE)
+ else ()
+ break ()
+ endif ()
+ endif ()
+endforeach ()
+
execute_process(COMMAND ${LLVM_CONFIG_EXE} --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${LLVM_CONFIG_EXE} --libfiles OUTPUT_VARIABLE LLVM_STATIC_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${LLVM_CONFIG_EXE} --system-libs OUTPUT_VARIABLE LLVM_SYSTEM_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE)
Modified: trunk/Source/cmake/OptionsGTK.cmake (192468 => 192469)
--- trunk/Source/cmake/OptionsGTK.cmake 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Source/cmake/OptionsGTK.cmake 2015-11-16 13:02:00 UTC (rev 192469)
@@ -66,6 +66,12 @@
set(ENABLE_GLES2_DEFAULT ON)
endif ()
+if (WTF_CPU_X86_64)
+ set(ENABLE_FTL_DEFAULT ON)
+else ()
+ set(ENABLE_FTL_DEFAULT OFF)
+endif ()
+
WEBKIT_OPTION_DEFINE(ENABLE_GLES2 "Whether to enable OpenGL ES 2.0." PUBLIC ${ENABLE_GLES2_DEFAULT})
WEBKIT_OPTION_DEFINE(ENABLE_GTKDOC "Whether or not to use generate gtkdoc." PUBLIC OFF)
WEBKIT_OPTION_DEFINE(ENABLE_INTROSPECTION "Whether to enable GObject introspection." PUBLIC ON)
@@ -119,6 +125,7 @@
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CREDENTIAL_STORAGE PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC ${ENABLE_FTL_DEFAULT})
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ICONDATABASE PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT PUBLIC ON)
@@ -248,11 +255,15 @@
endif ()
if (ENABLE_FTL_JIT)
- find_package(LLVM)
- if (NOT LLVM_FOUND)
- message(FATAL_ERROR "LLVM is needed for ENABLE_FTL_JIT")
+ if (WTF_CPU_X86_64)
+ find_package(LLVM 3.7)
+ if (NOT LLVM_FOUND)
+ message(FATAL_ERROR "LLVM 3.7 is required for ENABLE_FTL_JIT")
+ endif ()
+ SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE)
+ else ()
+ message(FATAL_ERROR "FTL is only supported for X86_64")
endif ()
- SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE)
endif ()
if (ENABLE_GAMEPAD_DEPRECATED)
Modified: trunk/Tools/ChangeLog (192468 => 192469)
--- trunk/Tools/ChangeLog 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/ChangeLog 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1,3 +1,35 @@
+2015-11-16 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [GTK] Use FTL by default when LLVM 3.7 is available
+ https://bugs.webkit.org/show_bug.cgi?id=142128
+
+ Reviewed by Csaba Osztrogonác.
+
+ * Scripts/run-_javascript_core-tests: Enable FTL for GTK+ port when
+ architecture is x86_64.
+ * Scripts/update-webkit-libs-jhbuild:
+ (cleanJhbuild): Remove also the separate Build directory used by
+ GTK+ port now.
+ * Scripts/webkitdirs.pm:
+ (isX86_64):
+ * Scripts/webkitperl/FeatureList.pm: Enable FTL by default for
+ GTK+ port when architecture is x86_64.
+ * gtk/jhbuild-optional.modules: Remove llvm.
+ * gtk/jhbuild.modules: Add llvm 3.7 and include it as dependecy
+ only when architecture is x86_64.
+ * gtk/jhbuildrc: Set a buildroot to use a separate build
+ directory. LLVM 3.7 fails to build if configure script is run from
+ source dir. Since it's not possible to use a separate build dir
+ only for llvm, we do it now globally. Modules not supporting non
+ source build dirs are marked in the moduleset. Also set x86_64
+ condition when the architecture is x86_64.
+ * gtk/patches/llvm-elf-add-stackmaps-arm64.patch: Removed.
+ * gtk/patches/llvm-elf-add-stackmaps.patch: Removed.
+ * gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch: Removed.
+ * gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range.patch: Removed.
+ * jhbuild/jhbuild-wrapper: Use a newer jhbuild version to be able
+ to use conditions.
+
2015-11-15 Commit Queue <commit-qu...@webkit.org>
Unreviewed, rolling out r192462.
Modified: trunk/Tools/Scripts/run-_javascript_core-tests (192468 => 192469)
--- trunk/Tools/Scripts/run-_javascript_core-tests 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/Scripts/run-_javascript_core-tests 2015-11-16 13:02:00 UTC (rev 192469)
@@ -62,7 +62,7 @@
my $gmallocPath = undef;
my $gmallocDefaultPath = "/usr/lib/libgmalloc.dylib";
-my $enableFTL = isAppleMacWebKit();
+my $enableFTL = isAppleMacWebKit() || (isGtk() && isX86_64());
my $createTarball = 0;
my $remoteHost = 0;
my $remoteConfigFile;
Modified: trunk/Tools/Scripts/update-webkit-libs-jhbuild (192468 => 192469)
--- trunk/Tools/Scripts/update-webkit-libs-jhbuild 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/Scripts/update-webkit-libs-jhbuild 2015-11-16 13:02:00 UTC (rev 192469)
@@ -122,6 +122,11 @@
if (system("rm -rf $jhbuildPath/Source") ne 0) {
die "Cleaning jhbuild sources failed!";
}
+
+ if (isGtk()) {
+ # GTK+ uses a separate build directory.
+ system("rm -rf $jhbuildPath/Build");
+ }
}
delete $ENV{AR_FLAGS} if exists $ENV{AR_FLAGS};
Modified: trunk/Tools/Scripts/webkitdirs.pm (192468 => 192469)
--- trunk/Tools/Scripts/webkitdirs.pm 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/Scripts/webkitdirs.pm 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1157,6 +1157,11 @@
return ($Config{archname} =~ /^arm[v\-]/) || ($Config{archname} =~ /^aarch64[v\-]/);
}
+sub isX86_64()
+{
+ return (architecture() eq "x86_64") || 0;
+}
+
sub isCrossCompilation()
{
my $compiler = "";
Modified: trunk/Tools/Scripts/webkitperl/FeatureList.pm (192468 => 192469)
--- trunk/Tools/Scripts/webkitperl/FeatureList.pm 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/Scripts/webkitperl/FeatureList.pm 2015-11-16 13:02:00 UTC (rev 192469)
@@ -458,7 +458,7 @@
define => "ENABLE_XSLT", default => 1, value => \$xsltSupport },
{ option => "ftl-jit", desc => "Toggle FTLJIT support",
- define => "ENABLE_FTL_JIT", default => 0, value => \$ftlJITSupport },
+ define => "ENABLE_FTL_JIT", default => (isGtk() && isX86_64()), value => \$ftlJITSupport },
);
sub getFeatureOptionList()
Modified: trunk/Tools/gtk/jhbuild-optional.modules (192468 => 192469)
--- trunk/Tools/gtk/jhbuild-optional.modules 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/gtk/jhbuild-optional.modules 2015-11-16 13:02:00 UTC (rev 192469)
@@ -9,8 +9,6 @@
<repository type="tarball" name="ftp.gnome.org"
href=""
- <repository type="tarball" name="llvm.org"
- href=""
<autotools id="libsecret" autogen-sh="configure">
<branch repo="ftp.gnome.org"
@@ -44,16 +42,4 @@
</dependencies>
</autotools>
- <autotools id="llvm"
- 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">
- <branch repo="llvm.org"
- module="/releases/3.5.0/llvm-3.5.0.src.tar.xz" version="3.5.0" checkoutdir="llvm-3.5.0"
- hash="sha256:28e199f368ef0a4666708f31c7991ad3bcc3a578342b0306526dd35f07595c03">
- <patch file="llvm-elf-allow-fde-references-outside-the-2gb-range.patch" strip="1"/>
- <patch file="llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch" strip="1"/>
- <patch file="llvm-elf-add-stackmaps.patch" strip="1"/>
- <patch file="llvm-elf-add-stackmaps-arm64.patch" strip="1"/>
- </branch>
- </autotools>
-
</moduleset>
Modified: trunk/Tools/gtk/jhbuild.modules (192468 => 192469)
--- trunk/Tools/gtk/jhbuild.modules 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/gtk/jhbuild.modules 2015-11-16 13:02:00 UTC (rev 192469)
@@ -33,6 +33,9 @@
<dep package="mesa"/>
<dep package="openwebrtc"/>
<dep package="libseccomp"/>
+ <if condition-set="x86_64">
+ <dep package="llvm"/>
+ </if>
</dependencies>
</metamodule>
@@ -63,6 +66,8 @@
href=""
<repository type="tarball" name="people.freedesktop.org"
href=""
+ <repository type="tarball" name="llvm.org"
+ href=""
<autotools id="cairo"
autogenargs="--enable-gl=yes --enable-egl=yes --enable-glx=yes ac_cv_func_rsvg_pixbuf_from_file=no"
@@ -86,12 +91,12 @@
</branch>
</autotools>
- <autotools id="fonts"
+ <autotools id="fonts" supports-non-srcdir-builds="no"
skip-autogen="true">
<branch repo="github.com" module="mrobinson/webkitgtk-test-fonts.git" checkoutdir="webkitgtk-test-fonts" tag="0.0.5"/>
</autotools>
- <autotools id="dicts"
+ <autotools id="dicts" supports-non-srcdir-builds="no"
skip-autogen="true">
<branch repo="github.com" module="mrobinson/webkitgtk-test-dicts.git" checkoutdir="webkitgtk-test-dicts" tag="0.0.1"/>
</autotools>
@@ -122,7 +127,7 @@
md5sum="f5898b29bbfd70502831a212d9249d10"/>
</autotools>
- <autotools id="libseccomp" autogen-sh="./autogen.sh; ./configure">
+ <autotools id="libseccomp" supports-non-srcdir-builds="no" autogen-sh="./autogen.sh; ./configure">
<branch repo="github.com" module="seccomp/libseccomp.git" tag="v2.2.3"/>
</autotools>
@@ -222,7 +227,7 @@
</branch>
</autotools>
- <autotools id="gnome-icon-theme-symbolic" autogen-sh="configure">
+ <autotools id="gnome-icon-theme-symbolic" supports-non-srcdir-builds="no" autogen-sh="configure">
<dependencies>
<dep package="gtk+"/>
</dependencies>
@@ -275,7 +280,7 @@
</dependencies>
</autotools>
- <autotools id="libxml2"
+ <autotools id="libxml2" supports-non-srcdir-builds="no"
autogen-sh="./autogen.sh; ./configure --with-python=no">
<branch module="/sources/libxml2-2.9.1.tar.gz" version="2.9.1"
repo="xmlsoft.org"
@@ -371,11 +376,11 @@
</branch>
</autotools>
- <autotools id="libusrsctp" autogen-sh="./bootstrap; ./configure --disable-warnings-as-errors">
+ <autotools id="libusrsctp" supports-non-srcdir-builds="no" autogen-sh="./bootstrap; ./configure --disable-warnings-as-errors">
<branch repo="github.com" module="sctplab/usrsctp.git" checkoutdir="usrsctp" tag="078ff3252f73327e0ac11d6fd5eff62011f6646e"/>
</autotools>
- <autotools id="gst-plugins-openwebrtc" supports-parallel-builds="no" autogen-sh="./autogen.sh; ./configure">
+ <autotools id="gst-plugins-openwebrtc" supports-parallel-builds="no" supports-non-srcdir-builds="no" autogen-sh="./autogen.sh; ./configure">
<dependencies>
<dep package="gst-plugins-base"/>
<dep package="libusrsctp"/>
@@ -383,7 +388,7 @@
<branch repo="github.com" module="EricssonResearch/openwebrtc-gst-plugins.git" checkoutdir="gst-plugins-openwebrtc" tag="e359b67484af90f416ea35e301205d2b53c77a14"/>
</autotools>
- <autotools id="libnice">
+ <autotools id="libnice" supports-non-srcdir-builds="no">
<dependencies>
<dep package="gstreamer"/>
</dependencies>
@@ -398,6 +403,13 @@
<branch repo="github.com" module="EricssonResearch/openwebrtc.git" checkoutdir="openwebrtc" tag="13516c7f79a0c48bb411464f7613d4b426c70f5b"/>
</autotools>
+ <autotools id="llvm"
+ 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">
+ <branch repo="llvm.org"
+ module="/releases/3.7.0/llvm-3.7.0.src.tar.xz" version="3.7.0" checkoutdir="llvm-3.7.0"
+ hash="sha256:ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153"/>
+ </autotools>
+
<!-- Dependencies listed below this point are not thought to affect test results, and are only
included because they themselves depend on other dependencies built by jhbuild. -->
Modified: trunk/Tools/gtk/jhbuildrc (192468 => 192469)
--- trunk/Tools/gtk/jhbuildrc 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/gtk/jhbuildrc 2015-11-16 13:02:00 UTC (rev 192469)
@@ -17,6 +17,7 @@
import sys
import os
+import platform
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../jhbuild") )
import jhbuildrc_common
@@ -33,7 +34,14 @@
# annotations sooner rather than later.
autogenargs='--enable-introspection'
+# LLVM requires that builddir != srcdir, and it's not possible to do that in jhbuild only
+# for a module, so we do it here globally since it's a good idea for all other modules as well.
+buildroot = os.path.join(os.path.dirname(checkoutroot), "Build")
+
if use_lib64:
os.environ['LLVMPIPE_LIBGL_PATH'] = os.path.abspath(os.path.join(checkoutroot, 'Mesa', 'lib64', 'gallium'))
else:
os.environ['LLVMPIPE_LIBGL_PATH'] = os.path.abspath(os.path.join(checkoutroot, 'Mesa', 'lib', 'gallium'))
+
+if 'x86_64' in platform.machine():
+ conditions.add('x86_64')
Deleted: trunk/Tools/gtk/patches/llvm-elf-add-stackmaps-arm64.patch (192468 => 192469)
--- trunk/Tools/gtk/patches/llvm-elf-add-stackmaps-arm64.patch 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/gtk/patches/llvm-elf-add-stackmaps-arm64.patch 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1,13 +0,0 @@
-diff --git a/lib/Target/AArch64/AArch64AsmPrinter.cpp b/lib/Target/AArch64/AArch64AsmPrinter.cpp
-index 8bee4f5..bfbbaac 100644
---- a/lib/Target/AArch64/AArch64AsmPrinter.cpp
-+++ b/lib/Target/AArch64/AArch64AsmPrinter.cpp
-@@ -154,6 +154,8 @@ void AArch64AsmPrinter::EmitEndOfAsmFile(Module &M) {
- }
- Stubs.clear();
- }
-+
-+ SM.serializeToStackMapSection();
- }
-
- }
Deleted: trunk/Tools/gtk/patches/llvm-elf-add-stackmaps.patch (192468 => 192469)
--- trunk/Tools/gtk/patches/llvm-elf-add-stackmaps.patch 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/gtk/patches/llvm-elf-add-stackmaps.patch 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1,46 +0,0 @@
-commit ec9de4677ac61f2164d7c80cae5da0008189efa3
-Author: Philip Reames <listm...@philipreames.com>
-Date: Fri Aug 1 18:47:09 2014 +0000
-
- Add support for StackMap section for ELF/Linux systems
-
- This patch adds code to emits the StackMap section on ELF systems. This section is required to support llvm.experimental.stackmap and llvm.experimental.patchpoint intrinsics.
-
- Reviewers: ributzka, echristo
-
- Differential Revision: http://reviews.llvm.org/D4574
-
-
-
- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214538 91177308-0d34-0410-b5e6-96231b3b80d8
-
-diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp
-index df5787c..da707d8 100644
---- a/lib/MC/MCObjectFileInfo.cpp
-+++ b/lib/MC/MCObjectFileInfo.cpp
-@@ -583,6 +583,12 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Triple T) {
- DwarfAddrSection =
- Ctx->getELFSection(".debug_addr", ELF::SHT_PROGBITS, 0,
- SectionKind::getMetadata());
-+
-+ StackMapSection =
-+ Ctx->getELFSection(".llvm_stackmaps", ELF::SHT_PROGBITS,
-+ ELF::SHF_ALLOC,
-+ SectionKind::getMetadata());
-+
- }
-
-
-diff --git a/lib/Target/X86/X86AsmPrinter.cpp b/lib/Target/X86/X86AsmPrinter.cpp
-index 3c22e88..fc0d408 100644
---- a/lib/Target/X86/X86AsmPrinter.cpp
-+++ b/lib/Target/X86/X86AsmPrinter.cpp
-@@ -736,6 +736,8 @@ void X86AsmPrinter::EmitEndOfAsmFile(Module &M) {
- }
- Stubs.clear();
- }
-+
-+ SM.serializeToStackMapSection();
- }
- }
-
Deleted: trunk/Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch (192468 => 192469)
--- trunk/Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range-arm64.patch 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1,23 +0,0 @@
-
-diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp
-index 7886ab6..96929e5 100644
---- a/lib/MC/MCObjectFileInfo.cpp
-+++ b/lib/MC/MCObjectFileInfo.cpp
-@@ -284,6 +284,17 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Triple T) {
- ? dwarf::DW_EH_PE_udata4 : dwarf::DW_EH_PE_absptr;
- }
- break;
-+ case Triple::aarch64:
-+ if (RelocM == Reloc::PIC_) {
-+ FDECFIEncoding = dwarf::DW_EH_PE_pcrel |
-+ ((CMModel == CodeModel::Small || CMModel == CodeModel::Medium)
-+ ? dwarf::DW_EH_PE_sdata4 : dwarf::DW_EH_PE_sdata8);
-+ } else {
-+ FDECFIEncoding =
-+ (CMModel == CodeModel::Small || CMModel == CodeModel::Medium)
-+ ? dwarf::DW_EH_PE_udata4 : dwarf::DW_EH_PE_absptr;
-+ }
-+ break;
- default:
- FDECFIEncoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
- break;
Deleted: trunk/Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range.patch (192468 => 192469)
--- trunk/Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range.patch 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/gtk/patches/llvm-elf-allow-fde-references-outside-the-2gb-range.patch 2015-11-16 13:02:00 UTC (rev 192469)
@@ -1,281 +0,0 @@
-commit 21bcdeb1d65b4be0d716693f3dcabd2e8a7c6386
-Author: Joerg Sonnenberger <jo...@bec.de>
-Date: Tue Nov 25 13:37:55 2014 +0000
-
- Reapply 222538 and update tests to explicitly request small code model
- and PIC:
-
- Allow FDE references outside the +/-2GB range supported by PC relative
- offsets for code models other than small/medium. For JIT application,
- memory layout is less controlled and can result in truncations
- otherwise.
-
- Patch from Akos Kiss.
-
- Differential Revision: http://reviews.llvm.org/D6079
-
-
- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222760 91177308-0d34-0410-b5e6-96231b3b80d8
-
-diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp
-index 7886ab6..96929e5 100644
---- a/lib/MC/MCObjectFileInfo.cpp
-+++ b/lib/MC/MCObjectFileInfo.cpp
-@@ -273,6 +273,17 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Triple T) {
- case Triple::mips64el:
- FDECFIEncoding = dwarf::DW_EH_PE_sdata8;
- break;
-+ case Triple::x86_64:
-+ if (RelocM == Reloc::PIC_) {
-+ FDECFIEncoding = dwarf::DW_EH_PE_pcrel |
-+ ((CMModel == CodeModel::Small || CMModel == CodeModel::Medium)
-+ ? dwarf::DW_EH_PE_sdata4 : dwarf::DW_EH_PE_sdata8);
-+ } else {
-+ FDECFIEncoding =
-+ (CMModel == CodeModel::Small || CMModel == CodeModel::Medium)
-+ ? dwarf::DW_EH_PE_udata4 : dwarf::DW_EH_PE_absptr;
-+ }
-+ break;
- default:
- FDECFIEncoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
- break;
-diff --git a/test/MC/ELF/cfi-adjust-cfa-offset.s b/test/MC/ELF/cfi-adjust-cfa-offset.s
-index 9d639f7..f31a6b0 100644
---- a/test/MC/ELF/cfi-adjust-cfa-offset.s
-+++ b/test/MC/ELF/cfi-adjust-cfa-offset.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-advance-loc2.s b/test/MC/ELF/cfi-advance-loc2.s
-index 98caa018..c11ccaf 100644
---- a/test/MC/ELF/cfi-advance-loc2.s
-+++ b/test/MC/ELF/cfi-advance-loc2.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- // test that this produces a correctly encoded cfi_advance_loc2
-
-diff --git a/test/MC/ELF/cfi-def-cfa-offset.s b/test/MC/ELF/cfi-def-cfa-offset.s
-index 59f7400..93158ce 100644
---- a/test/MC/ELF/cfi-def-cfa-offset.s
-+++ b/test/MC/ELF/cfi-def-cfa-offset.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-def-cfa-register.s b/test/MC/ELF/cfi-def-cfa-register.s
-index 178ba32..8c55053 100644
---- a/test/MC/ELF/cfi-def-cfa-register.s
-+++ b/test/MC/ELF/cfi-def-cfa-register.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-def-cfa.s b/test/MC/ELF/cfi-def-cfa.s
-index dfb0d4b..f0b4934 100644
---- a/test/MC/ELF/cfi-def-cfa.s
-+++ b/test/MC/ELF/cfi-def-cfa.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-escape.s b/test/MC/ELF/cfi-escape.s
-index 5394ee4..3b76746 100644
---- a/test/MC/ELF/cfi-escape.s
-+++ b/test/MC/ELF/cfi-escape.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-offset.s b/test/MC/ELF/cfi-offset.s
-index a65b4fc..02f31ba 100644
---- a/test/MC/ELF/cfi-offset.s
-+++ b/test/MC/ELF/cfi-offset.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-register.s b/test/MC/ELF/cfi-register.s
-index 9441770..3433bef 100644
---- a/test/MC/ELF/cfi-register.s
-+++ b/test/MC/ELF/cfi-register.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-rel-offset.s b/test/MC/ELF/cfi-rel-offset.s
-index 0dc69c8..f51b2d3 100644
---- a/test/MC/ELF/cfi-rel-offset.s
-+++ b/test/MC/ELF/cfi-rel-offset.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-rel-offset2.s b/test/MC/ELF/cfi-rel-offset2.s
-index 360e7b0..0ce8d03 100644
---- a/test/MC/ELF/cfi-rel-offset2.s
-+++ b/test/MC/ELF/cfi-rel-offset2.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-remember.s b/test/MC/ELF/cfi-remember.s
-index 3a38948..c98695a 100644
---- a/test/MC/ELF/cfi-remember.s
-+++ b/test/MC/ELF/cfi-remember.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-restore.s b/test/MC/ELF/cfi-restore.s
-index e225797..99a74e7 100644
---- a/test/MC/ELF/cfi-restore.s
-+++ b/test/MC/ELF/cfi-restore.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-same-value.s b/test/MC/ELF/cfi-same-value.s
-index 2d37f4d..b7329d1 100644
---- a/test/MC/ELF/cfi-same-value.s
-+++ b/test/MC/ELF/cfi-same-value.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-signal-frame.s b/test/MC/ELF/cfi-signal-frame.s
-index 98deb0a..9558d7b 100644
---- a/test/MC/ELF/cfi-signal-frame.s
-+++ b/test/MC/ELF/cfi-signal-frame.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-undefined.s b/test/MC/ELF/cfi-undefined.s
-index 568b315..09000c9 100644
---- a/test/MC/ELF/cfi-undefined.s
-+++ b/test/MC/ELF/cfi-undefined.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f:
- .cfi_startproc
-diff --git a/test/MC/ELF/cfi-window-save.s b/test/MC/ELF/cfi-window-save.s
-index b083901..dd20164 100644
---- a/test/MC/ELF/cfi-window-save.s
-+++ b/test/MC/ELF/cfi-window-save.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- # Should use SPARC as the target to test this. However, SPARC does not
- # use MC yet.
-diff --git a/test/MC/ELF/cfi-zero-addr-delta.s b/test/MC/ELF/cfi-zero-addr-delta.s
-index 8662839..61118ec 100644
---- a/test/MC/ELF/cfi-zero-addr-delta.s
-+++ b/test/MC/ELF/cfi-zero-addr-delta.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- // Test that we don't produce a DW_CFA_advance_loc 0
-
-diff --git a/test/MC/ELF/cfi.s b/test/MC/ELF/cfi.s
-index 21be615..42b0189 100644
---- a/test/MC/ELF/cfi.s
-+++ b/test/MC/ELF/cfi.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr -sd | FileCheck %s
-+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -s -sr -sd | FileCheck %s
-
- f1:
- .cfi_startproc
-diff --git a/test/MC/ELF/pr19430.s b/test/MC/ELF/pr19430.s
-index a1e5246..528193d 100644
---- a/test/MC/ELF/pr19430.s
-+++ b/test/MC/ELF/pr19430.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -triple x86_64-pc-linux-gnu %s -filetype=obj -o - | llvm-readobj -r | FileCheck %s
-+// RUN: llvm-mc -triple x86_64-pc-linux-gnu %s -filetype=obj -o - \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-readobj -r | FileCheck %s
-
- // Test that we can use .cfi_startproc without a global symbol.
-
-diff --git a/test/MC/X86/fde-reloc.s b/test/MC/X86/fde-reloc.s
-index 63ac976..9b5de15 100644
---- a/test/MC/X86/fde-reloc.s
-+++ b/test/MC/X86/fde-reloc.s
-@@ -1,4 +1,6 @@
--// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux | llvm-objdump -r - | FileCheck --check-prefix=X86-64 %s
-+// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux \
-+// RUN: -relocation-model=pic -code-model=small \
-+// RUN: | llvm-objdump -r - | FileCheck --check-prefix=X86-64 %s
- // RUN: llvm-mc -filetype=obj %s -o - -triple i686-pc-linux | llvm-objdump -r - | FileCheck --check-prefix=I686 %s
-
- // PR15448
Modified: trunk/Tools/jhbuild/jhbuild-wrapper (192468 => 192469)
--- trunk/Tools/jhbuild/jhbuild-wrapper 2015-11-16 11:00:53 UTC (rev 192468)
+++ trunk/Tools/jhbuild/jhbuild-wrapper 2015-11-16 13:02:00 UTC (rev 192469)
@@ -24,7 +24,7 @@
import subprocess
import sys
-jhbuild_revision = 'c0cb46177d79189ffe0f760703c732f1c7ea8b29'
+jhbuild_revision = '3.12.0'
def determine_platform():
if '--efl' in sys.argv: