Bug 265449

Summary: Webkit and JSC builds fail by default on Apple M1 Sonoma 14.1.1
Product: WebKit Reporter: medioxor
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Major CC: ap, emw, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Mac (Apple Silicon)   
OS: macOS 14   
Attachments:
Description Flags
logs none

Description medioxor 2023-11-28 04:33:35 PST
Created attachment 468783 [details]
logs

I installed developer tools as mentioned in the documentation and cloned Webkit followed by navigating to the root directory of the source code and executing the following:

./Tools/Scripts/build-jsc --debug

which failed saying that some header files could not be found I then tried building webkit by using the following:

./Tools/Scripts/build-webkit --debug

which also failed with the same error, I have attached build logs for both and I would really appreciate some guidance on how I can build webkit or JSC.

It should be noted that I also tried building using Xcode GUI and following the doco at https://webkit.org/building-webkit/ which results in the following error:

"
Using unified source list files: Sources.txt, SourcesCocoa.txt, Platform/Sources.txt, Platform/SourcesCocoa.txt
ruby: No such file or directory -- /Users/user/Desktop/WebKit/WebKitBuild/Debug/usr/local/include/wtf/Scripts/generate-unified-source-bundles.rb (LoadError)
"

No idea how to fix any of these and would love some help to determine if its a me problem thanks!
Comment 1 Alexey Proskuryakov 2023-11-29 17:18:23 PST
Thank you for the report! Looks like it's not finding ICU headers, which are supposed to come from Source/WTF/icu/unicode. This is weird, as our Sonoma CI is succeeding: https://build.webkit.org/#/builders/Apple-Sonoma-Debug-Build
Comment 2 Elliott Williams 2023-11-30 13:35:17 PST
From the error log:

	error: no such private header file: '/Users/user/Desktop/WebKit/WebKitBuild/Debug/usr/local/include/icu/unicode/alphaindex.h'
	error: no such private header file: '/Users/user/Desktop/WebKit/WebKitBuild/Debug/usr/local/include/icu/unicode/appendable.h'
	error: no such private header file: '/Users/user/Desktop/WebKit/WebKitBuild/Debug/usr/local/include/icu/unicode/basictz.h'
	error: no such private header file: '/Users/user/Desktop/WebKit/WebKitBuild/Debug/usr/local/include/icu/unicode/brkiter.h'
	error: no such private header file: '/Users/user/Desktop/WebKit/WebKitBuild/Debug/usr/local/include/icu/unicode/bytestream.h'

ICU headers are supposed to be copied to `usr/local/include/unicode` (no icu/ component). The Sonoma CI bot is doing this correctly, so perhaps there is something unusual about your setup.
Comment 3 Elliott Williams 2023-11-30 14:04:09 PST
There's also this logic in WTF.xcconfig:

	// ICU headers don't have target membership in WTF, but they are visible to the "Generate TAPI filelist" build phase. Since they are not installed to /usr/local/include/wtf and not API, tell the script to ignore them.
	EXCLUDED_SOURCE_FILE_NAMES = $(inherited) icu/unicode/* $(EXCLUDED_SOURCE_FILE_NAMES_$(USE_INTERNAL_SDK));

Seems like, for whatever reason your system, is not respecting this.
Comment 4 Elliott Williams 2023-11-30 14:09:51 PST
Oh -- I see in your WebKit build log, that the WTF target has some unexpected build settings:

	PhaseScriptExecution Generate\ TAPI\ filelist /Users/user/Desktop/WebKit/WebKitBuild/WTF.build/Debug/WTF.build/Script-DDA35E4929CA74D4006C1018.sh (in target 'WTF' from project 'WTF')
	    ...
	    export EXCLUDED_SOURCE_FILE_NAMES\=libWebKitAdditions.a\ 
	    export EXCLUDED_SOURCE_FILE_NAMES_YES\=icu/unicode/\*

Is there any change you're building an out-of-date WebKit commit? These settings changed in https://commits.webkit.org/264550@main, which landed in May 2023. Now, I would expect to see something like what the CI bot shows:

	PhaseScriptExecution Symlink\ public\ SDK\ headers /Volumes/Data/worker/Apple-Sonoma-Debug-Build/build/WebKitBuild/WTF.build/Debug/WTF.build/Script-DD07DF4C2A7DB6640091EACE.sh (in target 'WTF' from project 'WTF')
	    ...
	    export EXCLUDED_SOURCE_FILE_NAMES\=libWebKitAdditions.a\ icu/unicode/\*\
Comment 5 Elliott Williams 2023-11-30 14:10:49 PST
> Is there any change you're building an out-of-date WebKit commit? 

typo: s/change/chance
Comment 6 Radar WebKit Bug Importer 2023-12-05 04:34:14 PST
<rdar://problem/119181913>
Comment 7 Alexey Proskuryakov 2023-12-05 08:37:21 PST
Marking as INVALID for now, as our best theory is that you are building an old revision. Please reopen with more details if this issue affects latest WebKit.