Closed Gstalker closed 2 years ago
(My English is soooo poor, sorry for this) after downgrade my ndk to version 22.1.7171670, it works with no problem.
= note: ld: error: unable to find library -lgcc clang: error: linker command failed with exit code 1 (use -v to see invocation)
ndkVersion: 23.0.7421159 example code(from a history commit of my project):https://github.com/Gstalker/Ring-Zygisk/tree/3a0a67d15d1ab8167892528017d652c2fa33821b
Can we get a complete --verbose
log here? (A link to CI logs would be great.) It's not clear to me that the linker invocation is actually coming from the plugin or whether it's a build script that is failing.
Relevant debugging information will need to be inserted around https://github.com/mozilla/rust-android-gradle/blob/5bfc241fee3043991351105ddaa562f6b46afa77/plugin/src/main/resources/com/nishtahir/linker-wrapper.py#L12 to figure out what's really happening.
I try to make a CI logs, but it is hard for me to use github CI, sorry
Here is the Logs in my local
> Task :module:cargoBuildArm FAILED
Compiling zygisk v0.1.0 ({ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust)
error: linking with `{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.bat` failed: exit code: 1
|
linking with `{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.bat` failed: exit code: 1
= note: "cmd" "/c" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\build\\linker-wrapper\\linker-wrapper.bat" "-Wl,--version-script={USER_PATH}\\AppData\\Local\\Temp\\rustcvUHnsO\\list" "-Wl,--allow-multiple-definition" "-march=armv7-a" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.0.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.1.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.10.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.11.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.12.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.13.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.14.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.15.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.2.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.3.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.4.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.5.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.6.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.7.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.8.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.9.rcgu.o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.4mfcznytv2xg63e7.rcgu.rmeta" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.57ialo9axbf26x69.rcgu.o" "-Wl,--as-needed" "-L" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps" "-L" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\debug\\deps" "-L" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libbitflags-b6765a1a4569684f.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libjni-4ab0cdafbf45cdda.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libcesu8-85c48d9ebc4318e7.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\liblog-d6c38b8d8338e54b.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libcfg_if-3c1637ca4b6f6ad6.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libcombine-3235a713d46890f8.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libmemchr-006a3bf8106e0d7a.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libbytes-dfdafa2472549d35.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libthiserror-b912a930d89030d8.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libjni_sys-193021e46e96988a.rlib" "-Wl,--no-whole-archive" "-Wl,--start-group" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libstd-8c4523d9809ec6e2.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libpanic_unwind-467254c4f6e22a65.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libminiz_oxide-4fcd0002dff3932a.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libadler-8dcd7a460d8fb162.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libobject-b92cfab056efaf60.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libmemchr-c9b429067a590244.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libaddr2line-3d4e00de194bebc0.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libgimli-3fde4ee2ed4f8d90.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libstd_detect-31acb35107376ade.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_demangle-431f5c2de20af646.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libhashbrown-583a998c6656be4f.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_std_workspace_alloc-9f9e4b6f80465857.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libunwind-6a09e5fda0e39476.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcfg_if-891ebc7bca0deb3e.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\liblibc-8b00296bac1fa394.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\liballoc-effad6ab75e4cdcc.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_std_workspace_core-bc8a36b40cb8b3ae.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcore-5ca41b10dc2f79fe.rlib" "-Wl,--no-whole-archive" "-Wl,--end-group" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcompiler_builtins-bfbc9876b29e3fe7.rlib" "-Wl,-Bdynamic" "-ldl" "-llog" "-lgcc" "-ldl" "-lc" "-lm" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib" "-o" "{ROOT_PATH}\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libzygisk.so" "-shared" "-Wl,-zrelro,-znow" "-nodefaultlibs"
= note: ld: error: unable to find library -lgcc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust>"python" "{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.py" @{USER_PATH}\AppData\Local\Temp\rustcvUHnsO\linker-arguments
'D:\Android_sdk\ndk\23.0.7421159\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi26-clang.cmd' -Wl,-soname,libzygisk.so '@{USER_PATH}\AppData\Local\Temp\rustcvUHnsO\linker-arguments'
error: could not compile `zygisk` due to previous error
could not compile `zygisk` due to previous error
Here is another log, with gradlew --info
> Task :module:cargoBuildArm
Caching disabled for task ':module:cargoBuildArm' because:
Build cache is disabled
Task ':module:cargoBuildArm' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Starting process 'command 'rustc''. Working directory: {ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module Command: rustc --version --verbose
Successfully started process 'command 'rustc''
Default rust target triple: x86_64-pc-windows-msvc
Passing through project properties with prefix 'RUST_ANDROID_GRADLE_TARGET_ARMV7_LINUX_ANDROIDEABI_' (environment variables with prefix 'ORG_GRADLE_PROJECT_RUST_ANDROID_GRADLE_TARGET_ARMV7_LINUX_ANDROIDEABI_'
C/C++: android.ndkVersion from module build.gradle is [23.0.7421159]
C/C++: android.ndkPath from module build.gradle is not set
C/C++: ndk.dir in local.properties is not set
C/C++: Not considering ANDROID_NDK_HOME because support was removed after deprecation period.
C/C++: sdkFolder is D:\Android_sdk
Starting process 'command 'cargo''. Working directory: {ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust Command: cargo build --verbose --target=armv7-linux-androideabi
Successfully started process 'command 'cargo''
Fresh unicode-xid v0.2.2
Fresh cfg-if v1.0.0
Fresh bytes v1.1.0
Fresh jni-sys v0.3.0
Fresh cesu8 v1.1.0
Fresh bitflags v1.3.2
Fresh winapi v0.3.9
Fresh winapi-util v0.1.5
Fresh proc-macro2 v1.0.36
Fresh memchr v2.4.1
Fresh log v0.4.14
Fresh quote v1.0.16
Fresh same-file v1.0.6d
Fresh combine v4.6.3
Fresh walkdir v2.3.2
Fresh syn v1.0.89
Fresh thiserror-impl v1.0.30
Fresh thiserror v1.0.30
Fresh jni v0.19.0
Compiling zygisk v0.1.0 ({ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust)
Running `rustc --crate-name zygisk --edition=2021 src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,future-incompat --crate-type dylib --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=f2445d78e0b1fede --out-dir {ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps --target armv7-linux-androideabi -C linker={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.bat -C incremental={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\incremental -L dependency={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps -L dependency={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\debug\deps --extern bitflags={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps\libbitflags-b6765a1a4569684f.rlib --extern jni={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps\libjni-4ab0cdafbf45cdda.rlib --extern log={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps\liblog-d6c38b8d8338e54b.rlib`
error: linking with `{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.bat` failed: exit code: 1
|
linking with `{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.bat` failed: exit code: 1
= note: "cmd" "/c" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\build\\linker-wrapper\\linker-wrapper.bat" "-Wl,--version-script={USER_PATH}\\AppData\\Local\\Temp\\rustcS8iUYz\\list" "-Wl,--allow-multiple-definition" "-march=armv7-a" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.0.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.1.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.10.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.11.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.12.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.13.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.14.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.15.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.2.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.3.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.4.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.5.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.6.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.7.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.8.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.zygisk.159cc76b-cgu.9.rcgu.o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.4mfcznytv2xg63e7.rcgu.rmeta" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\zygisk.57ialo9axbf26x69.rcgu.o" "-Wl,--as-needed" "-L" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps" "-L" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\debug\\deps" "-L" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libbitflags-b6765a1a4569684f.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libjni-4ab0cdafbf45cdda.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libcesu8-85c48d9ebc4318e7.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\liblog-d6c38b8d8338e54b.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libcfg_if-3c1637ca4b6f6ad6.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libcombine-3235a713d46890f8.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libmemchr-006a3bf8106e0d7a.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libbytes-dfdafa2472549d35.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libthiserror-b912a930d89030d8.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libjni_sys-193021e46e96988a.rlib" "-Wl,--no-whole-archive" "-Wl,--start-group" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libstd-8c4523d9809ec6e2.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libpanic_unwind-467254c4f6e22a65.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libminiz_oxide-4fcd0002dff3932a.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libadler-8dcd7a460d8fb162.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libobject-b92cfab056efaf60.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libmemchr-c9b429067a590244.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libaddr2line-3d4e00de194bebc0.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libgimli-3fde4ee2ed4f8d90.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libstd_detect-31acb35107376ade.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_demangle-431f5c2de20af646.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libhashbrown-583a998c6656be4f.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_std_workspace_alloc-9f9e4b6f80465857.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libunwind-6a09e5fda0e39476.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcfg_if-891ebc7bca0deb3e.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\liblibc-8b00296bac1fa394.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\liballoc-effad6ab75e4cdcc.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_std_workspace_core-bc8a36b40cb8b3ae.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcore-5ca41b10dc2f79fe.rlib" "-Wl,--no-whole-archive" "-Wl,--end-group" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcompiler_builtins-bfbc9876b29e3fe7.rlib" "-Wl,-Bdynamic" "-ldl" "-llog" "-lgcc" "-ldl" "-lc" "-lm" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "{USER_PATH}\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib" "-o" "F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\armv7-linux-androideabi\\debug\\deps\\libzygisk.so" "-shared" "-Wl,-zrelro,-znow" "-nodefaultlibs"
= note: ld: error: unable to find library -lgcc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust>"python" "{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.py" @{USER_PATH}\AppData\Local\Temp\rustcS8iUYz\linker-arguments
'D:\Android_sdk\ndk\23.0.7421159\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi26-clang.cmd' -Wl,-soname,libzygisk.so '@{USER_PATH}\AppData\Local\Temp\rustcS8iUYz\linker-arguments'
error: could not compile `zygisk` due to previous error
Caused by:
process didn't exit successfully: `rustc --crate-name zygisk --edition=2021 src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,future-incompat --crate-type dylib --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=f2445d78e0b1fede --out-dir {ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps --target armv7-linux-androideabi -C linker={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.bat -C incremental={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\incremental -L dependency={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps -L dependency={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\debug\deps --extern bitflags={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps\libbitflags-b6765a1a4569684f.rlib --extern jni={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps\libjni-4ab0cdafbf45cdda.rlib --extern log={ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust\target\armv7-linux-androideabi\debug\deps\liblog-d6c38b8d8338e54b.rlib` (exit code: 1)
could not compile `zygisk` due to previous error
> Task :module:cargoBuildArm FAILED
:module:cargoBuildArm (Thread[Execution worker for ':',5,main]) completed. Took 4.172 secs.
:module:cargoBuildArm64 (Thread[Execution worker for ':',5,main]) started.
Caused by:
I think I see what's happening:
{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\module\rust>"python" "{ROOT_PATH}\Zygisk-Rust-ModuleTemplate\build\linker-wrapper\linker-wrapper.py" @{USER_PATH}\AppData\Local\Temp\rustcS8iUYz\linker-arguments
The linker wrapper that post #83 filters arguments is instead being given an argument file. That's perfectly valid but not something we've anticipated. We need to extend #83 to read @path
and update it in-place in order for this approach to work. Patches appreciated! We don't run our test suite on Windows yet, but at some point I'll try to do that so we can verify this is actually fixed.
@Gstalker, are the {ROOT_PATH}
identifiers direct from the output? Or are they a CI thing? Or something you've done manually? 'cuz I've not seen that before and I doubt Python will open(...)
that path transparently.
@ncalexan {ROOT_PATH} is modify by me manually. It is the path prefix of the project directory, just like G:\xxxxxxx\, and the original path which without modify may look like G:\xxxxxxx\Zygisk-Rust-ModuleTemplate.
And {USER_PATH} is the same, it the Windows user directory prefix in C:/, like C:\Users\BeautifulName
@ncalexan {ROOT_PATH} is modify by me manually. It is the path prefix of the project directory, just like G:\xxxxxxx, and the original path which without modify may look like G:\xxxxxxx\Zygisk-Rust-ModuleTemplate.
And {USER_PATH} is the same, it the Windows user directory prefix in C:/, like C:\Users\BeautifulName
Thanks for confirming. It's really not very hard to test local changes (https://github.com/mozilla/rust-android-gradle#testing-local-changes should be sufficient) so if you can try to address this by handling @file
, that would be great.
Otherwise, could you post the contents of one of those linker-arguments
files? It may be tricky to get your hands on it since it is a temporary file.
@ncalexan I got it! Below is the linker-wrapper.py which modified by myself The same as before, {TMP_DIR} is the path prefix, hidden by myself manually.
from __future__ import absolute_import, print_function, unicode_literals
import os
import pipes
import subprocess
import sys
args = [os.environ['RUST_ANDROID_GRADLE_CC'], os.environ['RUST_ANDROID_GRADLE_CC_LINK_ARG']] + sys.argv[1:]
with open("{TMP_DIR}\\args.pre", "w") as f:
f.write(' '.join(pipes.quote(arg) for arg in args))
with open("{TMP_DIR}\\linker-arguments.pre", "w") as f:
with open(args[-1][1:], "r") as argument:
arguments = argument.read()
f.write(arguments)
f.flush()
# The `gcc` library is not included starting from NDK version 23.
# Work around by using `unwind` replacement.
ndk_major_version = os.environ['CARGO_NDK_MAJOR_VERSION']
if ndk_major_version.isdigit():
if 23 <= int(ndk_major_version):
for i, arg in enumerate(args):
if arg == "-lgcc":
args[i] = "-lunwind"
with open("{TMP_DIR}\\args.post", "w") as f:
f.write(' '.join(pipes.quote(arg) for arg in args))
with open("{TMP_DIR}\\linker-arguments.post", "w") as f:
with open(args[-1][1:], "r") as argument:
arguments = argument.read()
f.write(arguments)
f.flush()
# This only appears when the subprocess call fails, but it's helpful then.
printable_cmd = ' '.join(pipes.quote(arg) for arg in args)
print(printable_cmd)
sys.exit(subprocess.call(args))
And below are output files:
args.pre:
'D:\Android_sdk\ndk\23.0.7421159\toolchains\llvm\prebuilt\windows-x86_64\bin\x86_64-linux-android26-clang.cmd' -Wl,-soname,libzygisk.so '@C:\Users\{USER_NAME}\AppData\Local\Temp\rustcJleiFS\linker-arguments'
args.post:
'D:\Android_sdk\ndk\23.0.7421159\toolchains\llvm\prebuilt\windows-x86_64\bin\x86_64-linux-android26-clang.cmd' -Wl,-soname,libzygisk.so '@C:\Users\23719\AppData\Local\Temp\rustcJleiFS\linker-arguments'
OK,it is easy to see that -lgcc
still in the linker-argument
after filltering
linker-arguments.pre
-Wl,--version-script=C:\\Users\\23719\\AppData\\Local\\Temp\\rustcJleiFS\\list
-Wl,--allow-multiple-definition
-m64
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.0.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.1.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.10.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.11.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.12.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.13.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.14.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.15.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.2.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.3.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.4.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.5.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.6.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.7.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.8.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.9.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.3i3asca2cumave35.rcgu.rmeta
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.6j6o3fhdblss3j9.rcgu.o
-Wl,--as-needed
-L
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps
-L
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\debug\\deps
-L
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib
-Wl,-Bstatic
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libbitflags-8c9911b1812b476b.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libjni-f10bca1bfbe30209.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libcesu8-aea5b6a45b281a2d.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\liblog-ccdc8e3687fe5bba.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libcfg_if-31764356964fe436.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libcombine-e3e0472680aaca03.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libmemchr-25fa5a0b1a313052.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libbytes-e0268b63d61d3430.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libthiserror-717d3cbe9f451cd7.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libjni_sys-05e2520188cad8f0.rlib
-Wl,--no-whole-archive
-Wl,--start-group
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libstd-a4882cb0d4bc6d41.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libpanic_unwind-a00a68073097bb15.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libminiz_oxide-fdaae57fe91e4b54.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libadler-ca91d140ce32563b.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libobject-4154b00927c28bbd.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libmemchr-919a4d26e7434778.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libaddr2line-27b60df7c2d68cdc.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libgimli-044ae9ac2947ed2f.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libstd_detect-2761d2391caa2aff.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\librustc_demangle-5804edcac15ba383.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libhashbrown-7c5a18471f11f006.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\librustc_std_workspace_alloc-5ed5e346f0849577.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libunwind-ec0d30659641517b.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libcfg_if-ce69a8261e432754.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\liblibc-50da2df61e5cceb7.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\liballoc-fac29970a1218220.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\librustc_std_workspace_core-1c11e58b82b7fac5.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libcore-0967ea83a66cfd26.rlib
-Wl,--no-whole-archive
-Wl,--end-group
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libcompiler_builtins-7f54304cfb051d7e.rlib
-Wl,-Bdynamic
-ldl
-llog
-lgcc
-ldl
-lc
-lm
-Wl,--eh-frame-hdr
-Wl,-znoexecstack
-L
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib
-o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libzygisk.so
-shared
-Wl,-zrelro,-znow
-nodefaultlibs
linker-arguments.post
-Wl,--version-script=C:\\Users\\23719\\AppData\\Local\\Temp\\rustcJleiFS\\list
-Wl,--allow-multiple-definition
-m64
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.0.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.1.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.10.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.11.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.12.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.13.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.14.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.15.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.2.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.3.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.4.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.5.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.6.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.7.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.8.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.zygisk.614ec69f-cgu.9.rcgu.o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.3i3asca2cumave35.rcgu.rmeta
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\zygisk.6j6o3fhdblss3j9.rcgu.o
-Wl,--as-needed
-L
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps
-L
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\debug\\deps
-L
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib
-Wl,-Bstatic
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libbitflags-8c9911b1812b476b.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libjni-f10bca1bfbe30209.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libcesu8-aea5b6a45b281a2d.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\liblog-ccdc8e3687fe5bba.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libcfg_if-31764356964fe436.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libcombine-e3e0472680aaca03.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libmemchr-25fa5a0b1a313052.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libbytes-e0268b63d61d3430.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libthiserror-717d3cbe9f451cd7.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libjni_sys-05e2520188cad8f0.rlib
-Wl,--no-whole-archive
-Wl,--start-group
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libstd-a4882cb0d4bc6d41.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libpanic_unwind-a00a68073097bb15.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libminiz_oxide-fdaae57fe91e4b54.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libadler-ca91d140ce32563b.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libobject-4154b00927c28bbd.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libmemchr-919a4d26e7434778.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libaddr2line-27b60df7c2d68cdc.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libgimli-044ae9ac2947ed2f.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libstd_detect-2761d2391caa2aff.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\librustc_demangle-5804edcac15ba383.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libhashbrown-7c5a18471f11f006.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\librustc_std_workspace_alloc-5ed5e346f0849577.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libunwind-ec0d30659641517b.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libcfg_if-ce69a8261e432754.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\liblibc-50da2df61e5cceb7.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\liballoc-fac29970a1218220.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\librustc_std_workspace_core-1c11e58b82b7fac5.rlib
-Wl,--no-whole-archive
-Wl,--whole-archive
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libcore-0967ea83a66cfd26.rlib
-Wl,--no-whole-archive
-Wl,--end-group
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib\\libcompiler_builtins-7f54304cfb051d7e.rlib
-Wl,-Bdynamic
-ldl
-llog
-lgcc
-ldl
-lc
-lm
-Wl,--eh-frame-hdr
-Wl,-znoexecstack
-L
C:\\Users\\23719\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-linux-android\\lib
-o
F:\\gradually\\Zygisk-Rust-ModuleTemplate\\module\\rust\\target\\x86_64-linux-android\\debug\\deps\\libzygisk.so
-shared
-Wl,-zrelro,-znow
-nodefaultlibs
@Gstalker this is very helpful. You should be able to finish this up, at least to test that the argument rewriting can work; we can get something into the plugin proper after we know that.
Modify the loop that does the -lgcc
rewriting to modify arguments
rather than args
: that's what is read from the file and what is written back to disk. If that addresses the issue, we can work on making this recursive, handling multiple arguments, etc.
This is a simplest resolv:
find out all the 4 folders containing file libunwind.a
, in my PC, it's C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\12.0.8\lib\linux\x86_64\
and more.
create 4 text
files named libgcc.a
in the same folders with this contents
INPUT(-lunwind)
@ssrlive that's a good workaround, and will address the issue for projects not using rust-android-gradle
. But we'll eventually get this fixed -- patches wanted!
This should be fixed in the just published 0.9.3 -- at least, the new Windows tests in CI succeed with NDK 23, and they didn't until I addressed this. Testing appreciated!
ndkVersion: 23.0.7421159 example code(from a history commit of my project):https://github.com/Gstalker/Ring-Zygisk/tree/3a0a67d15d1ab8167892528017d652c2fa33821b