mirror of https://github.com/OpenIPC/firmware.git
Optimize zerotier-one size by applying reasonable compilation flags (#515)
parent
bc3606dc8b
commit
62c1f88618
4
Makefile
4
Makefile
|
@ -132,9 +132,9 @@ $(OUT_DIR)/toolchain-params.mk: $(OUT_DIR)/.config $(SCRIPTS_DIR)/create_toolcha
|
|||
# 2. Elaborate how to compile wireguard-linux-compat under GCC 12 without
|
||||
# this patch
|
||||
define remove-patches
|
||||
$(if $(filter $(shell echo $(BR_VER)|cut -d. -f 1),2020),,rm general/package/all-patches/m4/0003-c-stack-stop-using-SIGSTKSZ.patch)
|
||||
$(if $(filter $(shell echo $(BR_VER)|cut -d. -f 1),2020),,-rm general/package/all-patches/m4/0003-c-stack-stop-using-SIGSTKSZ.patch)
|
||||
|
||||
$(if $(filter $(BR_VER),2020.02.12 2021.02.12),rm general/package/all-patches/wireguard-linux-compat/remove_fallthrough.patch)
|
||||
$(if $(filter $(BR_VER),2020.02.12 2021.02.12),-rm general/package/all-patches/wireguard-linux-compat/remove_fallthrough.patch)
|
||||
endef
|
||||
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
--- a/make-linux.mk 2022-04-29 20:05:45.861358153 +0300
|
||||
+++ b/make-linux.mk 2022-04-29 20:07:28.121520301 +0300
|
||||
@@ -25,8 +25,8 @@
|
||||
diff --git a/make-linux.mk b/make-linux.mk
|
||||
index 3941573c..d7905cb1 100644
|
||||
--- a/make-linux.mk
|
||||
+++ b/make-linux.mk
|
||||
@@ -25,7 +25,7 @@ TIMESTAMP=$(shell date +"%Y%m%d%H%M")
|
||||
# otherwise build into binary as done on Mac and Windows.
|
||||
ONE_OBJS+=osdep/PortMapper.o
|
||||
override DEFS+=-DZT_USE_MINIUPNPC
|
||||
-MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2..*"' /usr/include/miniupnpc/miniupnpc.h && echo 1)
|
||||
-#MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2.."' /usr/include/miniupnpc/miniupnpc.h && echo 1)
|
||||
+MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2..*"' $(STAGING_DIR)/usr/include/miniupnpc/miniupnpc.h && echo 1)
|
||||
+#MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2.."' $(STAGING_DIR)/usr/include/miniupnpc/miniupnpc.h && echo 1)
|
||||
#MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2.."' /usr/include/miniupnpc/miniupnpc.h && echo 1)
|
||||
ifeq ($(MINIUPNPC_IS_NEW_ENOUGH),1)
|
||||
override DEFS+=-DZT_USE_SYSTEM_MINIUPNPC
|
||||
LDLIBS+=-lminiupnpc
|
||||
@@ -34,7 +34,7 @@
|
||||
override DEFS+=-DMINIUPNP_STATICLIB -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DOS_STRING=\"Linux\" -DMINIUPNPC_VERSION_STRING=\"2.0\" -DUPNP_VERSION_STRING=\"UPnP/1.1\" -DENABLE_STRNATPMPERR
|
||||
@@ -34,7 +34,7 @@ else
|
||||
override DEFS+=-DMINIUPNP_STATICLIB -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DOS_STRING="\"Linux\"" -DMINIUPNPC_VERSION_STRING="\"2.0\"" -DUPNP_VERSION_STRING="\"UPnP/1.1\"" -DENABLE_STRNATPMPERR
|
||||
ONE_OBJS+=ext/miniupnpc/connecthostport.o ext/miniupnpc/igd_desc_parse.o ext/miniupnpc/minisoap.o ext/miniupnpc/minissdpc.o ext/miniupnpc/miniupnpc.o ext/miniupnpc/miniwget.o ext/miniupnpc/minixml.o ext/miniupnpc/portlistingparse.o ext/miniupnpc/receivedata.o ext/miniupnpc/upnpcommands.o ext/miniupnpc/upnpdev.o ext/miniupnpc/upnperrors.o ext/miniupnpc/upnpreplyparse.o
|
||||
endif
|
||||
-ifeq ($(wildcard /usr/include/natpmp.h),)
|
||||
|
@ -20,7 +20,31 @@
|
|||
ONE_OBJS+=ext/libnatpmp/natpmp.o ext/libnatpmp/getgateway.o
|
||||
else
|
||||
LDLIBS+=-lnatpmp
|
||||
@@ -316,8 +316,8 @@
|
||||
@@ -66,11 +66,11 @@ ifeq ($(ZT_DEBUG),1)
|
||||
# C25519 in particular is almost UNUSABLE in -O0 even on a 3ghz box!
|
||||
node/Salsa20.o node/SHA512.o node/C25519.o node/Poly1305.o: CXXFLAGS=-Wall -O2 -g -pthread $(INCLUDES) $(DEFS)
|
||||
else
|
||||
- CFLAGS?=-O3 -fstack-protector
|
||||
+ CFLAGS?=-Os
|
||||
override CFLAGS+=-Wall -Wno-deprecated -pthread $(INCLUDES) -DNDEBUG $(DEFS)
|
||||
- CXXFLAGS?=-O3 -fstack-protector
|
||||
+ CXXFLAGS?=-Os
|
||||
override CXXFLAGS+=-Wall -Wno-deprecated -std=c++17 -pthread $(INCLUDES) -DNDEBUG $(DEFS)
|
||||
- LDFLAGS=-pie -Wl,-z,relro,-z,now
|
||||
+ LDFLAGS=
|
||||
RUSTFLAGS=--release
|
||||
endif
|
||||
|
||||
@@ -291,7 +291,7 @@ override DEFS+=-D_MT_ALLOCATOR_H -D_POOL_ALLOCATOR_H -D_EXTPTR_ALLOCATOR_H -D_DE
|
||||
|
||||
# Static builds, which are currently done for a number of Linux targets
|
||||
ifeq ($(ZT_STATIC),1)
|
||||
- override LDFLAGS+=-static
|
||||
+ override LDFLAGS+=-static-libstdc++
|
||||
endif
|
||||
|
||||
# For building an official semi-static binary on CentOS 7
|
||||
@@ -314,8 +314,8 @@ ifeq ($(ZT_ARCHITECTURE),3)
|
||||
override CXXFLAGS+=-march=armv5t -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
|
||||
ZT_USE_ARM32_NEON_ASM_CRYPTO=0
|
||||
else
|
||||
|
@ -31,3 +55,23 @@
|
|||
ZT_USE_ARM32_NEON_ASM_CRYPTO=0
|
||||
endif
|
||||
endif
|
||||
@@ -335,8 +335,8 @@ ifeq ($(ZT_USE_ARM32_NEON_ASM_CRYPTO),1)
|
||||
endif
|
||||
|
||||
# Position Independence
|
||||
-override CFLAGS+=-fPIC -fPIE
|
||||
-override CXXFLAGS+=-fPIC -fPIE
|
||||
+override CFLAGS+=-flto
|
||||
+override CXXFLAGS+=-flto
|
||||
|
||||
.PHONY: all
|
||||
all: one
|
||||
@@ -360,7 +360,7 @@ zerotier-cli: zerotier-one
|
||||
$(ONE_OBJS): zeroidc
|
||||
|
||||
libzerotiercore.a: FORCE
|
||||
- make CFLAGS="-O3 -fstack-protector -fPIC" CXXFLAGS="-O3 -std=c++17 -fstack-protector -fPIC" $(CORE_OBJS)
|
||||
+ make CFLAGS="-Os" CXXFLAGS="-Os -std=c++17" $(CORE_OBJS)
|
||||
ar rcs libzerotiercore.a $(CORE_OBJS)
|
||||
ranlib libzerotiercore.a
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
ZEROTIER_ONE_VERSION = 7e46c8359231b4aa55c5d739462c4e5682d35755
|
||||
ZEROTIER_ONE_VERSION = 1.10.1
|
||||
ZEROTIER_ONE_SITE = $(call github,zerotier,ZeroTierOne,$(ZEROTIER_ONE_VERSION))
|
||||
ZEROTIER_ONE_LICENSE = BUSL-1.1
|
||||
ZEROTIER_ONE_LICENSE_FILES = LICENSE.txt
|
||||
|
@ -13,6 +13,10 @@ ZEROTIER_ONE_MAKE_OPTS = ZT_STATIC=1 ZT_SSO_SUPPORTED=0 \
|
|||
CC="$(TARGET_CC)" \
|
||||
CXX="$(TARGET_CXX)"
|
||||
|
||||
ZEROTIER_ONE_DEPENDENCIES = \
|
||||
libminiupnpc \
|
||||
libnatpmp
|
||||
|
||||
define ZEROTIER_ONE_BUILD_CMDS
|
||||
$(MAKE) $(ZEROTIER_ONE_MAKE_OPTS) -C $(@D) all
|
||||
endef
|
||||
|
|
Loading…
Reference in New Issue