Bug 139212 - Switch from using PLATFORM_NAME to SDK selectors in ANGLE, bmalloc, gtest, JavaScriptCore, WTF
Summary: Switch from using PLATFORM_NAME to SDK selectors in ANGLE, bmalloc, gtest, Ja...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: David Kilzer (:ddkilzer)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-12-02 16:44 PST by David Kilzer (:ddkilzer)
Modified: 2014-12-25 22:32 PST (History)
9 users (show)

See Also:


Attachments
Patch v1 (32.34 KB, patch)
2014-12-02 17:12 PST, David Kilzer (:ddkilzer)
no flags Details | Formatted Diff | Diff
Patch v2 (Testing 10.8 fix for ANGLE project; DO NOT REVIEW) (32.47 KB, patch)
2014-12-03 16:39 PST, David Kilzer (:ddkilzer)
no flags Details | Formatted Diff | Diff
Patch v3 (Testing 10.8 fix for SDKROOT variable; DO NOT REVIEW) (32.74 KB, patch)
2014-12-04 02:44 PST, David Kilzer (:ddkilzer)
no flags Details | Formatted Diff | Diff
Patch v4 (with Xcode 5.1.1/OS X 10.8 workaround) (33.21 KB, patch)
2014-12-05 13:09 PST, David Kilzer (:ddkilzer)
joepeck: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description David Kilzer (:ddkilzer) 2014-12-02 16:44:46 PST
Switch from using PLATFORM_NAME to SDK selectors in the ANGLE, bmalloc, gtest, JavaScriptCore, and WTF projects.

See also:  Bug 138813: FeatureDefines.xcconfig: Switch from using PLATFORM_NAME to SDK selectors
Comment 1 David Kilzer (:ddkilzer) 2014-12-02 17:12:54 PST
Created attachment 242466 [details]
Patch v1
Comment 2 WebKit Commit Bot 2014-12-02 17:15:22 PST
Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE
Comment 3 Geoffrey Garen 2014-12-02 17:23:04 PST
Comment on attachment 242466 [details]
Patch v1

r=me
Comment 4 WebKit Commit Bot 2014-12-02 18:04:15 PST
Comment on attachment 242466 [details]
Patch v1

Rejecting attachment 242466 [details] from commit-queue.

Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.appspot.com', '--bot-id=webkit-cq-02', 'build', '--no-clean', '--no-update', '--build-style=release', '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ROJECT ANGLE WITH CONFIGURATION Release ===

Check dependencies
Base.xcconfig line 1: Unable to find included file "<DEVELOPER_DIR>/AppleInternal/XcodeConfig/AspenFamily.xcconfig"
Base.xcconfig line 2: Unable to find included file "../../../../../Internal/Configurations/HaveInternalSDK.xcconfig"
error: There is no SDK with the name or path '/Volumes/Data/EWS/WebKit/Source/ThirdParty/ANGLE/macosx.internal'

** BUILD FAILED **


The following build commands failed:
	Check dependencies
(1 failure)

