@@ -32,7 +32,7 @@ MAKEFLAGS += -j$(CPUS)
3232
3333# Compiler and flags
3434CC = gcc
35- CARGO_ENV = CARGO_TARGET_DIR=$(RUST_TARGET_DIR ) RUSTFLAGS="-C opt-level=z -C lto=fat -C codegen-units=1 -C strip=symbols "
35+ CARGO_ENV = CARGO_TARGET_DIR=$(RUST_TARGET_DIR ) RUSTFLAGS="$( RUSTFLAGS ) "
3636ifeq ($(PLATFORM ) ,android)
3737 OPENSSL_INSTALL_DIR = $(BUILD_DIR)/openssl/$(PLATFORM)/$(ARCH)
3838 CARGO_ENV += OPENSSL_DIR=$(CURDIR)/$(OPENSSL_INSTALL_DIR)
@@ -50,16 +50,17 @@ VPATH = $(SRC_DIR)
5050
5151# Rust FFI library
5252MCP_FFI_LIB = $(RUST_TARGET_DIR ) /release/libmcp_ffi.a
53- LDFLAGS = -L$(RUST_TARGET_DIR ) /release -Wl,-dead_strip
53+ LDFLAGS = -L$(RUST_TARGET_DIR ) /release
5454
5555# Platform-specific settings
5656ifeq ($(PLATFORM ) ,windows)
5757 TARGET := $(DIST_DIR)/mcp.dll
58- LDFLAGS += -shared
58+ LDFLAGS += -shared -Wl,--gc-sections
5959 DEF_FILE := $(BUILD_DIR)/mcp.def
6060 STRIP = strip --strip-unneeded $@
6161 LIBS = -lmcp_ffi -lws2_32 -luserenv -lbcrypt -lntdll -lgcc -lgcc_eh -lpthread
6262 T_LIBS = -lm
63+ RUSTFLAGS = -C opt-level=z -C lto=fat -C codegen-units=1 -C strip=symbols
6364else ifeq ($(PLATFORM),macos)
6465 TARGET := $(DIST_DIR)/mcp.dylib
6566 MACOS_MIN_VERSION = 11.0
@@ -70,13 +71,14 @@ else ifeq ($(PLATFORM),macos)
7071 LDFLAGS += -arch $(ARCH)
7172 CFLAGS += -arch $(ARCH)
7273 endif
73- LDFLAGS += -dynamiclib -undefined dynamic_lookup -headerpad_max_install_names -mmacosx-version-min=$(MACOS_MIN_VERSION)
74+ LDFLAGS += -dynamiclib -undefined dynamic_lookup -headerpad_max_install_names -mmacosx-version-min=$(MACOS_MIN_VERSION) -Wl,-dead_strip
7475 CFLAGS += -mmacosx-version-min=$(MACOS_MIN_VERSION)
7576 CARGO_ENV += MACOSX_DEPLOYMENT_TARGET=$(MACOS_MIN_VERSION)
7677 CARGO = $(CARGO_ENV) cargo
7778 STRIP = strip -x -S -r $@
7879 LIBS = -lmcp_ffi -framework CoreFoundation -framework Security -lresolv
7980 T_LIBS = -lpthread -ldl -lm
81+ RUSTFLAGS = -C opt-level=z -C lto=fat -C codegen-units=1 -C strip=symbols
8082else ifeq ($(PLATFORM),android)
8183 ifndef ARCH
8284 $(error "Android ARCH must be set to ARCH=x86_64 or ARCH=arm64-v8a")
@@ -98,34 +100,38 @@ else ifeq ($(PLATFORM),android)
98100 CC = $(BIN)/$(ARCH)-linux-$(ANDROID_ABI)-clang
99101 OPENSSL = $(OPENSSL_INSTALL_DIR)/lib/libssl.a
100102 TARGET := $(DIST_DIR)/mcp.so
101- LDFLAGS += -shared -L$(OPENSSL_INSTALL_DIR)/lib
103+ LDFLAGS += -shared -L$(OPENSSL_INSTALL_DIR)/lib -Wl,--gc-sections
102104 CFLAGS += -fPIC -I$(OPENSSL_INSTALL_DIR)/include
103105 STRIP = $(BIN)/llvm-strip --strip-unneeded $@
104106 LIBS = -lmcp_ffi -ldl -lm -lssl -lcrypto
105107 T_LIBS = -ldl -lm
108+ RUSTFLAGS = -C opt-level=z -C codegen-units=1 -C strip=symbols
106109else ifeq ($(PLATFORM),ios)
107110 TARGET := $(DIST_DIR)/mcp.dylib
108111 SDK := -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=11.0
109- LDFLAGS += -dynamiclib $(SDK) -headerpad_max_install_names
112+ LDFLAGS += -dynamiclib $(SDK) -headerpad_max_install_names -Wl,-dead_strip
110113 CFLAGS += -arch arm64 $(SDK)
111114 STRIP = strip -x -S $@
112115 LIBS = -lmcp_ffi -framework CoreFoundation -framework Security -lSystem -lresolv
113116 T_LIBS = -lpthread -ldl -lm
117+ RUSTFLAGS = -C opt-level=z -C lto=fat -C codegen-units=1 -C strip=symbols
114118else ifeq ($(PLATFORM),ios-sim)
115119 TARGET := $(DIST_DIR)/mcp.dylib
116120 SDK := -isysroot $(shell xcrun --sdk iphonesimulator --show-sdk-path) -miphonesimulator-version-min=11.0
117- LDFLAGS += -arch x86_64 -arch arm64 -dynamiclib $(SDK) -headerpad_max_install_names
121+ LDFLAGS += -arch x86_64 -arch arm64 -dynamiclib $(SDK) -headerpad_max_install_names -Wl,-dead_strip
118122 CFLAGS += -arch x86_64 -arch arm64 $(SDK)
119123 STRIP = strip -x -S $@
120124 LIBS = -lmcp_ffi -framework CoreFoundation -framework Security -lSystem -lresolv
121125 T_LIBS = -lpthread -ldl -lm
126+ RUSTFLAGS = -C opt-level=z -C lto=fat -C codegen-units=1 -C strip=symbols
122127else # linux
123128 TARGET := $(DIST_DIR)/mcp.so
124- LDFLAGS += -shared
129+ LDFLAGS += -shared -Wl,--gc-sections
125130 CFLAGS += -fPIC
126131 STRIP = strip --strip-unneeded $@
127132 LIBS = -lmcp_ffi -lpthread -ldl -lm -lssl -lcrypto
128133 T_LIBS = -lpthread -ldl -lm
134+ RUSTFLAGS = -C opt-level=z -C codegen-units=1 -C strip=symbols
129135endif
130136
131137# Windows .def file generation
0 commit comments