step D+1: add third trivial C static lib (hello2.c)
Some checks failed
Mirror to GitHub / mirror (push) Failing after 38s
Build Release Binaries / build-amd64 (push) Failing after 3m51s

Step D (hello.c + getauxval_fix.c) launches cleanly. E.minus-1
(hello.c + getauxval_fix.c + cpp_smoke.c) crashes. All three are
plain-C trivial single-function files.

Theory: the regression is triggered by having 3 or more cc::Build
static libs in a Tauri Android cdylib, regardless of what the libs
contain. Test: clone hello.c as hello2.c (same content, different
symbol) and add a third cc::Build step compiling it. If this crashes,
the trigger is just the number of static libs. If it launches, there's
something magical about cpp_smoke.c specifically (unlikely — it was
near-identical content).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Siavash Sameni
2026-04-09 16:51:50 +04:00
parent 4c998312aa
commit 6dd62c94c9
2 changed files with 17 additions and 0 deletions

View File

@@ -32,6 +32,15 @@ fn main() {
cc::Build::new()
.file("cpp/getauxval_fix.c")
.compile("getauxval_fix");
// Step D+1: identical-content clone of hello.c as a third cc::Build
// static library. Tests the "any 3rd static lib triggers the crash"
// theory in isolation — no C++, no external deps, same C content as
// the known-working hello.c.
println!("cargo:rerun-if-changed=cpp/hello2.c");
cc::Build::new()
.file("cpp/hello2.c")
.compile("wzp_hello2");
}
tauri_build::build()

View File

@@ -0,0 +1,8 @@
/* hello2.c — identical content to hello.c, different file name + symbol.
* Purpose: test if adding a THIRD trivial C static lib via cc::Build
* regresses Step D regardless of what's in the file. Never called from Rust. */
#include <stdint.h>
int32_t wzp_hello2_stub(void) {
return 43;
}