Diff
Modified: branches/dfgFourthTier/Source/_javascript_Core/ChangeLog (148849 => 148850)
--- branches/dfgFourthTier/Source/_javascript_Core/ChangeLog 2013-04-21 23:26:56 UTC (rev 148849)
+++ branches/dfgFourthTier/Source/_javascript_Core/ChangeLog 2013-04-21 23:59:43 UTC (rev 148850)
@@ -1,5 +1,19 @@
2013-04-21 Filip Pizlo <[email protected]>
+ fourthTier: WebKit's build system should relink _javascript_Core if LLVM's libraries changed but its headers didn't
+ https://bugs.webkit.org/show_bug.cgi?id=114926
+
+ Reviewed by Geoffrey Garen.
+
+ Use a phony file that includes a phony header to force _javascript_Core to be relinked
+ if necessary. The external LLVM-importing scripts will touch the header if the libraries
+ are known to have changed.
+
+ * _javascript_Core.xcodeproj/project.pbxproj:
+ * ftl/WebKitLLVMLibraryAnchor.cpp: Added.
+
+2013-04-21 Filip Pizlo <[email protected]>
+
fourthTier: It should be possible to query WatchpointSets, and add Watchpoints, even if the compiler is running in another thread
https://bugs.webkit.org/show_bug.cgi?id=114909
Modified: branches/dfgFourthTier/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (148849 => 148850)
--- branches/dfgFourthTier/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-04-21 23:26:56 UTC (rev 148849)
+++ branches/dfgFourthTier/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-04-21 23:59:43 UTC (rev 148850)
@@ -190,6 +190,7 @@
0F63948515E4811B006A597C /* DFGArrayMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F63948215E48114006A597C /* DFGArrayMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F66E16B14DF3F1600B7B2E4 /* DFGAdjacencyList.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F66E16814DF3F1300B7B2E4 /* DFGAdjacencyList.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F66E16C14DF3F1600B7B2E4 /* DFGEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F66E16914DF3F1300B7B2E4 /* DFGEdge.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 0F6E5C191724AF3D005C574F /* WebKitLLVMLibraryAnchor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F6E5C181724AF3D005C574F /* WebKitLLVMLibraryAnchor.cpp */; };
0F7025A91714B0FA00382C0E /* DFGOSRExitCompilerCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F7025A71714B0F800382C0E /* DFGOSRExitCompilerCommon.cpp */; };
0F7025AA1714B0FC00382C0E /* DFGOSRExitCompilerCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F7025A81714B0F800382C0E /* DFGOSRExitCompilerCommon.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F714CA416EA92F000F3EBEB /* DFGBackwardsPropagationPhase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F714CA116EA92ED00F3EBEB /* DFGBackwardsPropagationPhase.cpp */; };
@@ -1151,6 +1152,7 @@
0F63948215E48114006A597C /* DFGArrayMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGArrayMode.h; path = dfg/DFGArrayMode.h; sourceTree = "<group>"; };
0F66E16814DF3F1300B7B2E4 /* DFGAdjacencyList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGAdjacencyList.h; path = dfg/DFGAdjacencyList.h; sourceTree = "<group>"; };
0F66E16914DF3F1300B7B2E4 /* DFGEdge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGEdge.h; path = dfg/DFGEdge.h; sourceTree = "<group>"; };
+ 0F6E5C181724AF3D005C574F /* WebKitLLVMLibraryAnchor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebKitLLVMLibraryAnchor.cpp; path = ftl/WebKitLLVMLibraryAnchor.cpp; sourceTree = "<group>"; };
0F7025A71714B0F800382C0E /* DFGOSRExitCompilerCommon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGOSRExitCompilerCommon.cpp; path = dfg/DFGOSRExitCompilerCommon.cpp; sourceTree = "<group>"; };
0F7025A81714B0F800382C0E /* DFGOSRExitCompilerCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGOSRExitCompilerCommon.h; path = dfg/DFGOSRExitCompilerCommon.h; sourceTree = "<group>"; };
0F714CA116EA92ED00F3EBEB /* DFGBackwardsPropagationPhase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGBackwardsPropagationPhase.cpp; path = dfg/DFGBackwardsPropagationPhase.cpp; sourceTree = "<group>"; };
@@ -2129,6 +2131,7 @@
0F235BCE17178E1C00690C7F /* FTLValueFormat.h */,
0F235BCF17178E1C00690C7F /* FTLValueSource.cpp */,
0F235BD017178E1C00690C7F /* FTLValueSource.h */,
+ 0F6E5C181724AF3D005C574F /* WebKitLLVMLibraryAnchor.cpp */,
);
name = ftl;
sourceTree = "<group>";
@@ -3977,6 +3980,7 @@
147F39BE107EC37600427A48 /* Arguments.cpp in Sources */,
86D3B2C310156BDE002865E7 /* ARMAssembler.cpp in Sources */,
0F7025A91714B0FA00382C0E /* DFGOSRExitCompilerCommon.cpp in Sources */,
+ 0F6E5C191724AF3D005C574F /* WebKitLLVMLibraryAnchor.cpp in Sources */,
A74DE1D0120B875600D40D5B /* ARMv7Assembler.cpp in Sources */,
0F8335B71639C1E6001443B5 /* ArrayAllocationProfile.cpp in Sources */,
147F39BF107EC37600427A48 /* ArrayConstructor.cpp in Sources */,
Added: branches/dfgFourthTier/Source/_javascript_Core/ftl/WebKitLLVMLibraryAnchor.cpp (0 => 148850)
--- branches/dfgFourthTier/Source/_javascript_Core/ftl/WebKitLLVMLibraryAnchor.cpp (rev 0)
+++ branches/dfgFourthTier/Source/_javascript_Core/ftl/WebKitLLVMLibraryAnchor.cpp 2013-04-21 23:59:43 UTC (rev 148850)
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+// This is a hack for ensuring that the build system relinks _javascript_Core if any
+// of the LLVM libraries are known to have changed.
+#include "WebKitLLVMLibraryToken.h"
Modified: branches/dfgFourthTier/Tools/ChangeLog (148849 => 148850)
--- branches/dfgFourthTier/Tools/ChangeLog 2013-04-21 23:26:56 UTC (rev 148849)
+++ branches/dfgFourthTier/Tools/ChangeLog 2013-04-21 23:59:43 UTC (rev 148850)
@@ -1,5 +1,18 @@
2013-04-21 Filip Pizlo <[email protected]>
+ fourthTier: WebKit's build system should relink _javascript_Core if LLVM's libraries changed but its headers didn't
+ https://bugs.webkit.org/show_bug.cgi?id=114926
+
+ Reviewed by Geoffrey Garen.
+
+ If the LLVM libraries change, then touch a phony header, which will force relink
+ of _javascript_Core.
+
+ * Scripts/copy-webkitlibraries-to-product-directory:
+ (unpackIfNecessary):
+
+2013-04-21 Filip Pizlo <[email protected]>
+
fourthTier: developing LLVM in tandem with WebKit should be fun and easy
https://bugs.webkit.org/show_bug.cgi?id=114925
Modified: branches/dfgFourthTier/Tools/Scripts/copy-webkitlibraries-to-product-directory (148849 => 148850)
--- branches/dfgFourthTier/Tools/Scripts/copy-webkitlibraries-to-product-directory 2013-04-21 23:26:56 UTC (rev 148849)
+++ branches/dfgFourthTier/Tools/Scripts/copy-webkitlibraries-to-product-directory 2013-04-21 23:59:43 UTC (rev 148850)
@@ -93,7 +93,9 @@
(system($ranlib, $targetDir . "/" . $library) == 0) or die;
}
}
+ return 1;
}
+ return 0;
}
sub fileContains
@@ -115,6 +117,8 @@
return $contents eq $string;
}
+my $shouldUpdateLLVMLibraryToken;
+
if ($useOwnLLVM) {
print("Building LLVM.\n");
chdir $ownLLVMDirectory;
@@ -136,6 +140,7 @@
my $librarySourceDirectory = "$ownLLVMDirectory/$ownLLVMBuildMode/lib";
my $libraryTargetDirectory = $productDir;
+ $shouldUpdateLLVMLibraryToken = 0;
print("Symlinking libraries from $librarySourceDirectory to $libraryTargetDirectory\n");
opendir (my $dirHandle, $librarySourceDirectory);
while (my $filename = readdir($dirHandle)) {
@@ -154,11 +159,13 @@
(open my $fileHandle, ">", $ranlibToken) or die;
print {$fileHandle} "$sourceLibrary";
close $fileHandle;
+ $shouldUpdateLLVMLibraryToken = 1;
}
}
closedir $dirHandle;
} else {
- unpackIfNecessary($productDir, "$productDir/libLLVMCore.a", $llvmLibraryPackage, 1);
+ $shouldUpdateLLVMLibraryToken =
+ unpackIfNecessary($productDir, "$productDir/libLLVMCore.a", $llvmLibraryPackage, 1);
}
sub dittoHeaders
@@ -182,3 +189,10 @@
unpackIfNecessary("$productDir/usr/local/include", "$productDir/usr/local/include/llvm-c/Core.h", $llvmIncludePackage, 0);
}
+my $llvmLibraryToken = "$productDir/usr/local/include/WebKitLLVMLibraryToken.h";
+if ($shouldUpdateLLVMLibraryToken || !-e $llvmLibraryToken) {
+ (open my $fileHandle, ">", $llvmLibraryToken) or die;
+ print {$fileHandle} "/* This file fools WebKit's build system into relinking _javascript_Core if the LLVM libraries changed. */\n";
+ close $fileHandle;
+}
+