<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[243396] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/243396">243396</a></dd>
<dt>Author</dt> <dd>krollin@apple.com</dd>
<dt>Date</dt> <dd>2019-03-22 11:56:41 -0700 (Fri, 22 Mar 2019)</dd>
</dl>

<h3>Log Message</h3>
<pre>Enable ThinLTO support in Production builds
https://bugs.webkit.org/show_bug.cgi?id=190758
<rdar://problem/45413233>

Reviewed by Daniel Bates.

Source/bmalloc:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:

Source/JavaScriptCore:

Tweak JavaScriptCore's Base.xcconfig to be more in-line with other
.xcconfig files with regards to LTO settings. However, don't actually
enable LTO for JavaScriptCore. LTO is not enabled for JavaScriptCore
due to <rdar://problem/24543547>.

* Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:

Source/ThirdParty/libwebrtc:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:

Source/WebCore:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

Removed the conditionals that disabled LTO on 32-bit systems since we
no longer build for those.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

No new tests since there should be no observable behavior difference.

* Configurations/Base.xcconfig:

Source/WebCore/PAL:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

Removed the conditionals that disabled LTO on 32-bit systems since we
no longer build for those.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:

Source/WebInspectorUI:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:

Source/WebKit:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:

Source/WTF:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

- If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
  command line.
- If building with `build-webkit`, specify --lto-mode={none,thin,full}
  on the command line.
- If building with `build-root`, specify --lto={none,thin,full} on the
  command line.
- If building with Xcode, create a LocalOverrides.xcconfig file at the
  top level of your repository directory (if needed) and define
  WK_LTO_MODE to full, thin, or none.

