Tags: wysaid/android-gpuimage-plus
Tags
fix: remove redundant -Wl,-z,relro,-z,now to fix UnsatisfiedLinkError… … on 16k-page-size builds (#563) * fix: remove -Wl,-z,relro,-z,now to fix UnsatisfiedLinkError on 16k-page-size builds Fixes #562 — crash on Samsung S21 Plus (Android 14) with 3.1.1-16k-min: dlopen failed: can't enable GNU RELRO protection for libCGEExt.so: Out of memory Root cause: target_link_options(CGE PUBLIC ... -Wl,-z,relro,-z,now) propagated these flags to CGEExt via PUBLIC linkage. With 16KB page alignment enabled, the linker pads PT_GNU_RELRO to 16KB boundaries, making MemSiz (~10KB) far exceed the actual RW LOAD segment size (~1.5KB). The Android dynamic linker then calls mprotect() over a region larger than what was mapped, which fails with ENOMEM on devices under memory pressure. Android (API 23+) enforces full RELRO by default; these flags are redundant. Changes: - CMakeLists.txt: remove -Wl,-z,relro,-z,now; change scope to PRIVATE so the remaining -fPIE -fPIC -pie flags do not propagate unnecessarily. The -Wl,-z,max-page-size=16384 block retains PUBLIC scope so CGEExt inherits 16KB alignment automatically via CMake interface propagation. - cgeDemo/build.gradle: add disableVideoModule() helper and make the testDemoWithGradleLibs dependency string dynamic (supports all four AAR variants: default, -16k, -min, -16k-min)." * fix: address review comments in CMakeLists.txt - Remove redundant Chinese comment '# 非 Debug 模式下添加 -O3' (keep English only) - Fix full-width comma (U+FF0C) to ASCII comma in RELRO note comment - Remove target_link_options(CGE PRIVATE -fPIE -fPIC -pie): these flags are inappropriate/redundant for a SHARED library; CMake handles -fPIC automatically * chore: bump version to 3.1.2
fix(workflow): fix prerelease version validation and add manual publi… …sh option - Fix version mismatch for prerelease tags: v3.1.1-beta1 now only requires base version (3.1.1) to match build.gradle versionName, not the full tag - Add publish_release boolean input to workflow_dispatch: allows publishing to GitHub Release page from any branch (useful for test releases) - Replace is_manual flag with is_publish flag for controlling release steps, making intent clearer - workflow_dispatch with publish_release=true now publishes to Release page, enabling non-master branch test releases without spamming master