diff options
-rw-r--r-- | Makefile | 42 | ||||
-rw-r--r-- | src/deps/libuwsockets.cpp | 3 | ||||
m--------- | src/deps/mimalloc | 0 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/ZigGlobalObject.cpp | 9 | ||||
-rw-r--r-- | src/javascript/jsc/perf_hooks.exports.js | 15 |
5 files changed, 41 insertions, 28 deletions
@@ -61,11 +61,11 @@ CC = $(shell which clang-13 || which clang) CXX = $(shell which clang++-13 || which clang++) ifeq ($(OS_NAME),darwin) -LLVM_PREFIX = $(shell brew --prefix llvm) -LDFLAGS += " -L$(LLVM_PREFIX)/lib" -CPPFLAGS += " -I$(LLVM_PREFIX)/include" -CC = $(LLVM_PREFIX)/bin/clang -CXX = $(LLVM_PREFIX)/bin/clang++ +# LLVM_PREFIX = $(shell brew --prefix llvm) +# LDFLAGS += " -L$(LLVM_PREFIX)/lib" +# CPPFLAGS += " -I$(LLVM_PREFIX)/include" +CC = /usr/bin/clang +CXX = /usr/bin/clang++ CODESIGN_IDENTITY ?= $(shell security find-identity -v -p codesigning | awk '/Apple Development/ { print $$2 }') endif @@ -94,7 +94,7 @@ LIBTOOL=libtoolize ifeq ($(OS_NAME),darwin) LIBTOOL=glibtoolize AR=llvm-ar -BITCODE_OR_SECTIONS=-fembed-bitcode=all +BITCODE_OR_SECTIONS=-fdata-sections -ffunction-sections endif ifeq ($(OS_NAME),linux) @@ -103,7 +103,7 @@ AR=llvm-ar-13 endif OPTIMIZATION_LEVEL=-O3 -CFLAGS = $(MACOS_MIN_FLAG) $(MARCH_NATIVE) $(BITCODE_OR_SECTIONS) -g $(OPTIMIZATION_LEVEL) +CFLAGS = $(MACOS_MIN_FLAG) $(MARCH_NATIVE) $(BITCODE_OR_SECTIONS) -g $(OPTIMIZATION_LEVEL) -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden BUN_TMP_DIR := /tmp/make-bun BUN_DEPLOY_DIR = /tmp/bun-v$(PACKAGE_JSON_VERSION)/$(PACKAGE_NAME) @@ -208,7 +208,7 @@ LINUX_INCLUDE_DIRS := -I$(JSC_INCLUDE_DIR) \ UWS_INCLUDE_DIR := -I$(BUN_DEPS_DIR)/uws/uSockets/src -I$(BUN_DEPS_DIR)/uws/src -I$(BUN_DEPS_DIR) -INCLUDE_DIRS := $(UWS_INCLUDE_DIR) +INCLUDE_DIRS := $(UWS_INCLUDE_DIR) -I$(BUN_DEPS_DIR)/mimalloc/include ifeq ($(OS_NAME),linux) @@ -338,7 +338,7 @@ BUN_LLD_FLAGS_WITHOUT_JSC = $(ARCHIVE_FILES) \ -BUN_LLD_FLAGS = $(BUN_LLD_FLAGS_WITHOUT_JSC) $(JSC_BINDINGS) ${ICU_FLAGS} -lc +BUN_LLD_FLAGS = $(BUN_LLD_FLAGS_WITHOUT_JSC) $(JSC_BINDINGS) ${ICU_FLAGS} CLANG_VERSION = $(shell $(CC) --version | awk '/version/ {for(i=1; i<=NF; i++){if($$i=="version"){split($$(i+1),v,".");print v[1]}}}') @@ -353,7 +353,7 @@ lolhtml: cd $(BUN_DEPS_DIR)/lol-html/ && cd $(BUN_DEPS_DIR)/lol-html/c-api && cargo build --release && cp target/release/liblolhtml.a $(BUN_DEPS_OUT_DIR) boringssl-build: - cd $(BUN_DEPS_DIR)/boringssl && mkdir -p build && cd build && CFLAGS="$(CFLAGS)" cmake $(CMAKE_FLAGS) -GNinja .. && ninja + cd $(BUN_DEPS_DIR)/boringssl && mkdir -p build && cd build && CFLAGS="$(CFLAGS) -emit-llvm" cmake $(CMAKE_FLAGS) -GNinja .. && ninja boringssl-build-debug: cd $(BUN_DEPS_DIR)/boringssl && mkdir -p build && cd build && CFLAGS="$(CFLAGS)" cmake $(CMAKE_FLAGS_WITHOUT_RELEASE) -GNinja .. && ninja @@ -468,25 +468,25 @@ build-obj-safe: $(ZIG) build obj -Drelease-safe UWS_CC_FLAGS = -pthread -DLIBUS_USE_OPENSSL=1 -DUWS_HTTPRESPONSE_NO_WRITEMARK=1 -DLIBUS_USE_BORINGSSL=1 -DWITH_BORINGSSL=1 -Wpedantic -Wall -Wextra -Wsign-conversion -Wconversion $(UWS_INCLUDE) -DUWS_WITH_PROXY -UWS_CXX_FLAGS = $(UWS_CC_FLAGS) -std=gnu++17 +UWS_CXX_FLAGS = $(UWS_CC_FLAGS) -std=gnu++17 -fno-exceptions UWS_LDFLAGS = -I$(BUN_DEPS_DIR)/boringssl/include -I$(ZLIB_INCLUDE_DIR) usockets: rm -rf $(BUN_DEPS_DIR)/uws/uSockets/*.o $(BUN_DEPS_DIR)/uws/uSockets/**/*.o $(BUN_DEPS_DIR)/uws/uSockets/*.a cd $(BUN_DEPS_DIR)/uws/uSockets/src && \ - $(CC) -fPIC $(CFLAGS) $(UWS_CC_FLAGS) -I$(BUN_DEPS_DIR)/uws/uSockets/src $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.c && \ + $(CC) -fPIC $(CFLAGS) $(UWS_CC_FLAGS) -emit-llvm -I$(BUN_DEPS_DIR)/uws/uSockets/src $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.c && \ cd $(BUN_DEPS_DIR)/uws/uSockets/src/eventing && \ - $(CC) -fPIC $(CFLAGS) $(UWS_CC_FLAGS) -I$(BUN_DEPS_DIR)/uws/uSockets/src $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.c && \ + $(CC) -fPIC $(CFLAGS) $(UWS_CC_FLAGS) -emit-llvm -I$(BUN_DEPS_DIR)/uws/uSockets/src $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.c && \ cd $(BUN_DEPS_DIR)/uws/uSockets/src/crypto && \ - $(CC) -fPIC $(CFLAGS) $(UWS_CC_FLAGS) -I$(BUN_DEPS_DIR)/uws/uSockets/src $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.c && \ - $(CXX) -fPIC $(CXXFLAGS) $(UWS_CXX_FLAGS) -Isrc $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.cpp; + $(CC) -fPIC $(CFLAGS) $(UWS_CC_FLAGS) -emit-llvm -I$(BUN_DEPS_DIR)/uws/uSockets/src $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.c && \ + $(CXX) -fPIC $(CXXFLAGS) $(UWS_CXX_FLAGS) -emit-llvm -Isrc $(UWS_LDFLAGS) -g $(DEFAULT_LINKER_FLAGS) $(PLATFORM_LINKER_FLAGS) $(OPTIMIZATION_LEVEL) -g -c *.cpp; cd $(BUN_DEPS_DIR)/uws/uSockets && \ $(AR) rcvs $(BUN_DEPS_OUT_DIR)/libusockets.a src/*.o src/eventing/*.o src/crypto/*.o uws: usockets - $(CXX) -fPIC -I$(BUN_DEPS_DIR)/uws/uSockets/src $(CLANG_FLAGS) $(CFLAGS) $(UWS_CXX_FLAGS) $(UWS_LDFLAGS) $(PLATFORM_LINKER_FLAGS) -c -I$(BUN_DEPS_DIR) $(BUN_DEPS_OUT_DIR)/libusockets.a $(BUN_DEPS_DIR)/libuwsockets.cpp -o $(BUN_DEPS_OUT_DIR)/libuwsockets.o + $(CXX) -emit-llvm -fPIC -I$(BUN_DEPS_DIR)/uws/uSockets/src $(CLANG_FLAGS) $(CFLAGS) $(UWS_CXX_FLAGS) $(UWS_LDFLAGS) $(PLATFORM_LINKER_FLAGS) -c -I$(BUN_DEPS_DIR) $(BUN_DEPS_OUT_DIR)/libusockets.a $(BUN_DEPS_DIR)/libuwsockets.cpp -o $(BUN_DEPS_OUT_DIR)/libuwsockets.o @@ -979,9 +979,12 @@ mimalloc: -DMI_OSX_ZONE=OFF \ -DMI_OSX_INTERPOSE=OFF \ -DMI_BUILD_OBJECT=ON \ - -DCMAKE_C_FLAGS="$(CFLAGS)" \ + -DMI_USE_CXX=ON \ + -DMI_OVERRIDE=ON \ + -DCMAKE_C_FLAGS="$(CFLAGS) -emit-llvm" \ + -DCMAKE_CXX_FLAGS="$(CFLAGS) -emit-llvm" \ ${MIMALLOC_OVERRIDE_FLAG} \ - -DMI_USE_CXX=OFF .\ + .\ && make -j $(CPUS); cp $(BUN_DEPS_DIR)/mimalloc/$(MIMALLOC_INPUT_PATH) $(BUN_DEPS_OUT_DIR)/$(MIMALLOC_FILE) @@ -1022,7 +1025,6 @@ bun-link-lld-release: $(BUN_RELEASE_BIN).o \ -o $(BUN_RELEASE_BIN) \ -W \ - -flto \ $(OPTIMIZATION_LEVEL) $(RELEASE_FLAGS) rm -rf $(BUN_RELEASE_BIN).dSYM cp $(BUN_RELEASE_BIN) $(BUN_RELEASE_BIN)-profile @@ -1061,6 +1063,7 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(OPTIMIZATION_LEVEL) \ -fno-exceptions \ -ferror-limit=1000 \ + -emit-llvm \ -g3 -c -o $@ $< $(OBJ_DIR)/%.o: $(SRC_DIR)/webcore/%.cpp @@ -1069,6 +1072,7 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/webcore/%.cpp $(OPTIMIZATION_LEVEL) \ -fno-exceptions \ -ferror-limit=1000 \ + -emit-llvm \ -g3 -c -o $@ $< sizegen: diff --git a/src/deps/libuwsockets.cpp b/src/deps/libuwsockets.cpp index 341675689..7eba32d44 100644 --- a/src/deps/libuwsockets.cpp +++ b/src/deps/libuwsockets.cpp @@ -1,7 +1,6 @@ -// This file is not included directly -// It is included in bindings.cpp #include "_libusockets.h" + #include <string_view> #include <uws/src/App.h> #include <uws/uSockets/src/internal/internal.h> diff --git a/src/deps/mimalloc b/src/deps/mimalloc -Subproject 817569dfad79732233fb86649c89e04387ce02e +Subproject 9e41263d39041aee3b647eff64d5ef4918a60ce diff --git a/src/javascript/jsc/bindings/ZigGlobalObject.cpp b/src/javascript/jsc/bindings/ZigGlobalObject.cpp index 5fbf97fc9..b41ff0ab5 100644 --- a/src/javascript/jsc/bindings/ZigGlobalObject.cpp +++ b/src/javascript/jsc/bindings/ZigGlobalObject.cpp @@ -56,19 +56,14 @@ #include "JavaScriptCore/VMEntryScope.h" #include "JavaScriptCore/WasmFaultSignalHandler.h" #include "wtf/Gigacage.h" -#include "wtf/StdLibExtras.h" #include "wtf/URL.h" #include "wtf/text/ExternalStringImpl.h" #include "wtf/text/StringCommon.h" #include "wtf/text/StringImpl.h" #include "wtf/text/StringView.h" #include "wtf/text/WTFString.h" -#include <unistd.h> #include "wtf/text/Base64.h" -#include <cstdlib> -#include <exception> -#include <iostream> // #include "JavaScriptCore/CachedType.h" #include "JavaScriptCore/JSCallbackObject.h" #include "JavaScriptCore/JSClassRef.h" @@ -91,7 +86,7 @@ #include "Process.h" -#include <JavaScriptCore/RemoteInspectorServer.h> +#include "JavaScriptCore/RemoteInspectorServer.h" using JSGlobalObject = JSC::JSGlobalObject; using Exception = JSC::Exception; @@ -125,7 +120,7 @@ extern "C" void JSCInitialize() JSC::Options::useSigillCrashAnalyzer() = true; JSC::Options::useWebAssembly() = true; JSC::Options::useSourceProviderCache() = true; - JSC::Options::useUnlinkedCodeBlockJettisoning() = false; + // JSC::Options::useUnlinkedCodeBlockJettisoning() = false; JSC::Options::exposeInternalModuleLoader() = true; JSC::Options::useSharedArrayBuffer() = true; JSC::Options::useJIT() = true; diff --git a/src/javascript/jsc/perf_hooks.exports.js b/src/javascript/jsc/perf_hooks.exports.js new file mode 100644 index 000000000..200272130 --- /dev/null +++ b/src/javascript/jsc/perf_hooks.exports.js @@ -0,0 +1,15 @@ +export var performance = globalThis.performance; + +export function PerformanceObserver() { + throw new Error("PerformanceEntry is not implemented yet"); +} + +export function PerformanceEntry() { + throw new Error("PerformanceEntry is not implemented yet"); +} + +export function PerformanceNodeTiming() { + throw new Error( + "PerformanceNodeTiming is not supported in this environment." + ); +} |