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