From 66e2cc2bc402c9a34bef40aae92b64743103fca3 Mon Sep 17 00:00:00 2001 From: bol-van Date: Thu, 26 Feb 2026 10:10:28 +0300 Subject: [PATCH] pie experiment --- .github/workflows/build.yml | 6 ++++-- nfq2/Makefile | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 756c07b..d49427f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -104,6 +104,7 @@ jobs: fi MINSIZE="$OPTIMIZE $MINSIZE" + [ "$ARCH" == lexra ] && LEXRA=1 if [[ "$ARCH" == lexra ]] || [[ "$ARCH" == riscv64 ]] || [[ "$ARCH" == x86 ]] ; then # use classic lua wget -qO- https://www.lua.org/ftp/lua-${LUA_RELEASE}.tar.gz | tar -xz @@ -170,6 +171,7 @@ jobs: OPTIMIZE=$OPTIMIZE \ CFLAGS="-DZAPRET_GH_VER=${{ github.ref_name }} -DZAPRET_GH_HASH=${{ github.sha }} -static-libgcc -static -I$DEPS_DIR/include $CFLAGS" \ LDFLAGS="-L$DEPS_DIR/lib $LDFLAGS" \ + ${LEXRA:+CFLAGS_PIC= LDFLAGS_PIE=} \ make -C zapret2 LUA_JIT=$LJIT LUA_CFLAGS="$LCFLAGS" LUA_LIB="$LLIB" -j$(nproc) tar -C zapret2/binaries/my -cJf zapret2-linux-$ARCH.tar.xz . @@ -315,14 +317,14 @@ jobs: TARGET: ${{ matrix.target }} ARCH: ${{ matrix.arch }} CC: ${{ matrix.target }}-freebsd11-clang - MINSIZE: -Oz -flto=auto -ffunction-sections -fdata-sections + MINSIZE: -Os -flto=auto -ffunction-sections -fdata-sections LDMINSIZE: -Wl,--gc-sections -flto=auto run: | wget -qO- https://github.com/openresty/luajit2/archive/refs/tags/v${LUAJIT_RELEASE}.tar.gz | tar -xz ( cd luajit2-* - make BUILDMODE=static XCFLAGS=-DLUAJIT_DISABLE_FFI HOST_CC=gcc CC=$CC TARGET_CFLAGS="$MINSIZE $CFLAGS" TARGET_LDFLAGS="$LDMINSIZE $LDFLAGS" + make BUILDMODE=static XCFLAGS="-fPIC -DLUAJIT_DISABLE_FFI" HOST_CC=gcc CC=$CC TARGET_CFLAGS="$MINSIZE $CFLAGS -fPIC" TARGET_LDFLAGS="$LDMINSIZE $LDFLAGS" make install PREFIX= DESTDIR=$DEPS_DIR ) diff --git a/nfq2/Makefile b/nfq2/Makefile index ebafac3..1a4b31a 100644 --- a/nfq2/Makefile +++ b/nfq2/Makefile @@ -3,14 +3,16 @@ PKG_CONFIG ?= pkg-config OPTIMIZE ?= -Os MINSIZE ?= -flto=auto -ffunction-sections -fdata-sections CFLAGS += -std=gnu99 $(OPTIMIZE) $(MINSIZE) -CFLAGS_LINUX = -Wno-alloc-size-larger-than -fPIC +CFLAGS_PIC = -fPIC +CFLAGS_LINUX = -Wno-alloc-size-larger-than $(CFLAGS_PIC) CFLAGS_SYSTEMD = -DUSE_SYSTEMD -CFLAGS_BSD = -Wno-address-of-packed-member -fPIC +CFLAGS_BSD = -Wno-address-of-packed-member $(CFLAGS_PIC) CFLAGS_CYGWIN = -Wno-address-of-packed-member -static -Wl,--nxcompat CFLAGS_CYGWIN32 = CFLAGS_CYGWIN64 = -Wl,--dynamicbase -Wl,--high-entropy-va CFLAGS_UBSAN = -fsanitize=undefined,alignment -fno-sanitize-recover=undefined,alignment -LDFLAGS += -flto=auto -Wl,--gc-sections -pie +LDFLAGS_PIE = -pie +LDFLAGS += -flto=auto -Wl,--gc-sections $(LDFLAGS_PIE) LDFLAGS_ANDROID = -llog LIBS = LIBS_LINUX = -lz -lnetfilter_queue -lnfnetlink -lmnl -lm