diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d474aafe..608fbdda 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,27 +25,13 @@ jobs: - arch: arm64 tool: aarch64-unknown-linux-musl - arch: arm - tool: arm-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 + tool: armv7-unknown-linux-musleabi - arch: mips64 tool: mips64-unknown-linux-musl - # - arch: mipsel - # tool: mipsel-unknown-linux-musl - arch: mipselsf tool: mipsel-unknown-linux-muslsf - # - arch: mips - # tool: mips-unknown-linux-musl - arch: mipssf tool: mips-unknown-linux-muslsf - # - arch: ppc64 - # tool: powerpc64-unknown-linux-musl - arch: ppc tool: powerpc-unknown-linux-musl - arch: x86 @@ -69,7 +55,7 @@ jobs: env: ARCH: ${{ matrix.arch }} 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 }} run: | if [[ "$ARCH" == lexra ]]; then @@ -102,6 +88,15 @@ jobs: export STRIP=$TARGET-strip export PKG_CONFIG_PATH=$DEPS_DIR/lib/pkgconfig export STAGING_DIR=$RUNNER_TEMP + OPTIMIZE=-Oz + case "$ARCH" in + lexra) + OPTIMIZE=-Os + ;; + arm) + CPU="-mcpu=cortex-a7 -mthumb" + ;; + esac # netfilter libs 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 ( cd $i-* - CFLAGS="-Os -flto=auto $CFLAGS" \ + CFLAGS="$OPTIMIZE $CPU -flto=auto $CFLAGS" \ ./configure --prefix= --host=$TARGET --enable-static --disable-shared --disable-dependency-tracking 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 ( cd zlib-* - CFLAGS="-Os -flto=auto $CFLAGS" \ + CFLAGS="$OPTIMIZE $CPU -flto=auto $CFLAGS" \ ./configure --prefix= --static 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 # 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" \ make -C zapret -j$(nproc) tar -C zapret/binaries/my -cJf zapret-linux-$ARCH.tar.xz . diff --git a/nfq/Makefile b/nfq/Makefile index 97cf6bba..5a2d1fd6 100644 --- a/nfq/Makefile +++ b/nfq/Makefile @@ -1,10 +1,14 @@ CC ?= cc OPTIMIZE ?= -Os -CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto +CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto -ffunction-sections -fdata-sections CFLAGS_SYSTEMD = -DUSE_SYSTEMD CFLAGS_BSD = -Wno-address-of-packed-member 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_SYSTEMD = -lsystemd LIBS_BSD = -lz @@ -18,20 +22,20 @@ SRC_FILES = *.c crypto/*.c all: nfqws 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) - $(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) $(CC) -s $(CFLAGS) -o nfqws $(SRC_FILES) $(LIBS_LINUX) $(LDFLAGS) $(LDFLAGS_ANDROID) 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) - $(CC) $(CFLAGS) $(CFLAGS_BSD) -o dvtwsa $(SRC_FILES) -target arm64-apple-macos10.8 $(LIBS_BSD) $(LDFLAGS) - $(CC) $(CFLAGS) $(CFLAGS_BSD) -o dvtwsx $(SRC_FILES) -target x86_64-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) $(LDFLAGS_MAC) strip dvtwsa dvtwsx lipo -create -output dvtws dvtwsx dvtwsa rm -f dvtwsx dvtwsa diff --git a/tpws/Makefile b/tpws/Makefile index 35ebb45e..821a3fe4 100644 --- a/tpws/Makefile +++ b/tpws/Makefile @@ -1,9 +1,13 @@ CC ?= cc OPTIMIZE ?= -Os -CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto +CFLAGS += -std=gnu99 $(OPTIMIZE) -flto=auto -ffunction-sections -fdata-sections CFLAGS_SYSTEMD = -DUSE_SYSTEMD 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_SYSTEMD = -lsystemd LIBS_ANDROID = -lz @@ -13,20 +17,20 @@ SRC_FILES_ANDROID = $(SRC_FILES) andr/*.c all: tpws 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) - $(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) $(CC) -s $(CFLAGS) -o tpws $(SRC_FILES_ANDROID) $(LIBS_ANDROID) $(LDFLAGS) $(LDFLAGS_ANDROID) 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) - $(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 tpwsx -target x86_64-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) $(LDFLAGS_MAC) strip tpwsa tpwsx lipo -create -output tpws tpwsx tpwsa rm -f tpwsx tpwsa