Full output: http://webkit-queues.appspot.com/results/6689867459198976
Comment 5 David Kilzer (:ddkilzer) 2014-12-02 20:40:47 PST
(In reply to comment #4)
> Comment on attachment 242466 [details]
> Patch v1
> 
> Rejecting attachment 242466 [details] from commit-queue.
> 
> error: There is no SDK with the name or path
> '/Volumes/Data/EWS/WebKit/Source/ThirdParty/ANGLE/macosx.internal'

It would appear that the 10.8 SDK doesn't support the [sdk=macosx*] selectors.  Or perhaps not wildcards.  Need to test further.
Comment 6 David Kilzer (:ddkilzer) 2014-12-02 20:41:18 PST
Comment on attachment 242466 [details]
Patch v1

Clearing r+ flag.
Comment 7 David Kilzer (:ddkilzer) 2014-12-03 16:39:03 PST
Created attachment 242538 [details]
Patch v2 (Testing 10.8 fix for ANGLE project; DO NOT REVIEW)
Comment 8 David Kilzer (:ddkilzer) 2014-12-03 16:54:50 PST
(In reply to comment #5)
> (In reply to comment #4)
> > Comment on attachment 242466 [details]
> > Patch v1
> > 
> > Rejecting attachment 242466 [details] from commit-queue.
> > 
> > error: There is no SDK with the name or path
> > '/Volumes/Data/EWS/WebKit/Source/ThirdParty/ANGLE/macosx.internal'
> 
> It would appear that the 10.8 SDK doesn't support the [sdk=macosx*]
> selectors.  Or perhaps not wildcards.  Need to test further.


WTF?!  This is a bug, right?


ANGLE variables defined with Patch v1:

    export CONFIGURATION=Release
    export SDKROOT=/Volumes/Data/EWS/WebKit/Source/ThirdParty/ANGLE/macosx.internal
    export SDKROOT_macosx_=macosx
    export SDKROOT_macosx_YES=macosx.internal
    export USE_INTERNAL_SDK_Production=YES

SDKROOT[sdk=macosx*] = $(SDKROOT_macosx_$(USE_INTERNAL_SDK));
SDKROOT_macosx_ = macosx;
SDKROOT_macosx_YES = macosx.internal;

FAIL: SDKROOT is set to macosx.internal even though USE_INTERNAL_SDK is not defined!


ANGLE variables defined with Patch v2:

    setenv CONFIGURATION Release
    setenv SDKROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
    setenv SDKROOT_macosx macosx
    setenv SDKROOT_macosx_ macosx
    setenv SDKROOT_macosx_YES macosx.internal
    setenv USE_INTERNAL_SDK_Production YES

SDKROOT = $(SDKROOT_$(PLATFORM_NAME));
SDKROOT[sdk=iphoneos*] = $(SDKROOT);
SDKROOT[sdk=iphonesimulator*] = $(SDKROOT);
SDKROOT_macosx = $(SDKROOT_macosx_$(USE_INTERNAL_SDK));
SDKROOT_macosx_ = macosx;
SDKROOT_macosx_YES = macosx.internal;

SUCCESS: SDKROOT is set to macosx (and expanded later).
Comment 9 David Kilzer (:ddkilzer) 2014-12-03 16:57:39 PST
And why does one build use "export" but the other uses "setenv" for the same build phase script?!
Comment 10 Mark Rowe (bdash) 2014-12-04 00:56:57 PST
(In reply to comment #9)
> And why does one build use "export" but the other uses "setenv" for the same
> build phase script?!

I think there are two different Xcode versions in play.

https://webkit-queues.appspot.com/results/4892086490890240
    setenv XCODE_PRODUCT_BUILD_VERSION 5A1413

https://webkit-queues.appspot.com/results/6689867459198976
    export XCODE_PRODUCT_BUILD_VERSION=5B1008

That's Xcode 5.0 (webkit-ews-03) and 5.1.1 (webkit-cq-02) respectively.
Comment 11 David Kilzer (:ddkilzer) 2014-12-04 02:34:20 PST
(In reply to comment #10)
> (In reply to comment #9)
> > And why does one build use "export" but the other uses "setenv" for the same
> > build phase script?!
> 
> I think there are two different Xcode versions in play.
> 
> https://webkit-queues.appspot.com/results/4892086490890240
>     setenv XCODE_PRODUCT_BUILD_VERSION 5A1413
> 
> https://webkit-queues.appspot.com/results/6689867459198976
>     export XCODE_PRODUCT_BUILD_VERSION=5B1008
> 
> That's Xcode 5.0 (webkit-ews-03) and 5.1.1 (webkit-cq-02) respectively.

Bazinga!  Xcode 5.0 does not have the bug, bug Xcode 5.1.1 does.

The bug appears to be that any Xcode variable that mixes both the selector syntax ([sdk=blah*]) and a nested variable in the value is simply not set.

Here's another example:

MACOSX_DEPLOYMENT_TARGET[sdk=macosx*] = $(MACOSX_DEPLOYMENT_TARGET_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
MACOSX_DEPLOYMENT_TARGET_macosx_1080 = 10.8;
MACOSX_DEPLOYMENT_TARGET_macosx_1090 = 10.9;
MACOSX_DEPLOYMENT_TARGET_macosx_101000 = 10.10;
MACOSX_DEPLOYMENT_TARGET_macosx_101100 = 10.11;

On Xcode 5.1.1, MACOSX_DEPLOYMENT_TARGET is never set:

    export MACOSX_DEPLOYMENT_TARGET_101000=10.10
    export MACOSX_DEPLOYMENT_TARGET_101100=10.11
    export MACOSX_DEPLOYMENT_TARGET_1080=10.8
    export MACOSX_DEPLOYMENT_TARGET_1090=10.9

Bug on Xcode 5.0, MACOSX_DEPLOYMENT_TARGET is set:

    setenv MACOSX_DEPLOYMENT_TARGET 10.8
    setenv MACOSX_DEPLOYMENT_TARGET_101000 10.10
    setenv MACOSX_DEPLOYMENT_TARGET_101100 10.11
    setenv MACOSX_DEPLOYMENT_TARGET_1080 10.8
    setenv MACOSX_DEPLOYMENT_TARGET_1090 10.9
Comment 12 David Kilzer (:ddkilzer) 2014-12-04 02:36:01 PST
(In reply to comment #11)
> Bug on Xcode 5.0, MACOSX_DEPLOYMENT_TARGET is set:

That should read "BUT on Xcode 5.0, MACOSX_DEPLOYMENT_TARGET is set:".
Comment 13 David Kilzer (:ddkilzer) 2014-12-04 02:41:47 PST
Also, by sheer coincidence, the only variable that is not set properly in FeatureDefines.xcconfig (Bug 138813) on 10.8 is ENABLE_WEB_REPLAY:

ENABLE_WEB_REPLAY[sdk=macosx*] = $(ENABLE_WEB_REPLAY_macosx_$(CONFIGURATION));
ENABLE_WEB_REPLAY_macosx_Debug = ENABLE_WEB_REPLAY;
ENABLE_WEB_REPLAY_macosx_Release = ENABLE_WEB_REPLAY;
ENABLE_WEB_REPLAY_macosx_Production = ;

Every other time the sdks selector syntax is used with sub-variable syntax, we explicitly don't define a value for 10.8 (because the feature is disabled).
Comment 14 David Kilzer (:ddkilzer) 2014-12-04 02:44:43 PST
Created attachment 242562 [details]
Patch v3 (Testing 10.8 fix for SDKROOT variable; DO NOT REVIEW)
Comment 15 David Kilzer (:ddkilzer) 2014-12-05 13:09:32 PST
Created attachment 242651 [details]
Patch v4 (with Xcode 5.1.1/OS X 10.8 workaround)
Comment 16 Joseph Pecoraro 2014-12-08 11:02:49 PST
Comment on attachment 242651 [details]
Patch v4 (with Xcode 5.1.1/OS X 10.8 workaround)

View in context: https://bugs.webkit.org/attachment.cgi?id=242651&action=review

r=me

> Source/JavaScriptCore/Configurations/ToolExecutable.xcconfig:41
> +CLANG_ENABLE_OBJC_ARC_i386[sdk=iphonesimulator*] = YES; # For iOS Simulator version 4.0 and greater

Maybe we can remove the comment now.
Comment 17 David Kilzer (:ddkilzer) 2014-12-09 11:08:53 PST
Committed r177027: <http://trac.webkit.org/changeset/177027>
Comment 18 David Kilzer (:ddkilzer) 2014-12-09 11:09:17 PST
(In reply to comment #16)
> Comment on attachment 242651 [details]
> Patch v4 (with Xcode 5.1.1/OS X 10.8 workaround)
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=242651&action=review
> 
> r=me
> 
> > Source/JavaScriptCore/Configurations/ToolExecutable.xcconfig:41
> > +CLANG_ENABLE_OBJC_ARC_i386[sdk=iphonesimulator*] = YES; # For iOS Simulator version 4.0 and greater
> 
> Maybe we can remove the comment now.

Removed!
Comment 19 David Kilzer (:ddkilzer) 2014-12-12 09:51:57 PST
(In reply to comment #17)
> Committed r177027: <http://trac.webkit.org/changeset/177027>

Follow-up build fix in r177210: <http://trac.webkit.org/changeset/177210>
Comment 20 mitz 2014-12-25 22:32:21 PST
(In reply to comment #17)
> Committed r177027: <http://trac.webkit.org/changeset/177027>

This caused bug 139950.