* Configurations/Base.xcconfig:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreConfigurationsBasexcconfig">trunk/Source/JavaScriptCore/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartyANGLEChangeLog">trunk/Source/ThirdParty/ANGLE/ChangeLog</a></li>
<li><a href="#trunkSourceThirdPartyANGLEConfigurationsBasexcconfig">trunk/Source/ThirdParty/ANGLE/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcChangeLog">trunk/Source/ThirdParty/libwebrtc/ChangeLog</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationsBasexcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFConfigurationsBasexcconfig">trunk/Source/WTF/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreConfigurationsBasexcconfig">trunk/Source/WebCore/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceWebCorePALChangeLog">trunk/Source/WebCore/PAL/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorePALConfigurationsBasexcconfig">trunk/Source/WebCore/PAL/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIConfigurationsBasexcconfig">trunk/Source/WebInspectorUI/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitConfigurationsBasexcconfig">trunk/Source/WebKit/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourceWebKitLegacymacChangeLog">trunk/Source/WebKitLegacy/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitLegacymacConfigurationsBasexcconfig">trunk/Source/WebKitLegacy/mac/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkSourcebmallocChangeLog">trunk/Source/bmalloc/ChangeLog</a></li>
<li><a href="#trunkSourcebmallocConfigurationsBasexcconfig">trunk/Source/bmalloc/Configurations/Base.xcconfig</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog    2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/JavaScriptCore/ChangeLog       2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Tweak JavaScriptCore's Base.xcconfig to be more in-line with other
+        .xcconfig files with regards to LTO settings. However, don't actually
+        enable LTO for JavaScriptCore. LTO is not enabled for JavaScriptCore
+        due to <rdar://problem/24543547>.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-22  Mark Lam  <mark.lam@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Placate exception check validation in genericTypedArrayViewProtoFuncLastIndexOf().
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Configurations/Base.xcconfig 2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/JavaScriptCore/Configurations/Base.xcconfig    2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -179,17 +179,24 @@
</span><span class="cx"> WK_COCOA_TOUCH_appletvsimulator = cocoatouch;
</span><span class="cx"> WK_IS_COCOA_TOUCH = $(WK_NOT_$(WK_EMPTY_$(WK_COCOA_TOUCH)));
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+// Disable LTO for JavaScriptCore, due to <rdar://problem/24543547>. Add back the following line when that issue is resolved.
+// LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><del>-WK_USER_LTO_MODE_full = NO; // Disable LTO for JavaScript due to <rdar://problem/24543547>
-WK_USER_LTO_MODE_thin = NO; // Disable LTO for JavaScript due to <rdar://problem/24543547>
</del><ins>+WK_USER_LTO_MODE_full = YES;
+WK_USER_LTO_MODE_thin = YES_THIN;
</ins><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourceThirdPartyANGLEChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/ChangeLog  2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog     2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-02-23  Keith Miller  <keith_miller@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Add new mac target numbers
</span></span></pre></div>
<a id="trunkSourceThirdPartyANGLEConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/ANGLE/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/ANGLE/Configurations/Base.xcconfig       2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/ThirdParty/ANGLE/Configurations/Base.xcconfig  2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -81,13 +81,19 @@
</span><span class="cx"> ANGLE_INSTALL_PATH_PREFIX_DEPLOYMENT_YES = $(ANGLE_INSTALL_PATH_PREFIX_DEPLOYMENT_YES_USE_ALTERNATE_$(WK_USE_ALTERNATE_FRAMEWORKS_DIR));
</span><span class="cx"> ANGLE_INSTALL_PATH_PREFIX_DEPLOYMENT_YES_USE_ALTERNATE_YES = $(WK_ALTERNATE_FRAMEWORKS_DIR)/;
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="lines">@@ -94,4 +100,4 @@
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/ChangeLog      2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/ThirdParty/libwebrtc/ChangeLog 2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-13  Keith Rollin  <krollin@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Add support for new StagedFrameworks layout
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig   2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig      2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -111,13 +111,19 @@
</span><span class="cx"> WK_INSTALL_PATH_PREFIX = $(WK_INSTALL_PATH_PREFIX_DEPLOYMENT_$(DEPLOYMENT_LOCATION)$(WK_MACOS_1015)_USE_STAGING_INSTALL_PATH_$(USE_STAGING_INSTALL_PATH));
</span><span class="cx"> WK_INSTALL_PATH_PREFIX_DEPLOYMENT_YES_MACOS_SINCE_1015_USE_STAGING_INSTALL_PATH_YES = $(PLATFORM_OOB_SYSTEM_CONTENT_DIR);
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="lines">@@ -124,4 +130,4 @@
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog       2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WTF/ChangeLog  2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-22  Tim Horton  <timothy_horton@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Fix the build after r243354
</span></span></pre></div>
<a id="trunkSourceWTFConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/Configurations/Base.xcconfig    2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WTF/Configurations/Base.xcconfig       2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -135,13 +135,19 @@
</span><span class="cx"> OTHER_CPLUSPLUSFLAGS = $(ASAN_OTHER_CPLUSPLUSFLAGS);
</span><span class="cx"> OTHER_LDFLAGS = $(ASAN_OTHER_LDFLAGS);
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="lines">@@ -148,7 +154,7 @@
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins><span class="cx"> 
</span><span class="cx"> WTF_INSTALL_PATH_PREFIX = $(WTF_INSTALL_PATH_PREFIX_DEPLOYMENT_$(DEPLOYMENT_LOCATION));
</span><span class="cx"> WTF_INSTALL_PATH_PREFIX_DEPLOYMENT_YES = $(WTF_INSTALL_PATH_PREFIX_DEPLOYMENT_YES_USE_ALTERNATE_$(WK_USE_ALTERNATE_FRAMEWORKS_DIR));
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebCore/ChangeLog      2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,39 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        Removed the conditionals that disabled LTO on 32-bit systems since we
+        no longer build for those.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        No new tests since there should be no observable behavior difference.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-22  Ryan Haddad  <ryanhaddad@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r243356.
</span></span></pre></div>
<a id="trunkSourceWebCoreConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Configurations/Base.xcconfig        2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebCore/Configurations/Base.xcconfig   2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-// Copyright (C) 2009-2017 Apple Inc. All rights reserved.
</del><ins>+// Copyright (C) 2009-2019 Apple Inc. All rights reserved.
</ins><span class="cx"> //
</span><span class="cx"> // Redistribution and use in source and binary forms, with or without
</span><span class="cx"> // modification, are permitted provided that the following conditions
</span><span class="lines">@@ -144,25 +144,23 @@
</span><span class="cx"> WK_WEBCORE_DERIVEDSOURCES_INPUT_XCFILELIST_ADDITIONS = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/WebCore/DerivedSources-input.xcfilelist
</span><span class="cx"> WK_WEBCORE_DERIVEDSOURCES_OUTPUT_XCFILELIST_ADDITIONS = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/WebCore/DerivedSources-output.xcfilelist
</span><span class="cx"> 
</span><del>-// Attempting to build WebCore with full LTO for i386 results in the following
-// linker error, so we drop down to "thin" for that architecture if we were to
-// otherwise attempt to use "full".
-//
-// LLVM ERROR: Section too large, can't encode r_address (0x1000216) into 24 bits of scattered relocation entry.
-// clang: error: linker command failed with exit code 1 (use -v to see invocation)
-
-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><del>-WK_USER_LTO_MODE_full[arch=i386] = $(WK_USER_LTO_MODE_thin);
</del><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourceWebCorePALChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PAL/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PAL/ChangeLog       2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebCore/PAL/ChangeLog  2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        Removed the conditionals that disabled LTO on 32-bit systems since we
+        no longer build for those.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-22  Timothy Hatcher  <timothy@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Change macosx() to macos() in WK_API... and JSC_API... macros.
</span></span></pre></div>
<a id="trunkSourceWebCorePALConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PAL/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PAL/Configurations/Base.xcconfig    2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebCore/PAL/Configurations/Base.xcconfig       2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-// Copyright (C) 2017 Apple Inc. All rights reserved.
</del><ins>+// Copyright (C) 2017-2019 Apple Inc. All rights reserved.
</ins><span class="cx"> //
</span><span class="cx"> // Redistribution and use in source and binary forms, with or without
</span><span class="cx"> // modification, are permitted provided that the following conditions
</span><span class="lines">@@ -136,25 +136,23 @@
</span><span class="cx"> WK_COCOA_TOUCH_appletvsimulator = cocoatouch;
</span><span class="cx"> WK_IS_COCOA_TOUCH = $(WK_NOT_$(WK_EMPTY_$(WK_COCOA_TOUCH)));
</span><span class="cx"> 
</span><del>-// Attempting to build WebCore with full LTO for i386 results in the following
-// linker error, so we drop down to "thin" for that architecture if we were to
-// otherwise attempt to use "full".
-//
-// LLVM ERROR: Section too large, can't encode r_address (0x1000216) into 24 bits of scattered relocation entry.
-// clang: error: linker command failed with exit code 1 (use -v to see invocation)
-
-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><del>-WK_USER_LTO_MODE_full[arch=i386] = $(WK_USER_LTO_MODE_thin);
</del><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog    2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebInspectorUI/ChangeLog       2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-21  Joseph Pecoraro  <pecoraro@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Timelines - Cannot export on about:blank - suggested filename containing a colon silently fails
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/Configurations/Base.xcconfig 2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebInspectorUI/Configurations/Base.xcconfig    2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -108,13 +108,19 @@
</span><span class="cx"> WK_COCOA_TOUCH_appletvsimulator = cocoatouch;
</span><span class="cx"> WK_IS_COCOA_TOUCH = $(WK_NOT_$(WK_EMPTY_$(WK_COCOA_TOUCH)));
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="lines">@@ -121,4 +127,4 @@
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebKit/ChangeLog       2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-22  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Unreviewed build fix after r243388.
</span></span></pre></div>
<a id="trunkSourceWebKitConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Configurations/Base.xcconfig 2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebKit/Configurations/Base.xcconfig    2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-// Copyright (C) 2010-2017 Apple Inc. All rights reserved.
</del><ins>+// Copyright (C) 2010-2019 Apple Inc. All rights reserved.
</ins><span class="cx"> //
</span><span class="cx"> // Redistribution and use in source and binary forms, with or without
</span><span class="cx"> // modification, are permitted provided that the following conditions
</span><span class="lines">@@ -158,13 +158,19 @@
</span><span class="cx"> WK_WEBKIT_DERIVEDSOURCES_INPUT_XCFILELIST_ADDITIONS = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/WebKit/DerivedSources-input.xcfilelist
</span><span class="cx"> WK_WEBKIT_DERIVEDSOURCES_OUTPUT_XCFILELIST_ADDITIONS = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/WebKit/DerivedSources-output.xcfilelist
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="lines">@@ -171,4 +177,4 @@
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourceWebKitLegacymacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/ChangeLog  2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog     2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-21  Andy Estes  <aestes@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [iOS] Apple Pay should be available in documents with no user agent scripts
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/Configurations/Base.xcconfig       2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/WebKitLegacy/mac/Configurations/Base.xcconfig  2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-// Copyright (C) 2009-2017 Apple Inc. All rights reserved.
</del><ins>+// Copyright (C) 2009-2019 Apple Inc. All rights reserved.
</ins><span class="cx"> //
</span><span class="cx"> // Redistribution and use in source and binary forms, with or without
</span><span class="cx"> // modification, are permitted provided that the following conditions
</span><span class="lines">@@ -136,13 +136,19 @@
</span><span class="cx"> WK_COCOA_TOUCH_appletvsimulator = cocoatouch;
</span><span class="cx"> WK_IS_COCOA_TOUCH = $(WK_NOT_$(WK_EMPTY_$(WK_COCOA_TOUCH)));
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="lines">@@ -149,4 +155,4 @@
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre></div>
<a id="trunkSourcebmallocChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/bmalloc/ChangeLog (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/bmalloc/ChangeLog   2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/bmalloc/ChangeLog      2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2019-03-22  Keith Rollin  <krollin@apple.com>
+
+        Enable ThinLTO support in Production builds
+        https://bugs.webkit.org/show_bug.cgi?id=190758
+        <rdar://problem/45413233>
+
+        Reviewed by Daniel Bates.
+
+        Enable building with Thin LTO in Production when using Xcode 10.2 or
+        later. This change results in a 1.45% progression in PLT5. Full
+        Production build times increase about 2-3%. Incremental build times
+        are more severely affected, and so LTO is not enabled for local
+        engineering builds.
+
+        LTO is enabled only on macOS for now, until rdar://problem/49013399,
+        which affects ARM builds, is fixed.
+
+        To change the LTO setting when building locally:
+
+        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
+          command line.
+        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
+          on the command line.
+        - If building with `build-root`, specify --lto={none,thin,full} on the
+          command line.
+        - If building with Xcode, create a LocalOverrides.xcconfig file at the
+          top level of your repository directory (if needed) and define
+          WK_LTO_MODE to full, thin, or none.
+
+        * Configurations/Base.xcconfig:
+
</ins><span class="cx"> 2019-03-21  Michael Saboff  <msaboff@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [BMalloc] No need to delay deallocating chunks based on recent use
</span></span></pre></div>
<a id="trunkSourcebmallocConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/bmalloc/Configurations/Base.xcconfig (243395 => 243396)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/bmalloc/Configurations/Base.xcconfig        2019-03-22 18:49:04 UTC (rev 243395)
+++ trunk/Source/bmalloc/Configurations/Base.xcconfig   2019-03-22 18:56:41 UTC (rev 243396)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-// Copyright (C) 2009-2017 Apple Inc. All rights reserved.
</del><ins>+// Copyright (C) 2009-2019 Apple Inc. All rights reserved.
</ins><span class="cx"> //
</span><span class="cx"> // Redistribution and use in source and binary forms, with or without
</span><span class="cx"> // modification, are permitted provided that the following conditions
</span><span class="lines">@@ -133,13 +133,19 @@
</span><span class="cx"> BMALLOC_INSTALL_PATH_PREFIX_DEPLOYMENT_YES = $(BMALLOC_INSTALL_PATH_PREFIX_DEPLOYMENT_YES_USE_ALTERNATE_$(WK_USE_ALTERNATE_FRAMEWORKS_DIR));
</span><span class="cx"> BMALLOC_INSTALL_PATH_PREFIX_DEPLOYMENT_YES_USE_ALTERNATE_YES = $(WK_ALTERNATE_FRAMEWORKS_DIR)/;
</span><span class="cx"> 
</span><del>-LLVM_LTO = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</del><ins>+// Disable on all platforms other than macOS, due to <rdar://problem/49013399>.
+LLVM_LTO = NO;
+LLVM_LTO[sdk=macosx*] = $(WK_LLVM_LTO_$(WK_XCODE_SUPPORTS_LTO));
</ins><span class="cx"> WK_LLVM_LTO_NO = NO;
</span><span class="cx"> WK_LLVM_LTO_YES = $(WK_USER_LTO_MODE);
</span><span class="cx"> 
</span><del>-WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_9_$(XCODE_VERSION_MAJOR)));
-WK_XCODE_VERSION_BEFORE_9_0800 = YES;
-WK_XCODE_VERSION_BEFORE_9_0700 = YES;
</del><ins>+WK_XCODE_SUPPORTS_LTO = $(WK_NOT_$(WK_XCODE_VERSION_BEFORE_10_2_$(XCODE_VERSION_MAJOR)));
+WK_XCODE_VERSION_BEFORE_10_2_0700 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0800 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_0900 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000 = $(WK_XCODE_VERSION_BEFORE_10_2_1000_$(XCODE_VERSION_MINOR));
+WK_XCODE_VERSION_BEFORE_10_2_1000_1000 = YES;
+WK_XCODE_VERSION_BEFORE_10_2_1000_1010 = YES;
</ins><span class="cx"> 
</span><span class="cx"> WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
</span><span class="cx"> WK_USER_LTO_MODE_full = YES;
</span><span class="lines">@@ -146,4 +152,4 @@
</span><span class="cx"> WK_USER_LTO_MODE_thin = YES_THIN;
</span><span class="cx"> WK_USER_LTO_MODE_none = NO;
</span><span class="cx"> WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
</span><del>-WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_none);
</del><ins>+WK_DEFAULT_LTO_MODE = $(WK_USER_LTO_MODE_thin);
</ins></span></pre>
</div>
</div>

</body>
</html>