NEW 206620
Makefiles should make webkitdirs aware of the SDK
https://bugs.webkit.org/show_bug.cgi?id=206620
Summary Makefiles should make webkitdirs aware of the SDK
Jonathan Bedard
Reported 2020-01-22 15:37:46 PST
Make should work with SDKROOT=iphoneos, for a number of reasons, it does not. I discovered these issues while fixing https://bugs.webkit.org/show_bug.cgi?id=206618.
Attachments
Patch (2.95 KB, patch)
2020-01-23 08:15 PST, Jonathan Bedard
no flags
Patch (3.88 KB, patch)
2020-01-23 12:01 PST, Jonathan Bedard
no flags
Patch (3.89 KB, patch)
2020-01-23 13:00 PST, Jonathan Bedard
no flags
Patch (3.88 KB, patch)
2020-01-24 12:17 PST, Jonathan Bedard
jbedard: review?
Alexey Proskuryakov
Comment 1 2020-01-22 17:13:59 PST
I'm not sure if we need two ways to build, why is this desirable?
Jonathan Bedard
Comment 2 2020-01-22 17:40:36 PST
(In reply to Alexey Proskuryakov from comment #1) > I'm not sure if we need two ways to build, why is this desirable? Make allows partial builds, you can, for example, just build JavascriptCore. build-webkit (to my knowledge) does not (at least not without a specific script designed to do so) If we don't intend to support the make workflow for local development, it should fail early and hard. Given that it's so close to working, it seems better to fix it.
Jonathan Bedard
Comment 3 2020-01-23 08:15:33 PST
Jonathan Bedard
Comment 4 2020-01-23 08:17:29 PST
After exploring this change, I'm quite confused how we've gone this long without this. This is the reason you have to specify the architecture when running make, after this change, 'make SDKROOT=iphoneos' will work, you won't need 'make SDKROOT=iphoneos ARCHS=arm64'
Jonathan Bedard
Comment 5 2020-01-23 12:01:30 PST
Jonathan Bedard
Comment 6 2020-01-23 12:09:39 PST
We definitely want some parts of this change (line 371, for example, fixes a bug in build-webkit), but arm64e can't build on our bots at the moment, so this change can't land yet.
Keith Rollin
Comment 7 2020-01-23 12:43:54 PST
Comment on attachment 388573 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=388573&action=review > Tools/Scripts/webkitdirs.pm:376 > + } elsif ($xcodeSDK =~ /^iphoneos/ || /^watchos/ || $xcodeSDK =~ /^appletvos/) { Does that watchOS regex need to be applied to $xcodeSDK?
Jonathan Bedard
Comment 8 2020-01-23 13:00:28 PST
Jonathan Bedard
Comment 9 2020-01-24 12:17:54 PST
Alexey Proskuryakov
Comment 10 2020-01-24 13:55:52 PST
Comment on attachment 388717 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=388717&action=review > Tools/ChangeLog:11 > + (determineXcodeSDK): Check for SDKROOT=* in passed arguments so that we can > + apply the correct arguments for a specific SDK. I am still skeptical about the idea. Arguments that are passed to make in this way have a simple well defined meaning. Having intermediate scripts intercept them and enable tangentially related magic adds a lot of conceptual complexity. I do not think that we have a practical problem that is worth solving, much less one that is worth solving like this.
Jonathan Bedard
Comment 11 2020-01-24 14:19:24 PST
Comment on attachment 388717 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=388717&action=review >> Tools/ChangeLog:11 >> + apply the correct arguments for a specific SDK. > > I am still skeptical about the idea. Arguments that are passed to make in this way have a simple well defined meaning. Having intermediate scripts intercept them and enable tangentially related magic adds a lot of conceptual complexity. I do not think that we have a practical problem that is worth solving, much less one that is worth solving like this. If we don't like the idea of intercepting arguments, then we need to strip webkitdirs.pm of the device specific Xcode options (line 913 through line 922). The intention of the makefile seems to be to keep our Xcode options unified in a single spot, so that make and build-webkit do mostly the same thing. It seems to me that making Make more like build-webkit is a good thing, but if it's not, then we should make build-webkit more like make. I also think that build-webkit needs some intermediate interception regardless of what Make is doing. It's clearly not ok for build-webkit to pick an architecture when the user specifies one.
Jonathan Bedard
Comment 12 2020-01-31 07:50:23 PST
Filed https://bugs.webkit.org/show_bug.cgi?id=207045 for the work in webkitdirs, this bug will just track the work in the Makefile.
Note You need to log in before you can comment on or make changes to this bug.