Closed vjpr closed 11 months ago
From: https://discord.com/channels/876711213126520882/888839314056839309/1041759223731724429
When building on macOS Ventura with zig@0.10:
Successfully remade target file 'identifier-cache'. File 'bindings' does not exist. File 'src/bun.js/debug-bindings-obj/BunJSCModule.o' does not exist. Must remake target 'src/bun.js/debug-bindings-obj/BunJSCModule.o'. Makefile:1558: update target 'src/bun.js/debug-bindings-obj/BunJSCModule.o' due to: src/bun.js/bindings/BunJSCModule.cpp ##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /opt/homebrew/opt/llvm/bin/clang++ -I/Users/Vaughan/dev/fork/+bun/bun/src/deps/uws/uSockets/src -I/Users/Vaughan/dev/fork/+bun/bun/src/deps/uws/src -I/Users/Vaughan/dev/fork/+bun/bun/src/deps -I/Users/Vaughan/dev/fork/+bun/bun/src/deps/mimalloc/include -Isrc/napi -I/Users/Vaughan/dev/fork/+bun/bun/src/deps/boringssl/include -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/WTF/Headers -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/ICU/Headers -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/bmalloc/Headers -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/ -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/include -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/bmalloc/PrivateHeaders -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/WTF/PrivateHeaders -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/bindings/ -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/builtins -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/bindings -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/bindings/webcore -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/bindings/webcrypto -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/bindings/sqlite -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/builtins/cpp -I -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/modules -I/Users/Vaughan/webkit-build/include -I/Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/Source -std=c++2a -DSTATICALLY_LINKED_WITH_JavaScriptCore=1 -DSTATICALLY_LINKED_WITH_WTF=1 -DSTATICALLY_LINKED_WITH_BMALLOC=1 -DBUILDING_WITH_CMAKE=1 -DBUN_SINGLE_THREADED_PER_VM_ENTRY_SCOPE=1 -DNDEBUG=1 -DNOMINMAX -DIS_BUILD -DBUILDING_JSCONLY__ -DASSERT_ENABLED=0 -fvisibility=hidden -fvisibility-inlines-hidden \ -mmacosx-version-min=11.0 \ -O1 -mtune=native \ -fno-exceptions \ -fno-rtti \ -ferror-limit=1000 \ \ -g3 -c -o src/bun.js/debug-bindings-obj/BunJSCModule.o src/bun.js/bindings/BunJSCModule.cpp ##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< In file included from src/bun.js/bindings/BunJSCModule.cpp:30: In file included from /Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/JavaScriptCore/RemoteInspectorServer.h:30: /Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/JavaScriptCore/RemoteInspector.h:208:5: error: unknown type name 'TargetListing' TargetListing listingForTarget(const RemoteControllableTarget&) const; ^ /Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/JavaScriptCore/RemoteInspector.h:209:5: error: unknown type name 'TargetListing' TargetListing listingForInspectionTarget(const RemoteInspectionTarget&) const; ^ /Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/JavaScriptCore/RemoteInspector.h:210:5: error: unknown type name 'TargetListing' TargetListing listingForAutomationTarget(const RemoteAutomationTarget&) const; ^ /Users/Vaughan/dev/fork/+bun/bun/src/bun.js/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/JavaScriptCore/RemoteInspector.h:273:23: error: use of undeclared identifier 'TargetListing' HashMap<TargetID, TargetListing> m_targetListingMap; ^ 4 errors generated. Makefile:1557: *** [src/bun.js/debug-bindings-obj/BunJSCModule.o] error 1 #0 src/bun.js/debug-bindings-obj/BunJSCModule.o at /Users/Vaughan/dev/fork/+bun/bun/Makefile:1557 #1 bindings at /Users/Vaughan/dev/fork/+bun/bun/Makefile:1334
#if PLATFORM(COCOA) #include "RemoteInspectorXPCConnection.h" #include <wtf/HashSet.h> #include <wtf/RetainPtr.h> OBJC_CLASS NSDictionary; OBJC_CLASS NSString; typedef RetainPtr<NSDictionary> TargetListing; #endif #if USE(GLIB) #include <wtf/glib/GRefPtr.h> #include <wtf/glib/SocketConnection.h> typedef GRefPtr<GVariant> TargetListing; typedef struct _GCancellable GCancellable; #endif #if USE(INSPECTOR_SOCKET_SERVER) #include "RemoteConnectionToTarget.h" #include "RemoteInspectorConnectionClient.h" #include <wtf/JSONValues.h> #include <wtf/RefPtr.h> namespace Inspector { using TargetListing = RefPtr<JSON::Object>; } #endif
We use -DPORT="JSCOnly" which doesn't have the PLATFORM( ) macro. See src/bun.js/WebKit/Source/WTF/wtf/PlatformLegacy.h.
PLATFORM( )
src/bun.js/WebKit/Source/WTF/wtf/PlatformLegacy.h
.PHONY: jsc-build-mac-compile-debug jsc-build-mac-compile-debug: mkdir -p $(WEBKIT_DEBUG_DIR) $(WEBKIT_DIR); cd $(WEBKIT_DEBUG_DIR) && \ ICU_INCLUDE_DIRS="$(HOMEBREW_PREFIX)opt/icu4c/include" \ cmake \ -DPORT="JSCOnly" \ <----------------- -DENABLE_STATIC_JSC=ON \ -DCMAKE_BUILD_TYPE=Debug \ -DUSE_THIN_ARCHIVES=OFF \ -DENABLE_FTL_JIT=ON \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -G Ninja \ $(CMAKE_FLAGS_WITHOUT_RELEASE) \ -DPTHREAD_JIT_PERMISSIONS_API=1 \ -DUSE_PTHREAD_JIT_PERMISSIONS_API=ON \ -DENABLE_REMOTE_INSPECTOR=ON \ <--------------- -DUSE_VISIBILITY_ATTRIBUTE=1 \ $(WEBKIT_DIR) \ $(WEBKIT_DEBUG_DIR) && \ CFLAGS="$(CFLAGS) -ffat-lto-objects" CXXFLAGS="$(CXXFLAGS) -ffat-lto-objects" \ cmake --build $(WEBKIT_DEBUG_DIR) --config Debug --target jsc
-DENABLE_REMOTE_INSPECTOR=ON includes RemoteInspector.h which has a check for PLATFORM(COCOA) which will be null.
-DENABLE_REMOTE_INSPECTOR=ON
RemoteInspector.h
PLATFORM(COCOA)
For GTK though, it uses #if USE(GLIB). This is set in src/bun.js/WebKit/Source/cmake/OptionsJSCOnly.cmake.
#if USE(GLIB)
src/bun.js/WebKit/Source/cmake/OptionsJSCOnly.cmake
string(TOLOWER ${EVENT_LOOP_TYPE} LOWERCASE_EVENT_LOOP_TYPE) if (LOWERCASE_EVENT_LOOP_TYPE STREQUAL "glib") find_package(GLIB 2.36 REQUIRED COMPONENTS gio gio-unix gobject) SET_AND_EXPOSE_TO_BUILD(USE_GLIB 1) SET_AND_EXPOSE_TO_BUILD(USE_GLIB_EVENT_LOOP 1) SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0) else () SET_AND_EXPOSE_TO_BUILD(USE_GENERIC_EVENT_LOOP 1) SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0) endif ()
Looks like the RemoteInspector doesn't work with macOS...or its not setup to.
We shouldn't build with remote inspector enabled I think.
Our build has changed quite a bit since this issue was filed, if you still run into this issue. Please feel free to re-open.
From: https://discord.com/channels/876711213126520882/888839314056839309/1041759223731724429
When building on macOS Ventura with zig@0.10:
We use -DPORT="JSCOnly" which doesn't have the
PLATFORM( )
macro. Seesrc/bun.js/WebKit/Source/WTF/wtf/PlatformLegacy.h
.-DENABLE_REMOTE_INSPECTOR=ON
includesRemoteInspector.h
which has a check forPLATFORM(COCOA)
which will be null.For GTK though, it uses
#if USE(GLIB)
. This is set insrc/bun.js/WebKit/Source/cmake/OptionsJSCOnly.cmake
.Looks like the RemoteInspector doesn't work with macOS...or its not setup to.