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
|
# 2. Elaborate how to compile wireguard-linux-compat under GCC 12 without
|
||||||
# this patch
|
# this patch
|
||||||
define remove-patches
|
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
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
--- a/make-linux.mk 2022-04-29 20:05:45.861358153 +0300
|
diff --git a/make-linux.mk b/make-linux.mk
|
||||||
+++ b/make-linux.mk 2022-04-29 20:07:28.121520301 +0300
|
index 3941573c..d7905cb1 100644
|
||||||
@@ -25,8 +25,8 @@
|
--- 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.
|
# otherwise build into binary as done on Mac and Windows.
|
||||||
ONE_OBJS+=osdep/PortMapper.o
|
ONE_OBJS+=osdep/PortMapper.o
|
||||||
override DEFS+=-DZT_USE_MINIUPNPC
|
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.."' /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.."' $(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)
|
ifeq ($(MINIUPNPC_IS_NEW_ENOUGH),1)
|
||||||
override DEFS+=-DZT_USE_SYSTEM_MINIUPNPC
|
override DEFS+=-DZT_USE_SYSTEM_MINIUPNPC
|
||||||
LDLIBS+=-lminiupnpc
|
@@ -34,7 +34,7 @@ else
|
||||||
@@ -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
|
||||||
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
|
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
|
endif
|
||||||
-ifeq ($(wildcard /usr/include/natpmp.h),)
|
-ifeq ($(wildcard /usr/include/natpmp.h),)
|
||||||
|
@ -20,7 +20,31 @@
|
||||||
ONE_OBJS+=ext/libnatpmp/natpmp.o ext/libnatpmp/getgateway.o
|
ONE_OBJS+=ext/libnatpmp/natpmp.o ext/libnatpmp/getgateway.o
|
||||||
else
|
else
|
||||||
LDLIBS+=-lnatpmp
|
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
|
override CXXFLAGS+=-march=armv5t -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
|
||||||
ZT_USE_ARM32_NEON_ASM_CRYPTO=0
|
ZT_USE_ARM32_NEON_ASM_CRYPTO=0
|
||||||
else
|
else
|
||||||
|
@ -31,3 +55,23 @@
|
||||||
ZT_USE_ARM32_NEON_ASM_CRYPTO=0
|
ZT_USE_ARM32_NEON_ASM_CRYPTO=0
|
||||||
endif
|
endif
|
||||||
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_SITE = $(call github,zerotier,ZeroTierOne,$(ZEROTIER_ONE_VERSION))
|
||||||
ZEROTIER_ONE_LICENSE = BUSL-1.1
|
ZEROTIER_ONE_LICENSE = BUSL-1.1
|
||||||
ZEROTIER_ONE_LICENSE_FILES = LICENSE.txt
|
ZEROTIER_ONE_LICENSE_FILES = LICENSE.txt
|
||||||
|
@ -13,6 +13,10 @@ ZEROTIER_ONE_MAKE_OPTS = ZT_STATIC=1 ZT_SSO_SUPPORTED=0 \
|
||||||
CC="$(TARGET_CC)" \
|
CC="$(TARGET_CC)" \
|
||||||
CXX="$(TARGET_CXX)"
|
CXX="$(TARGET_CXX)"
|
||||||
|
|
||||||
|
ZEROTIER_ONE_DEPENDENCIES = \
|
||||||
|
libminiupnpc \
|
||||||
|
libnatpmp
|
||||||
|
|
||||||
define ZEROTIER_ONE_BUILD_CMDS
|
define ZEROTIER_ONE_BUILD_CMDS
|
||||||
$(MAKE) $(ZEROTIER_ONE_MAKE_OPTS) -C $(@D) all
|
$(MAKE) $(ZEROTIER_ONE_MAKE_OPTS) -C $(@D) all
|
||||||
endef
|
endef
|
||||||
|
|
Loading…
Reference in New Issue