mirror of
https://github.com/bol-van/zapret.git
synced 2026-03-13 08:41:51 +00:00
optimize binaries size
This commit is contained in:
34
.github/workflows/build.yml
vendored
34
.github/workflows/build.yml
vendored
@@ -25,27 +25,13 @@ jobs:
|
|||||||
- arch: arm64
|
- arch: arm64
|
||||||
tool: aarch64-unknown-linux-musl
|
tool: aarch64-unknown-linux-musl
|
||||||
- arch: arm
|
- arch: arm
|
||||||
tool: arm-unknown-linux-musleabi
|
tool: armv7-unknown-linux-musleabi
|
||||||
# - arch: armhf
|
|
||||||
# tool: arm-unknown-linux-musleabihf
|
|
||||||
# - arch: armv7
|
|
||||||
# tool: armv7-unknown-linux-musleabi
|
|
||||||
# - arch: armv7hf
|
|
||||||
# tool: armv7-unknown-linux-musleabihf
|
|
||||||
# - arch: mips64el
|
|
||||||
# tool: mips64el-unknown-linux-musl
|
|
||||||
- arch: mips64
|
- arch: mips64
|
||||||
tool: mips64-unknown-linux-musl
|
tool: mips64-unknown-linux-musl
|
||||||
# - arch: mipsel
|
|
||||||
# tool: mipsel-unknown-linux-musl
|
|
||||||
- arch: mipselsf
|
- arch: mipselsf
|
||||||
tool: mipsel-unknown-linux-muslsf
|
tool: mipsel-unknown-linux-muslsf
|
||||||
# - arch: mips
|
|
||||||
# tool: mips-unknown-linux-musl
|
|
||||||
- arch: mipssf
|
- arch: mipssf
|
||||||
tool: mips-unknown-linux-muslsf
|
tool: mips-unknown-linux-muslsf
|
||||||
# - arch: ppc64
|
|
||||||
# tool: powerpc64-unknown-linux-musl
|
|
||||||
- arch: ppc
|
- arch: ppc
|
||||||
tool: powerpc-unknown-linux-musl
|
tool: powerpc-unknown-linux-musl
|
||||||
- arch: x86
|
- arch: x86
|
||||||
@@ -69,7 +55,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
ARCH: ${{ matrix.arch }}
|
ARCH: ${{ matrix.arch }}
|
||||||
TOOL: ${{ matrix.tool }}
|
TOOL: ${{ matrix.tool }}
|
||||||
REPO: ${{ matrix.arch == 'lexra' && matrix.repo || 'spvkgn/musl-cross' }}
|
REPO: ${{ matrix.arch == 'lexra' && matrix.repo || 'bol-van/musl-cross' }}
|
||||||
DIR: ${{ matrix.arch == 'lexra' && matrix.dir || matrix.tool }}
|
DIR: ${{ matrix.arch == 'lexra' && matrix.dir || matrix.tool }}
|
||||||
run: |
|
run: |
|
||||||
if [[ "$ARCH" == lexra ]]; then
|
if [[ "$ARCH" == lexra ]]; then
|
||||||
@@ -102,6 +88,15 @@ jobs:
|
|||||||
export STRIP=$TARGET-strip
|
export STRIP=$TARGET-strip
|
||||||
export PKG_CONFIG_PATH=$DEPS_DIR/lib/pkgconfig
|
export PKG_CONFIG_PATH=$DEPS_DIR/lib/pkgconfig
|
||||||
export STAGING_DIR=$RUNNER_TEMP
|
export STAGING_DIR=$RUNNER_TEMP
|
||||||
|
OPTIMIZE=-Oz
|
||||||
|
case "$ARCH" in
|
||||||
|
lexra)
|
||||||
|
OPTIMIZE=-Os
|
||||||
|
;;
|
||||||
|
arm)
|
||||||
|
CPU="-mcpu=cortex-a7 -mthumb"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# netfilter libs
|
# netfilter libs
|
||||||
wget -qO- https://www.netfilter.org/pub/libnfnetlink/libnfnetlink-1.0.2.tar.bz2 | tar -xj
|
wget -qO- https://www.netfilter.org/pub/libnfnetlink/libnfnetlink-1.0.2.tar.bz2 | tar -xj
|
||||||
@@ -111,7 +106,7 @@ jobs:
|
|||||||
for i in libmnl libnfnetlink libnetfilter_queue ; do
|
for i in libmnl libnfnetlink libnetfilter_queue ; do
|
||||||
(
|
(
|
||||||
cd $i-*
|
cd $i-*
|
||||||
CFLAGS="-Os -flto=auto $CFLAGS" \
|
CFLAGS="$OPTIMIZE $CPU -flto=auto $CFLAGS" \
|
||||||
./configure --prefix= --host=$TARGET --enable-static --disable-shared --disable-dependency-tracking
|
./configure --prefix= --host=$TARGET --enable-static --disable-shared --disable-dependency-tracking
|
||||||
make install -j$(nproc) DESTDIR=$DEPS_DIR
|
make install -j$(nproc) DESTDIR=$DEPS_DIR
|
||||||
)
|
)
|
||||||
@@ -123,7 +118,7 @@ jobs:
|
|||||||
xargs -I{} wget -qO- https://github.com/madler/zlib/archive/refs/tags/{}.tar.gz | tar -xz
|
xargs -I{} wget -qO- https://github.com/madler/zlib/archive/refs/tags/{}.tar.gz | tar -xz
|
||||||
(
|
(
|
||||||
cd zlib-*
|
cd zlib-*
|
||||||
CFLAGS="-Os -flto=auto $CFLAGS" \
|
CFLAGS="$OPTIMIZE $CPU -flto=auto $CFLAGS" \
|
||||||
./configure --prefix= --static
|
./configure --prefix= --static
|
||||||
make install -j$(nproc) DESTDIR=$DEPS_DIR
|
make install -j$(nproc) DESTDIR=$DEPS_DIR
|
||||||
)
|
)
|
||||||
@@ -134,7 +129,8 @@ jobs:
|
|||||||
install -Dm644 -t $DEPS_DIR/include/sys /usr/include/x86_64-linux-gnu/sys/queue.h /usr/include/sys/capability.h
|
install -Dm644 -t $DEPS_DIR/include/sys /usr/include/x86_64-linux-gnu/sys/queue.h /usr/include/sys/capability.h
|
||||||
|
|
||||||
# zapret
|
# zapret
|
||||||
CFLAGS="-DZAPRET_GH_VER=${{ github.ref_name }} -DZAPRET_GH_HASH=${{ github.sha }} -static-libgcc -static -I$DEPS_DIR/include $CFLAGS" \
|
OPTIMIZE=$OPTIMIZE \
|
||||||
|
CFLAGS="-DZAPRET_GH_VER=${{ github.ref_name }} -DZAPRET_GH_HASH=${{ github.sha }} -static-libgcc -static $CPU -I$DEPS_DIR/include $CFLAGS" \
|
||||||
LDFLAGS="-L$DEPS_DIR/lib $LDFLAGS" \
|
LDFLAGS="-L$DEPS_DIR/lib $LDFLAGS" \
|
||||||
make -C zapret -j$(nproc)
|
make -C zapret -j$(nproc)
|
||||||
tar -C zapret/binaries/my -cJf zapret-linux-$ARCH.tar.xz .
|
tar -C zapret/binaries/my -cJf zapret-linux-$ARCH.tar.xz .
|
||||||
|
|||||||
18
nfq/Makefile
18
nfq/Makefile
@@ -1,10 +1,14 @@
|
|||||||
CC ?= cc
|
CC ?= cc
|
||||||
OPTIMIZE ?= -Os
|
OPTIMIZE ?= -Os
|
||||||
CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto
|
CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto -ffunction-sections -fdata-sections
|
||||||
CFLAGS_SYSTEMD = -DUSE_SYSTEMD
|
CFLAGS_SYSTEMD = -DUSE_SYSTEMD
|
||||||
CFLAGS_BSD = -Wno-address-of-packed-member
|
CFLAGS_BSD = -Wno-address-of-packed-member
|
||||||
CFLAGS_CYGWIN = -Wno-address-of-packed-member -static
|
CFLAGS_CYGWIN = -Wno-address-of-packed-member -static
|
||||||
LDFLAGS_ANDROID = -llog
|
LDFLAGS += -flto=auto
|
||||||
|
LDFLAGS_ANDROID = -Wl,--gc-sections -llog
|
||||||
|
LDFLAGS_BSD = -Wl,--gc-sections
|
||||||
|
LDFLAGS_LINUX = -Wl,--gc-sections
|
||||||
|
LDFLAGS_MAC = -Wl,-dead_strip
|
||||||
LIBS_LINUX = -lz -lnetfilter_queue -lnfnetlink -lmnl
|
LIBS_LINUX = -lz -lnetfilter_queue -lnfnetlink -lmnl
|
||||||
LIBS_SYSTEMD = -lsystemd
|
LIBS_SYSTEMD = -lsystemd
|
||||||
LIBS_BSD = -lz
|
LIBS_BSD = -lz
|
||||||
@@ -18,20 +22,20 @@ SRC_FILES = *.c crypto/*.c
|
|||||||
all: nfqws
|
all: nfqws
|
||||||
|
|
||||||
nfqws: $(SRC_FILES)
|
nfqws: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) -o nfqws $(SRC_FILES) $(LIBS_LINUX) $(LDFLAGS)
|
$(CC) -s $(CFLAGS) -o nfqws $(SRC_FILES) $(LIBS_LINUX) $(LDFLAGS) $(LDFLAGS_LINUX)
|
||||||
|
|
||||||
systemd: $(SRC_FILES)
|
systemd: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) $(CFLAGS_SYSTEMD) -o nfqws $(SRC_FILES) $(LIBS_LINUX) $(LIBS_SYSTEMD) $(LDFLAGS)
|
$(CC) -s $(CFLAGS) $(CFLAGS_SYSTEMD) -o nfqws $(SRC_FILES) $(LIBS_LINUX) $(LIBS_SYSTEMD) $(LDFLAGS) $(LDFLAGS_LINUX)
|
||||||
|
|
||||||
android: $(SRC_FILES)
|
android: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) -o nfqws $(SRC_FILES) $(LIBS_LINUX) $(LDFLAGS) $(LDFLAGS_ANDROID)
|
$(CC) -s $(CFLAGS) -o nfqws $(SRC_FILES) $(LIBS_LINUX) $(LDFLAGS) $(LDFLAGS_ANDROID)
|
||||||
|
|
||||||
bsd: $(SRC_FILES)
|
bsd: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) $(CFLAGS_BSD) -o dvtws $(SRC_FILES) $(LIBS_BSD) $(LDFLAGS)
|
$(CC) -s $(CFLAGS) $(CFLAGS_BSD) -o dvtws $(SRC_FILES) $(LIBS_BSD) $(LDFLAGS) $(LDFLAGS_BSD)
|
||||||
|
|
||||||
mac: $(SRC_FILES)
|
mac: $(SRC_FILES)
|
||||||
$(CC) $(CFLAGS) $(CFLAGS_BSD) -o dvtwsa $(SRC_FILES) -target arm64-apple-macos10.8 $(LIBS_BSD) $(LDFLAGS)
|
$(CC) $(CFLAGS) $(CFLAGS_BSD) -o dvtwsa $(SRC_FILES) -target arm64-apple-macos10.8 $(LIBS_BSD) $(LDFLAGS) $(LDFLAGS_MAC)
|
||||||
$(CC) $(CFLAGS) $(CFLAGS_BSD) -o dvtwsx $(SRC_FILES) -target x86_64-apple-macos10.8 $(LIBS_BSD) $(LDFLAGS)
|
$(CC) $(CFLAGS) $(CFLAGS_BSD) -o dvtwsx $(SRC_FILES) -target x86_64-apple-macos10.8 $(LIBS_BSD) $(LDFLAGS) $(LDFLAGS_MAC)
|
||||||
strip dvtwsa dvtwsx
|
strip dvtwsa dvtwsx
|
||||||
lipo -create -output dvtws dvtwsx dvtwsa
|
lipo -create -output dvtws dvtwsx dvtwsa
|
||||||
rm -f dvtwsx dvtwsa
|
rm -f dvtwsx dvtwsa
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
CC ?= cc
|
CC ?= cc
|
||||||
OPTIMIZE ?= -Os
|
OPTIMIZE ?= -Os
|
||||||
CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto
|
CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto -ffunction-sections -fdata-sections
|
||||||
CFLAGS_SYSTEMD = -DUSE_SYSTEMD
|
CFLAGS_SYSTEMD = -DUSE_SYSTEMD
|
||||||
CFLAGS_BSD = -Wno-address-of-packed-member
|
CFLAGS_BSD = -Wno-address-of-packed-member
|
||||||
LDFLAGS_ANDROID = -llog
|
LDFLAGS += -flto=auto
|
||||||
|
LDFLAGS_ANDROID = -Wl,--gc-sections -llog
|
||||||
|
LDFLAGS_BSD = -Wl,--gc-sections
|
||||||
|
LDFLAGS_LINUX = -Wl,--gc-sections
|
||||||
|
LDFLAGS_MAC = -Wl,-dead_strip
|
||||||
LIBS = -lz -lpthread
|
LIBS = -lz -lpthread
|
||||||
LIBS_SYSTEMD = -lsystemd
|
LIBS_SYSTEMD = -lsystemd
|
||||||
LIBS_ANDROID = -lz
|
LIBS_ANDROID = -lz
|
||||||
@@ -13,20 +17,20 @@ SRC_FILES_ANDROID = $(SRC_FILES) andr/*.c
|
|||||||
all: tpws
|
all: tpws
|
||||||
|
|
||||||
tpws: $(SRC_FILES)
|
tpws: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) -o tpws $(SRC_FILES) $(LIBS) $(LDFLAGS)
|
$(CC) -s $(CFLAGS) -o tpws $(SRC_FILES) $(LIBS) $(LDFLAGS) $(LDFLAGS_LINUX)
|
||||||
|
|
||||||
systemd: $(SRC_FILES)
|
systemd: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) $(CFLAGS_SYSTEMD) -o tpws $(SRC_FILES) $(LIBS) $(LIBS_SYSTEMD) $(LDFLAGS)
|
$(CC) -s $(CFLAGS) $(CFLAGS_SYSTEMD) -o tpws $(SRC_FILES) $(LIBS) $(LIBS_SYSTEMD) $(LDFLAGS) $(LDFLAGS_LINUX)
|
||||||
|
|
||||||
android: $(SRC_FILES)
|
android: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) -o tpws $(SRC_FILES_ANDROID) $(LIBS_ANDROID) $(LDFLAGS) $(LDFLAGS_ANDROID)
|
$(CC) -s $(CFLAGS) -o tpws $(SRC_FILES_ANDROID) $(LIBS_ANDROID) $(LDFLAGS) $(LDFLAGS_ANDROID)
|
||||||
|
|
||||||
bsd: $(SRC_FILES)
|
bsd: $(SRC_FILES)
|
||||||
$(CC) -s $(CFLAGS) $(CFLAGS_BSD) -Iepoll-shim/include -o tpws $(SRC_FILES) epoll-shim/src/*.c $(LIBS) $(LDFLAGS)
|
$(CC) -s $(CFLAGS) $(CFLAGS_BSD) -Iepoll-shim/include -o tpws $(SRC_FILES) epoll-shim/src/*.c $(LIBS) $(LDFLAGS) $(LDFLAGS_BSD)
|
||||||
|
|
||||||
mac: $(SRC_FILES)
|
mac: $(SRC_FILES)
|
||||||
$(CC) $(CFLAGS) $(CFLAGS_BSD) -Iepoll-shim/include -Imacos -o tpwsa -target arm64-apple-macos10.8 $(SRC_FILES) epoll-shim/src/*.c $(LIBS) $(LDFLAGS)
|
$(CC) $(CFLAGS) $(CFLAGS_BSD) -Iepoll-shim/include -Imacos -o tpwsa -target arm64-apple-macos10.8 $(SRC_FILES) epoll-shim/src/*.c $(LIBS) $(LDFLAGS) $(LDFLAGS_MAC)
|
||||||
$(CC) $(CFLAGS) $(CFLAGS_BSD) -Iepoll-shim/include -Imacos -o tpwsx -target x86_64-apple-macos10.8 $(SRC_FILES) epoll-shim/src/*.c $(LIBS) $(LDFLAGS)
|
$(CC) $(CFLAGS) $(CFLAGS_BSD) -Iepoll-shim/include -Imacos -o tpwsx -target x86_64-apple-macos10.8 $(SRC_FILES) epoll-shim/src/*.c $(LIBS) $(LDFLAGS) $(LDFLAGS_MAC)
|
||||||
strip tpwsa tpwsx
|
strip tpwsa tpwsx
|
||||||
lipo -create -output tpws tpwsx tpwsa
|
lipo -create -output tpws tpwsx tpwsa
|
||||||
rm -f tpwsx tpwsa
|
rm -f tpwsx tpwsa
|
||||||
|
|||||||
Reference in New Issue
Block a user