commit 35bf8d6e9e0113647636411fd4b58c1d06fe94c5
parent 83862134a46c7b25f610169af3823afb617537af
Author: Ryan Sepassi <rsepassi@gmail.com>
Date: Mon, 4 May 2026 12:31:38 -0700
boot4: aarch64 musl patches — 153 -> 20 skips, blocked at link
Add aarch64 to the musl patch set, mirroring the x86_64 strategy:
route every inline-asm site that arm64-asm.c phase 1+2 can't yet
handle through pure-asm trampolines or extern function calls.
Patch additions in vendor/upstream/musl-1.2.5-tcc.patch:
- arch/aarch64/syscall_arch.h static __inline wrappers calling __syscall
- src/internal/aarch64/syscall.s C-ABI -> kernel-ABI shuffle, svc 0
- arch/aarch64/pthread_arch.h __get_tp as extern
- src/internal/aarch64/get_tp.s mrs x0, tpidr_el0 (raw .word, mrs
is outside phase 1+2)
- arch/aarch64/atomic_arch.h a_ll/a_sc/a_barrier/... as externs;
musl derives a_cas/a_swap/a_fetch_add from them
- src/internal/aarch64/atomic.s ldaxr/stlxr/dmb/rbit/clz as raw
.word, control flow as plain mnemonics
- arch/aarch64/crt_arch.h drop adrp + :lo12: (static-only, _DYNAMIC
unused); drop bic-imm alignment (Linux entry guarantees it)
scripts/boot4.sh aarch64 deletion sweep: src/math/aarch64/*.c,
string/{memset,memcpy} and fenv/aarch64/*, plus the thread/setjmp/
signal aarch64 .s files whose ldp/stp or CONDBR19 reloc forms are
outside phase 2. Portable C in src/{math,string,fenv} takes over;
libc.a will lack clone, syscall_cp, setjmp/longjmp/sigsetjmp.
Result: aarch64 compile now reaches 1251/1271 sources. Of the 20
remaining skips, 17 share one tcc 0.9.26 aarch64 codegen bug
(`store(0, (1011, 5130, 0)) / assert fail: 0`) that blocks
__libc_start_main + both malloc implementations + a few TLS-using
files. Hello can't link without __libc_start_main / __libc_free, so
end-to-end is still red on aarch64. amd64 still green (regenerated
patch is additive). docs/MUSL.md updated with the residual
codegen-bug bucket and two follow-up paths (fix tcc, or add a
replacement libc shim).
Diffstat:
3 files changed, 610 insertions(+), 119 deletions(-)
diff --git a/docs/MUSL.md b/docs/MUSL.md
@@ -40,25 +40,92 @@ The container is the same `boot2-scratch:$ARCH` boot3 uses (FROM scratch
| arch | dispatch | musl patch | va_list shim | end-to-end |
|---------|:--:|:--:|:--:|:--:|
| amd64 | ✓ | ✓ | ✓ | ✓ verified |
-| aarch64 | ✓ | partial — shared hunks (features.h, syscall.h, lookup\*) apply; `arch/x86_64/syscall_arch.h` replacement does NOT translate. aarch64's `syscall_arch.h` keeps its inline-asm syscalls and tcc will reject them. | placeholder ([scripts/boot4-musl-shim-aarch64.h](../scripts/boot4-musl-shim-aarch64.h)) — mirrors tcc 0.9.26's AAPCS register-save struct, untested | not yet |
-| riscv64 | ✓ | partial — same shared-hunk caveat | placeholder ([scripts/boot4-musl-shim-riscv64.h](../scripts/boot4-musl-shim-riscv64.h)) — `typedef char *__builtin_va_list;`, may conflict with tcc's builtin keyword recognition | not yet |
-
-In-tcc assembler coverage is no longer a blocker: arm64-asm.c
-(`scripts/simple-patches/tcc-0.9.26/files/arm64-asm.c`,
-[docs/TCC-ARM64-ASM.md](TCC-ARM64-ASM.md)) makes `.S` inputs work for
-all four targets in-container, no host cross-asm.
-
-The first concrete tasks for non-amd64 enablement:
-
-1. Per-arch syscall_arch.h replacement + asm trampoline (mirroring
- what `arch/x86_64/syscall_arch.h` + `src/internal/x86_64/syscall.s`
- do in the current patch). Needed because tcc has no
- register-asm-variable extension.
-2. Validate the va_list shim against the first compile failure and
- adjust to the actual arch va_list ABI.
-3. Survey arch-specific overrides under `src/{math,fenv,signal}/$ARCH/`
- that use inline asm tcc rejects (the x86_64 patch deletes a similar
- set; aarch64/riscv64 will need their own audit).
+| aarch64 | ✓ | aarch64-targeted patches landed (syscall trampoline, atomic externs, get_tp helper, replacement crt_arch.h, deletion sweep). Compile reaches 1251/1271; 20 skips. | mirrors tcc 0.9.26 AAPCS register-save struct, gets past the `va_list` typename | **blocks at hello link** — load-bearing files hit tcc codegen bugs (see below) |
+| riscv64 | ✓ | partial — same shared-hunk caveat | placeholder ([scripts/boot4-musl-shim-riscv64.h](../scripts/boot4-musl-shim-riscv64.h)) — `typedef char *__builtin_va_list;`, may conflict with tcc's builtin keyword recognition | not yet exercised |
+
+### aarch64 status after patch round 1
+
+After landing the 8-patch set above, the skip count drops from 153
+to 20. All asm-shaped failures are gone (inline-asm operands, dsb
+named-options, missing mnemonics, CONDBR19 relocs); what remains is a
+single tcc 0.9.26 aarch64 codegen bug:
+
+```
+store(0, (1011, 5130, 0))
+assert fail: 0
+```
+
+reproducing across **17 of the 20 remaining skips** (the other 3 are
+long-double, same as amd64). It fires from a tccgen-level store
+assertion that doesn't reference a line number, so the trigger is
+inferred. The 17 affected files include `__libc_start_main`,
+`__init_tls`, `__stack_chk_fail`, `abort`, the entire `mallocng/*` and
+`oldmalloc/malloc.c`, `pthread_join`, `asctime_r`, plus a few math
+sources; both malloc implementations fail the same way, so swapping
+allocators doesn't help.
+
+Hello can't link without `__libc_start_main` and `__libc_free`, both
+in the codegen-bug bucket. Closing the gap requires either:
+
+1. Fixing the codegen path in tcc 0.9.26 aarch64 (out of scope for the
+ musl patch).
+2. Writing replacement libc internals as a separate compilation unit:
+ minimal `__libc_start_main` (no TLS init, no `__init_ssp`, no
+ inline-asm barrier), a tiny mmap-or-bss-backed bump allocator
+ exporting `malloc/free/calloc/realloc/aligned_alloc/__libc_free/
+ malloc_usable_size`, and a stub `__errno_location` if needed once
+ TLS init is bypassed. Substantial and brittle (printf et al. assume
+ musl's full init).
+
+### aarch64 skip taxonomy (pre-patch snapshot — 153 skipped sources)
+
+Compiling each skipped file in isolation and bucketing the first error:
+
+| count | bucket | category |
+|------:|--------|----------|
+| **79** | `pthread_arch.h:4` / `atomic_arch.h:5,73` "ARM64 inline asm operands not implemented yet" | arm64-asm.c phase 3 not started — input/output operand constraint plumbing (`subst_asm_operand`, `asm_compute_constraints`). Same root cause as `pthread_arch.h`'s `__get_tp` (uses `"=r"(tp)`), atomic primitives (`a_ll`/`a_sc`/`a_cas`), and the entire `arch/aarch64/syscall_arch.h` surface (every `__syscallN`). |
+| **30** | `arch/aarch64/<math>.c` "invalid operand reference after %" | parser doesn't accept the `%w0` width-modifier form for 32-bit views of x-registers; phase-3-adjacent. |
+| **17** | `atomic_arch.h:20` "dsb/dmb/isb: expected #imm option" | mnemonic is recognized but the parser wants `#imm`; musl writes `dmb ish` (the named option form). |
+| **17** | `store(0, (1011, 5130, 0))` and `assert fail: f == VT_FLOAT \|\| ...` / `assert fail: 0` | tcc internal codegen / assertion failures on aarch64 — NOT asm-related. Files: TLS init, abort, malloc, locale, errno-via-TLS. Pre-existing tcc 0.9.26 aarch64 codegen bugs. |
+| **5** | "known instruction expected" — scattered: `crt_arch.h`, `clone.s`, `__set_thread_area.s`, `memset.S`, `fenv.s` | mnemonics outside phase 1+2. `crt_arch.h:15` is the load-bearing one (uses `adrp` + `:lo12:` reloc). |
+| **3** | `CONDBR19`/`TSTBR14` reloc unsupported (`b.cond`/`cbz`/`cbnz`/`tbz` to extern targets) | per `docs/TCC-ARM64-ASM.md` phase 2: in-section only; extern targets need entries in `arm64-link.c`. |
+| **2** | `ldp/stp: expected register` (setjmp/longjmp) | parsing of pre/post-indexed forms not yet covered. |
+| **1** | `pow_data.c` "initializer element is not constant" | same long-double constant-folding bug as on amd64. |
+| **1** | crt step: `arch/aarch64/crt_arch.h:15: known instruction expected` | (separate from the 153 — kills the `crt1.o` build.) |
+
+### Two paths forward for aarch64
+
+The 109 inline-asm failures (79 + 30) plus the 17 `dsb` failures are
+~80% of the wall. All three sit in the assembler/parser. Two ways to
+clear them:
+
+1. **Patch musl** to bypass the failing inline-asm sites (mirrors what
+ the x86_64 patch does for syscall_arch.h). Concretely:
+ - new `arch/aarch64/syscall_arch.h` calling pure-asm trampolines, +
+ `src/internal/aarch64/syscall.s` providing `__syscall0`..`__syscall6`
+ - new `arch/aarch64/atomic_arch.h` using `__sync_*` builtins or a
+ pure-asm helper file
+ - tweak `pthread_arch.h`'s `__get_tp` to call a one-instruction asm
+ helper (`mrs x0, tpidr_el0; ret`)
+ - delete `src/math/aarch64/*.c` overrides (the portable C falls
+ back, like the amd64 patch deletes `src/math/x86_64/*.c`)
+ - drop the rest of `src/{thread,setjmp,signal,fenv,string}/aarch64/*.{s,S}`
+ and let the portable C versions cover them
+ - skip the 17 tcc-codegen-bug files like the long-double set
+
+ Scope: similar to the existing musl patch — a few hundred lines of
+ replacement code + a deletion list. Boot4 reaches a working hello.
+
+2. **Finish arm64-asm.c phase 3** ([docs/TCC-ARM64-ASM.md](TCC-ARM64-ASM.md)).
+ Then nearly all 109 + 17 + a few mnemonics resolve themselves and
+ musl's aarch64 source is consumed unmodified. Larger lift but
+ higher leverage — also unlocks any other inline-asm-using code we
+ compile later. Doesn't address the 17 codegen bugs, which still
+ need either tcc fixes or per-file skips.
+
+The 17 codegen-bug files are the irreducible residual either way — tcc
+0.9.26 has aarch64 codegen issues that would need fixing in the
+compiler itself.
## Inputs
diff --git a/scripts/boot4.sh b/scripts/boot4.sh
@@ -174,12 +174,29 @@ tar xzf "$IN/musl.tar.gz"
patch -p1 < "$IN/musl.patch"
# Belt-and-braces: ensure files marked "deleted file mode" really vanish
# (busybox patch leaves 0-byte stubs for delete-mode hunks). The deleted
-# files are all x86_64-only overrides — harmless to remove on any arch
-# build since they only matter when MUSL_ARCH=x86_64.
+# files are all per-arch overrides — harmless to remove on any arch
+# build since they only matter when MUSL_ARCH matches.
rm -rf musl-1.2.5/src/complex
rm -f musl-1.2.5/src/fenv/x86_64/fenv.s
rm -f musl-1.2.5/src/math/x86_64/*.c
rm -f musl-1.2.5/src/signal/x86_64/sigsetjmp.s
+# aarch64 sweep: arch-specific overrides whose inline asm or mnemonics
+# arm64-asm.c phase 1+2 can't yet handle. Portable C in src/{math,
+# string,fenv} takes over for the .c/.S files in those trees; the
+# thread/setjmp/signal .s files have no portable fallback (libc.a will
+# lack clone, syscall_cp, setjmp/longjmp/sigsetjmp, etc.) — fine for
+# hello.c, revisit when a future test references them.
+rm -f musl-1.2.5/src/math/aarch64/*.c
+rm -f musl-1.2.5/src/string/aarch64/memset.S
+rm -f musl-1.2.5/src/string/aarch64/memcpy.S
+rm -f musl-1.2.5/src/fenv/aarch64/fenv.s
+rm -f musl-1.2.5/src/thread/aarch64/clone.s
+rm -f musl-1.2.5/src/thread/aarch64/syscall_cp.s
+rm -f musl-1.2.5/src/thread/aarch64/__set_thread_area.s
+rm -f musl-1.2.5/src/thread/aarch64/__unmapself.s
+rm -f musl-1.2.5/src/setjmp/aarch64/setjmp.s
+rm -f musl-1.2.5/src/setjmp/aarch64/longjmp.s
+rm -f musl-1.2.5/src/signal/aarch64/sigsetjmp.s
# ── Stage C: configure + generate musl headers ────────────────────────
cd /tmp/musl-1.2.5
diff --git a/vendor/upstream/musl-1.2.5-tcc.patch b/vendor/upstream/musl-1.2.5-tcc.patch
@@ -1,4 +1,287 @@
-diff -urN orig_musl/musl-1.2.5/arch/x86_64/syscall_arch.h /tmp/clean_musltcc/arch/x86_64/syscall_arch.h
+diff -urN orig_musl/musl-1.2.5/arch/aarch64/atomic_arch.h patched_musl/musl-1.2.5/arch/aarch64/atomic_arch.h
+--- a/musl-1.2.5/arch/aarch64/atomic_arch.h 2024-02-29 18:07:33
++++ b/musl-1.2.5/arch/aarch64/atomic_arch.h 2026-05-04 12:05:56
+@@ -1,82 +1,27 @@
+-#define a_ll a_ll
+-static inline int a_ll(volatile int *p)
+-{
+- int v;
+- __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p));
+- return v;
+-}
++/* tcc-build aarch64 atomic_arch.h replacement.
++ *
++ * Stock musl's atomic primitives are inline asm with output operands
++ * and the `dmb ish` named option — none of which arm64-asm.c phase
++ * 1+2 handles. Declare a_ll / a_sc / a_barrier / a_ll_p / a_sc_p /
++ * a_ctz_64 / a_clz_64 as externs implemented in
++ * src/internal/aarch64/atomic.s; musl's src/internal/atomic.h derives
++ * a_cas / a_swap / a_fetch_add / a_or / a_and / a_inc / a_dec / a_store
++ * from a_ll + a_sc automatically.
++ *
++ * Phase 3 of arm64-asm.c will let us inline these again. */
+
+-#define a_sc a_sc
+-static inline int a_sc(volatile int *p, int v)
+-{
+- int r;
+- __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory");
+- return !r;
+-}
++extern int a_ll (volatile int *);
++extern int a_sc (volatile int *, int);
++extern void a_barrier (void);
++extern void *a_ll_p (volatile void *);
++extern int a_sc_p (volatile int *, void *);
++extern int a_ctz_64 (unsigned long long);
++extern int a_clz_64 (unsigned long long);
+
++#define a_ll a_ll
++#define a_sc a_sc
+ #define a_barrier a_barrier
+-static inline void a_barrier()
+-{
+- __asm__ __volatile__ ("dmb ish" : : : "memory");
+-}
+-
+-#define a_cas a_cas
+-static inline int a_cas(volatile int *p, int t, int s)
+-{
+- int old;
+- do {
+- old = a_ll(p);
+- if (old != t) {
+- a_barrier();
+- break;
+- }
+- } while (!a_sc(p, s));
+- return old;
+-}
+-
+-#define a_ll_p a_ll_p
+-static inline void *a_ll_p(volatile void *p)
+-{
+- void *v;
+- __asm__ __volatile__ ("ldaxr %0, %1" : "=r"(v) : "Q"(*(void *volatile *)p));
+- return v;
+-}
+-
+-#define a_sc_p a_sc_p
+-static inline int a_sc_p(volatile int *p, void *v)
+-{
+- int r;
+- __asm__ __volatile__ ("stlxr %w0,%2,%1" : "=&r"(r), "=Q"(*(void *volatile *)p) : "r"(v) : "memory");
+- return !r;
+-}
+-
+-#define a_cas_p a_cas_p
+-static inline void *a_cas_p(volatile void *p, void *t, void *s)
+-{
+- void *old;
+- do {
+- old = a_ll_p(p);
+- if (old != t) {
+- a_barrier();
+- break;
+- }
+- } while (!a_sc_p(p, s));
+- return old;
+-}
+-
+-#define a_ctz_64 a_ctz_64
+-static inline int a_ctz_64(uint64_t x)
+-{
+- __asm__(
+- " rbit %0, %1\n"
+- " clz %0, %0\n"
+- : "=r"(x) : "r"(x));
+- return x;
+-}
+-
+-#define a_clz_64 a_clz_64
+-static inline int a_clz_64(uint64_t x)
+-{
+- __asm__("clz %0, %1" : "=r"(x) : "r"(x));
+- return x;
+-}
++#define a_ll_p a_ll_p
++#define a_sc_p a_sc_p
++#define a_ctz_64 a_ctz_64
++#define a_clz_64 a_clz_64
+diff -urN orig_musl/musl-1.2.5/arch/aarch64/crt_arch.h patched_musl/musl-1.2.5/arch/aarch64/crt_arch.h
+--- a/musl-1.2.5/arch/aarch64/crt_arch.h 2024-02-29 18:07:33
++++ b/musl-1.2.5/arch/aarch64/crt_arch.h 2026-05-04 12:09:24
+@@ -1,3 +1,17 @@
++/* tcc-build aarch64 crt_arch.h replacement.
++ *
++ * Stock musl uses `adrp x1, _DYNAMIC` + `add x1, x1, #:lo12:_DYNAMIC`
++ * to pass _DYNAMIC's address to __dls2/__libc_start_main; arm64-asm.c
++ * phase 1+2 has neither the `adrp` mnemonic nor `:lo12:` ELF reloc
++ * syntax. boot4 only links static binaries — _DYNAMIC is unused — so
++ * pass NULL instead.
++ *
++ * We also omit the `and sp, x0, #-16` alignment step: `bic` in phase 2
++ * only handles the register form (bitmask-immediate is rejected with
++ * "invert form requires a register"), and Linux/AAPCS already guarantees
++ * a 16-byte-aligned sp at process entry. Phase 3 will let us reinstate
++ * the explicit alignment for safety.
++ */
+ __asm__(
+ ".text \n"
+ ".global " START "\n"
+@@ -6,10 +20,6 @@
+ " mov x29, #0\n"
+ " mov x30, #0\n"
+ " mov x0, sp\n"
+-".weak _DYNAMIC\n"
+-".hidden _DYNAMIC\n"
+-" adrp x1, _DYNAMIC\n"
+-" add x1, x1, #:lo12:_DYNAMIC\n"
+-" and sp, x0, #-16\n"
++" mov x1, #0\n"
+ " b " START "_c\n"
+ );
+diff -urN orig_musl/musl-1.2.5/arch/aarch64/pthread_arch.h patched_musl/musl-1.2.5/arch/aarch64/pthread_arch.h
+--- a/musl-1.2.5/arch/aarch64/pthread_arch.h 2024-02-29 18:07:33
++++ b/musl-1.2.5/arch/aarch64/pthread_arch.h 2026-05-04 12:05:28
+@@ -1,9 +1,12 @@
+-static inline uintptr_t __get_tp()
+-{
+- uintptr_t tp;
+- __asm__ ("mrs %0,tpidr_el0" : "=r"(tp));
+- return tp;
+-}
++/* tcc-build aarch64 pthread_arch.h replacement.
++ *
++ * Stock musl emits `mrs %0, tpidr_el0` as inline asm with output
++ * operand. tcc 0.9.26's arm64-asm.c phase 1+2 has no operand
++ * constraint plumbing, so route through extern __get_tp implemented
++ * in src/internal/aarch64/get_tp.s. Single-instruction overhead;
++ * inlining is recovered by phase 3 once it lands. */
++
++extern unsigned long __get_tp(void);
+
+ #define TLS_ABOVE_TP
+ #define GAP_ABOVE_TP 16
+diff -urN orig_musl/musl-1.2.5/arch/aarch64/syscall_arch.h patched_musl/musl-1.2.5/arch/aarch64/syscall_arch.h
+--- a/musl-1.2.5/arch/aarch64/syscall_arch.h 2024-02-29 18:07:33
++++ b/musl-1.2.5/arch/aarch64/syscall_arch.h 2026-05-04 12:11:12
+@@ -1,78 +1,55 @@
++/* tcc-build aarch64 syscall_arch.h replacement.
++ *
++ * Stock musl uses GCC register-asm-variable inline asm
++ * (`register long x8 __asm__("x8") = n; ... svc 0`); tcc 0.9.26 lacks
++ * that GCC extension and arm64-asm.c phase 1+2 has no inline-asm
++ * operand constraint plumbing. Route every __syscallN through one
++ * variadic-style trampoline implemented in pure asm
++ * (src/internal/aarch64/syscall.s); the trampoline shuffles C-ABI
++ * x0-x6 into kernel-ABI x8 + x0-x5 and issues svc #0.
++ *
++ * The wrappers are static __inline functions, not macros — musl's
++ * src/internal/syscall.h defines `#define __syscall1(n,a) __syscall1(n,__scc(a))`
++ * which would defeat a macro-form wrapper (CPP self-reference rule
++ * leaves the call unexpanded, producing an unresolved __syscall1
++ * symbol). With static functions, syscall.h's macro applies __scc(),
++ * then the rescan resolves to the static function.
++ *
++ * Mirrors the x86_64 trampoline strategy. */
++
+ #define __SYSCALL_LL_E(x) (x)
+ #define __SYSCALL_LL_O(x) (x)
+
+-#define __asm_syscall(...) do { \
+- __asm__ __volatile__ ( "svc 0" \
+- : "=r"(x0) : __VA_ARGS__ : "memory", "cc"); \
+- return x0; \
+- } while (0)
++extern long __syscall(long, ...);
+
+-static inline long __syscall0(long n)
++static __inline long __syscall0(long n)
+ {
+- register long x8 __asm__("x8") = n;
+- register long x0 __asm__("x0");
+- __asm_syscall("r"(x8));
++ return __syscall(n);
+ }
+-
+-static inline long __syscall1(long n, long a)
++static __inline long __syscall1(long n, long a)
+ {
+- register long x8 __asm__("x8") = n;
+- register long x0 __asm__("x0") = a;
+- __asm_syscall("r"(x8), "0"(x0));
++ return __syscall(n, a);
+ }
+-
+-static inline long __syscall2(long n, long a, long b)
++static __inline long __syscall2(long n, long a, long b)
+ {
+- register long x8 __asm__("x8") = n;
+- register long x0 __asm__("x0") = a;
+- register long x1 __asm__("x1") = b;
+- __asm_syscall("r"(x8), "0"(x0), "r"(x1));
++ return __syscall(n, a, b);
+ }
+-
+-static inline long __syscall3(long n, long a, long b, long c)
++static __inline long __syscall3(long n, long a, long b, long c)
+ {
+- register long x8 __asm__("x8") = n;
+- register long x0 __asm__("x0") = a;
+- register long x1 __asm__("x1") = b;
+- register long x2 __asm__("x2") = c;
+- __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2));
++ return __syscall(n, a, b, c);
+ }
+-
+-static inline long __syscall4(long n, long a, long b, long c, long d)
++static __inline long __syscall4(long n, long a, long b, long c, long d)
+ {
+- register long x8 __asm__("x8") = n;
+- register long x0 __asm__("x0") = a;
+- register long x1 __asm__("x1") = b;
+- register long x2 __asm__("x2") = c;
+- register long x3 __asm__("x3") = d;
+- __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2), "r"(x3));
++ return __syscall(n, a, b, c, d);
+ }
+-
+-static inline long __syscall5(long n, long a, long b, long c, long d, long e)
++static __inline long __syscall5(long n, long a, long b, long c, long d, long e)
+ {
+- register long x8 __asm__("x8") = n;
+- register long x0 __asm__("x0") = a;
+- register long x1 __asm__("x1") = b;
+- register long x2 __asm__("x2") = c;
+- register long x3 __asm__("x3") = d;
+- register long x4 __asm__("x4") = e;
+- __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x4));
++ return __syscall(n, a, b, c, d, e);
+ }
+-
+-static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
++static __inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
+ {
+- register long x8 __asm__("x8") = n;
+- register long x0 __asm__("x0") = a;
+- register long x1 __asm__("x1") = b;
+- register long x2 __asm__("x2") = c;
+- register long x3 __asm__("x3") = d;
+- register long x4 __asm__("x4") = e;
+- register long x5 __asm__("x5") = f;
+- __asm_syscall("r"(x8), "0"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x4), "r"(x5));
++ return __syscall(n, a, b, c, d, e, f);
+ }
+
+-#define VDSO_USEFUL
+-#define VDSO_CGT_SYM "__kernel_clock_gettime"
+-#define VDSO_CGT_VER "LINUX_2.6.39"
+-
+-#define IPC_64 0
++#define SYSCALL_FADVISE_6_ARG
++#define SYSCALL_IPC_BROKEN_MODE
+diff -urN orig_musl/musl-1.2.5/arch/x86_64/syscall_arch.h patched_musl/musl-1.2.5/arch/x86_64/syscall_arch.h
--- a/musl-1.2.5/arch/x86_64/syscall_arch.h 2024-02-29 18:07:33
+++ b/musl-1.2.5/arch/x86_64/syscall_arch.h 2026-04-28 20:23:48
@@ -1,64 +1,44 @@
@@ -78,7 +361,7 @@ diff -urN orig_musl/musl-1.2.5/arch/x86_64/syscall_arch.h /tmp/clean_musltcc/arc
}
#define VDSO_USEFUL
-diff -urN orig_musl/musl-1.2.5/include/complex.h /tmp/clean_musltcc/include/complex.h
+diff -urN orig_musl/musl-1.2.5/include/complex.h patched_musl/musl-1.2.5/include/complex.h
--- a/musl-1.2.5/include/complex.h 2024-02-29 18:07:33
+++ b/musl-1.2.5/include/complex.h 2026-04-28 20:24:12
@@ -1,133 +1,10 @@
@@ -220,7 +503,7 @@ diff -urN orig_musl/musl-1.2.5/include/complex.h /tmp/clean_musltcc/include/comp
-}
-#endif
#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/__cexp.c /tmp/clean_musltcc/src/complex/__cexp.c
+diff -urN orig_musl/musl-1.2.5/src/complex/__cexp.c patched_musl/musl-1.2.5/src/complex/__cexp.c
--- a/musl-1.2.5/src/complex/__cexp.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/__cexp.c 1969-12-31 16:00:00
@@ -1,87 +0,0 @@
@@ -311,7 +594,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/__cexp.c /tmp/clean_musltcc/src/compl
-
- return CMPLX(cos(y) * exp_x * scale1 * scale2, sin(y) * exp_x * scale1 * scale2);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/__cexpf.c /tmp/clean_musltcc/src/complex/__cexpf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/__cexpf.c patched_musl/musl-1.2.5/src/complex/__cexpf.c
--- a/musl-1.2.5/src/complex/__cexpf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/__cexpf.c 1969-12-31 16:00:00
@@ -1,68 +0,0 @@
@@ -383,7 +666,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/__cexpf.c /tmp/clean_musltcc/src/comp
- return CMPLXF(cosf(y) * exp_x * scale1 * scale2,
- sinf(y) * exp_x * scale1 * scale2);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cabs.c /tmp/clean_musltcc/src/complex/cabs.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cabs.c patched_musl/musl-1.2.5/src/complex/cabs.c
--- a/musl-1.2.5/src/complex/cabs.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cabs.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -393,7 +676,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cabs.c /tmp/clean_musltcc/src/complex
-{
- return hypot(creal(z), cimag(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cabsf.c /tmp/clean_musltcc/src/complex/cabsf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cabsf.c patched_musl/musl-1.2.5/src/complex/cabsf.c
--- a/musl-1.2.5/src/complex/cabsf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cabsf.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -403,7 +686,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cabsf.c /tmp/clean_musltcc/src/comple
-{
- return hypotf(crealf(z), cimagf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cabsl.c /tmp/clean_musltcc/src/complex/cabsl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cabsl.c patched_musl/musl-1.2.5/src/complex/cabsl.c
--- a/musl-1.2.5/src/complex/cabsl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cabsl.c 1969-12-31 16:00:00
@@ -1,13 +0,0 @@
@@ -420,7 +703,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cabsl.c /tmp/clean_musltcc/src/comple
- return hypotl(creall(z), cimagl(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/cacos.c /tmp/clean_musltcc/src/complex/cacos.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cacos.c patched_musl/musl-1.2.5/src/complex/cacos.c
--- a/musl-1.2.5/src/complex/cacos.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cacos.c 1969-12-31 16:00:00
@@ -1,11 +0,0 @@
@@ -435,7 +718,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cacos.c /tmp/clean_musltcc/src/comple
- z = casin(z);
- return CMPLX(M_PI_2 - creal(z), -cimag(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cacosf.c /tmp/clean_musltcc/src/complex/cacosf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cacosf.c patched_musl/musl-1.2.5/src/complex/cacosf.c
--- a/musl-1.2.5/src/complex/cacosf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cacosf.c 1969-12-31 16:00:00
@@ -1,11 +0,0 @@
@@ -450,7 +733,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cacosf.c /tmp/clean_musltcc/src/compl
- z = casinf(z);
- return CMPLXF(float_pi_2 - crealf(z), -cimagf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cacosh.c /tmp/clean_musltcc/src/complex/cacosh.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cacosh.c patched_musl/musl-1.2.5/src/complex/cacosh.c
--- a/musl-1.2.5/src/complex/cacosh.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cacosh.c 1969-12-31 16:00:00
@@ -1,12 +0,0 @@
@@ -466,7 +749,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cacosh.c /tmp/clean_musltcc/src/compl
- if (zineg) return CMPLX(cimag(z), -creal(z));
- else return CMPLX(-cimag(z), creal(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cacoshf.c /tmp/clean_musltcc/src/complex/cacoshf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cacoshf.c patched_musl/musl-1.2.5/src/complex/cacoshf.c
--- a/musl-1.2.5/src/complex/cacoshf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cacoshf.c 1969-12-31 16:00:00
@@ -1,10 +0,0 @@
@@ -480,7 +763,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cacoshf.c /tmp/clean_musltcc/src/comp
- if (zineg) return CMPLXF(cimagf(z), -crealf(z));
- else return CMPLXF(-cimagf(z), crealf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cacoshl.c /tmp/clean_musltcc/src/complex/cacoshl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cacoshl.c patched_musl/musl-1.2.5/src/complex/cacoshl.c
--- a/musl-1.2.5/src/complex/cacoshl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cacoshl.c 1969-12-31 16:00:00
@@ -1,17 +0,0 @@
@@ -501,7 +784,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cacoshl.c /tmp/clean_musltcc/src/comp
- else return CMPLXL(-cimagl(z), creall(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/cacosl.c /tmp/clean_musltcc/src/complex/cacosl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cacosl.c patched_musl/musl-1.2.5/src/complex/cacosl.c
--- a/musl-1.2.5/src/complex/cacosl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cacosl.c 1969-12-31 16:00:00
@@ -1,16 +0,0 @@
@@ -521,7 +804,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cacosl.c /tmp/clean_musltcc/src/compl
- return CMPLXL(PI_2 - creall(z), -cimagl(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/carg.c /tmp/clean_musltcc/src/complex/carg.c
+diff -urN orig_musl/musl-1.2.5/src/complex/carg.c patched_musl/musl-1.2.5/src/complex/carg.c
--- a/musl-1.2.5/src/complex/carg.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/carg.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -531,7 +814,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/carg.c /tmp/clean_musltcc/src/complex
-{
- return atan2(cimag(z), creal(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cargf.c /tmp/clean_musltcc/src/complex/cargf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cargf.c patched_musl/musl-1.2.5/src/complex/cargf.c
--- a/musl-1.2.5/src/complex/cargf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cargf.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -541,7 +824,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cargf.c /tmp/clean_musltcc/src/comple
-{
- return atan2f(cimagf(z), crealf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cargl.c /tmp/clean_musltcc/src/complex/cargl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cargl.c patched_musl/musl-1.2.5/src/complex/cargl.c
--- a/musl-1.2.5/src/complex/cargl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cargl.c 1969-12-31 16:00:00
@@ -1,13 +0,0 @@
@@ -558,7 +841,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cargl.c /tmp/clean_musltcc/src/comple
- return atan2l(cimagl(z), creall(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/casin.c /tmp/clean_musltcc/src/complex/casin.c
+diff -urN orig_musl/musl-1.2.5/src/complex/casin.c patched_musl/musl-1.2.5/src/complex/casin.c
--- a/musl-1.2.5/src/complex/casin.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/casin.c 1969-12-31 16:00:00
@@ -1,17 +0,0 @@
@@ -579,7 +862,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/casin.c /tmp/clean_musltcc/src/comple
- double complex r = clog(CMPLX(-y, x) + csqrt(w));
- return CMPLX(cimag(r), -creal(r));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/casinf.c /tmp/clean_musltcc/src/complex/casinf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/casinf.c patched_musl/musl-1.2.5/src/complex/casinf.c
--- a/musl-1.2.5/src/complex/casinf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/casinf.c 1969-12-31 16:00:00
@@ -1,15 +0,0 @@
@@ -598,7 +881,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/casinf.c /tmp/clean_musltcc/src/compl
- float complex r = clogf(CMPLXF(-y, x) + csqrtf(w));
- return CMPLXF(cimagf(r), -crealf(r));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/casinh.c /tmp/clean_musltcc/src/complex/casinh.c
+diff -urN orig_musl/musl-1.2.5/src/complex/casinh.c patched_musl/musl-1.2.5/src/complex/casinh.c
--- a/musl-1.2.5/src/complex/casinh.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/casinh.c 1969-12-31 16:00:00
@@ -1,9 +0,0 @@
@@ -611,7 +894,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/casinh.c /tmp/clean_musltcc/src/compl
- z = casin(CMPLX(-cimag(z), creal(z)));
- return CMPLX(cimag(z), -creal(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/casinhf.c /tmp/clean_musltcc/src/complex/casinhf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/casinhf.c patched_musl/musl-1.2.5/src/complex/casinhf.c
--- a/musl-1.2.5/src/complex/casinhf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/casinhf.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -622,7 +905,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/casinhf.c /tmp/clean_musltcc/src/comp
- z = casinf(CMPLXF(-cimagf(z), crealf(z)));
- return CMPLXF(cimagf(z), -crealf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/casinhl.c /tmp/clean_musltcc/src/complex/casinhl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/casinhl.c patched_musl/musl-1.2.5/src/complex/casinhl.c
--- a/musl-1.2.5/src/complex/casinhl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/casinhl.c 1969-12-31 16:00:00
@@ -1,14 +0,0 @@
@@ -640,7 +923,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/casinhl.c /tmp/clean_musltcc/src/comp
- return CMPLXL(cimagl(z), -creall(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/casinl.c /tmp/clean_musltcc/src/complex/casinl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/casinl.c patched_musl/musl-1.2.5/src/complex/casinl.c
--- a/musl-1.2.5/src/complex/casinl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/casinl.c 1969-12-31 16:00:00
@@ -1,21 +0,0 @@
@@ -665,7 +948,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/casinl.c /tmp/clean_musltcc/src/compl
- return CMPLXL(cimagl(r), -creall(r));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/catan.c /tmp/clean_musltcc/src/complex/catan.c
+diff -urN orig_musl/musl-1.2.5/src/complex/catan.c patched_musl/musl-1.2.5/src/complex/catan.c
--- a/musl-1.2.5/src/complex/catan.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/catan.c 1969-12-31 16:00:00
@@ -1,107 +0,0 @@
@@ -776,7 +1059,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/catan.c /tmp/clean_musltcc/src/comple
- w = CMPLX(w, 0.25 * log(a));
- return w;
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/catanf.c /tmp/clean_musltcc/src/complex/catanf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/catanf.c patched_musl/musl-1.2.5/src/complex/catanf.c
--- a/musl-1.2.5/src/complex/catanf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/catanf.c 1969-12-31 16:00:00
@@ -1,105 +0,0 @@
@@ -885,7 +1168,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/catanf.c /tmp/clean_musltcc/src/compl
- w = CMPLXF(w, 0.25f * logf(a));
- return w;
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/catanh.c /tmp/clean_musltcc/src/complex/catanh.c
+diff -urN orig_musl/musl-1.2.5/src/complex/catanh.c patched_musl/musl-1.2.5/src/complex/catanh.c
--- a/musl-1.2.5/src/complex/catanh.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/catanh.c 1969-12-31 16:00:00
@@ -1,9 +0,0 @@
@@ -898,7 +1181,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/catanh.c /tmp/clean_musltcc/src/compl
- z = catan(CMPLX(-cimag(z), creal(z)));
- return CMPLX(cimag(z), -creal(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/catanhf.c /tmp/clean_musltcc/src/complex/catanhf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/catanhf.c patched_musl/musl-1.2.5/src/complex/catanhf.c
--- a/musl-1.2.5/src/complex/catanhf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/catanhf.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -909,7 +1192,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/catanhf.c /tmp/clean_musltcc/src/comp
- z = catanf(CMPLXF(-cimagf(z), crealf(z)));
- return CMPLXF(cimagf(z), -crealf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/catanhl.c /tmp/clean_musltcc/src/complex/catanhl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/catanhl.c patched_musl/musl-1.2.5/src/complex/catanhl.c
--- a/musl-1.2.5/src/complex/catanhl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/catanhl.c 1969-12-31 16:00:00
@@ -1,14 +0,0 @@
@@ -927,7 +1210,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/catanhl.c /tmp/clean_musltcc/src/comp
- return CMPLXL(cimagl(z), -creall(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/catanl.c /tmp/clean_musltcc/src/complex/catanl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/catanl.c patched_musl/musl-1.2.5/src/complex/catanl.c
--- a/musl-1.2.5/src/complex/catanl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/catanl.c 1969-12-31 16:00:00
@@ -1,114 +0,0 @@
@@ -1045,7 +1328,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/catanl.c /tmp/clean_musltcc/src/compl
- return w;
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/ccos.c /tmp/clean_musltcc/src/complex/ccos.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ccos.c patched_musl/musl-1.2.5/src/complex/ccos.c
--- a/musl-1.2.5/src/complex/ccos.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ccos.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -1057,7 +1340,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ccos.c /tmp/clean_musltcc/src/complex
-{
- return ccosh(CMPLX(-cimag(z), creal(z)));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ccosf.c /tmp/clean_musltcc/src/complex/ccosf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ccosf.c patched_musl/musl-1.2.5/src/complex/ccosf.c
--- a/musl-1.2.5/src/complex/ccosf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ccosf.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1067,7 +1350,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ccosf.c /tmp/clean_musltcc/src/comple
-{
- return ccoshf(CMPLXF(-cimagf(z), crealf(z)));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ccosh.c /tmp/clean_musltcc/src/complex/ccosh.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ccosh.c patched_musl/musl-1.2.5/src/complex/ccosh.c
--- a/musl-1.2.5/src/complex/ccosh.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ccosh.c 1969-12-31 16:00:00
@@ -1,140 +0,0 @@
@@ -1211,7 +1494,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ccosh.c /tmp/clean_musltcc/src/comple
- */
- return CMPLX((x * x) * (y - y), (x + x) * (y - y));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ccoshf.c /tmp/clean_musltcc/src/complex/ccoshf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ccoshf.c patched_musl/musl-1.2.5/src/complex/ccoshf.c
--- a/musl-1.2.5/src/complex/ccoshf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ccoshf.c 1969-12-31 16:00:00
@@ -1,90 +0,0 @@
@@ -1305,7 +1588,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ccoshf.c /tmp/clean_musltcc/src/compl
-
- return CMPLXF((x * x) * (y - y), (x + x) * (y - y));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ccoshl.c /tmp/clean_musltcc/src/complex/ccoshl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ccoshl.c patched_musl/musl-1.2.5/src/complex/ccoshl.c
--- a/musl-1.2.5/src/complex/ccoshl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ccoshl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -1316,7 +1599,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ccoshl.c /tmp/clean_musltcc/src/compl
-{
- return ccosh(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ccosl.c /tmp/clean_musltcc/src/complex/ccosl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ccosl.c patched_musl/musl-1.2.5/src/complex/ccosl.c
--- a/musl-1.2.5/src/complex/ccosl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ccosl.c 1969-12-31 16:00:00
@@ -1,13 +0,0 @@
@@ -1333,7 +1616,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ccosl.c /tmp/clean_musltcc/src/comple
- return ccoshl(CMPLXL(-cimagl(z), creall(z)));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/cexp.c /tmp/clean_musltcc/src/complex/cexp.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cexp.c patched_musl/musl-1.2.5/src/complex/cexp.c
--- a/musl-1.2.5/src/complex/cexp.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cexp.c 1969-12-31 16:00:00
@@ -1,83 +0,0 @@
@@ -1420,7 +1703,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cexp.c /tmp/clean_musltcc/src/complex
- return CMPLX(exp_x * cos(y), exp_x * sin(y));
- }
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cexpf.c /tmp/clean_musltcc/src/complex/cexpf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cexpf.c patched_musl/musl-1.2.5/src/complex/cexpf.c
--- a/musl-1.2.5/src/complex/cexpf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cexpf.c 1969-12-31 16:00:00
@@ -1,83 +0,0 @@
@@ -1507,7 +1790,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cexpf.c /tmp/clean_musltcc/src/comple
- return CMPLXF(exp_x * cosf(y), exp_x * sinf(y));
- }
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cexpl.c /tmp/clean_musltcc/src/complex/cexpl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cexpl.c patched_musl/musl-1.2.5/src/complex/cexpl.c
--- a/musl-1.2.5/src/complex/cexpl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cexpl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -1518,7 +1801,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cexpl.c /tmp/clean_musltcc/src/comple
-{
- return cexp(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cimag.c /tmp/clean_musltcc/src/complex/cimag.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cimag.c patched_musl/musl-1.2.5/src/complex/cimag.c
--- a/musl-1.2.5/src/complex/cimag.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cimag.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1528,7 +1811,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cimag.c /tmp/clean_musltcc/src/comple
-{
- return cimag(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cimagf.c /tmp/clean_musltcc/src/complex/cimagf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cimagf.c patched_musl/musl-1.2.5/src/complex/cimagf.c
--- a/musl-1.2.5/src/complex/cimagf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cimagf.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1538,7 +1821,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cimagf.c /tmp/clean_musltcc/src/compl
-{
- return cimagf(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cimagl.c /tmp/clean_musltcc/src/complex/cimagl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cimagl.c patched_musl/musl-1.2.5/src/complex/cimagl.c
--- a/musl-1.2.5/src/complex/cimagl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cimagl.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1548,7 +1831,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cimagl.c /tmp/clean_musltcc/src/compl
-{
- return cimagl(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/clog.c /tmp/clean_musltcc/src/complex/clog.c
+diff -urN orig_musl/musl-1.2.5/src/complex/clog.c patched_musl/musl-1.2.5/src/complex/clog.c
--- a/musl-1.2.5/src/complex/clog.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/clog.c 1969-12-31 16:00:00
@@ -1,14 +0,0 @@
@@ -1566,7 +1849,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/clog.c /tmp/clean_musltcc/src/complex
- phi = carg(z);
- return CMPLX(log(r), phi);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/clogf.c /tmp/clean_musltcc/src/complex/clogf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/clogf.c patched_musl/musl-1.2.5/src/complex/clogf.c
--- a/musl-1.2.5/src/complex/clogf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/clogf.c 1969-12-31 16:00:00
@@ -1,12 +0,0 @@
@@ -1582,7 +1865,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/clogf.c /tmp/clean_musltcc/src/comple
- phi = cargf(z);
- return CMPLXF(logf(r), phi);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/clogl.c /tmp/clean_musltcc/src/complex/clogl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/clogl.c patched_musl/musl-1.2.5/src/complex/clogl.c
--- a/musl-1.2.5/src/complex/clogl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/clogl.c 1969-12-31 16:00:00
@@ -1,18 +0,0 @@
@@ -1604,7 +1887,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/clogl.c /tmp/clean_musltcc/src/comple
- return CMPLXL(logl(r), phi);
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/conj.c /tmp/clean_musltcc/src/complex/conj.c
+diff -urN orig_musl/musl-1.2.5/src/complex/conj.c patched_musl/musl-1.2.5/src/complex/conj.c
--- a/musl-1.2.5/src/complex/conj.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/conj.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1614,7 +1897,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/conj.c /tmp/clean_musltcc/src/complex
-{
- return CMPLX(creal(z), -cimag(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/conjf.c /tmp/clean_musltcc/src/complex/conjf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/conjf.c patched_musl/musl-1.2.5/src/complex/conjf.c
--- a/musl-1.2.5/src/complex/conjf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/conjf.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1624,7 +1907,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/conjf.c /tmp/clean_musltcc/src/comple
-{
- return CMPLXF(crealf(z), -cimagf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/conjl.c /tmp/clean_musltcc/src/complex/conjl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/conjl.c patched_musl/musl-1.2.5/src/complex/conjl.c
--- a/musl-1.2.5/src/complex/conjl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/conjl.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1634,7 +1917,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/conjl.c /tmp/clean_musltcc/src/comple
-{
- return CMPLXL(creall(z), -cimagl(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cpow.c /tmp/clean_musltcc/src/complex/cpow.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cpow.c patched_musl/musl-1.2.5/src/complex/cpow.c
--- a/musl-1.2.5/src/complex/cpow.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cpow.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -1646,7 +1929,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cpow.c /tmp/clean_musltcc/src/complex
-{
- return cexp(c * clog(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cpowf.c /tmp/clean_musltcc/src/complex/cpowf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cpowf.c patched_musl/musl-1.2.5/src/complex/cpowf.c
--- a/musl-1.2.5/src/complex/cpowf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cpowf.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1656,7 +1939,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cpowf.c /tmp/clean_musltcc/src/comple
-{
- return cexpf(c * clogf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cpowl.c /tmp/clean_musltcc/src/complex/cpowl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cpowl.c patched_musl/musl-1.2.5/src/complex/cpowl.c
--- a/musl-1.2.5/src/complex/cpowl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cpowl.c 1969-12-31 16:00:00
@@ -1,13 +0,0 @@
@@ -1673,7 +1956,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cpowl.c /tmp/clean_musltcc/src/comple
- return cexpl(c * clogl(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/cproj.c /tmp/clean_musltcc/src/complex/cproj.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cproj.c patched_musl/musl-1.2.5/src/complex/cproj.c
--- a/musl-1.2.5/src/complex/cproj.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cproj.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -1685,7 +1968,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cproj.c /tmp/clean_musltcc/src/comple
- return CMPLX(INFINITY, copysign(0.0, cimag(z)));
- return z;
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cprojf.c /tmp/clean_musltcc/src/complex/cprojf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cprojf.c patched_musl/musl-1.2.5/src/complex/cprojf.c
--- a/musl-1.2.5/src/complex/cprojf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cprojf.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -1697,7 +1980,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cprojf.c /tmp/clean_musltcc/src/compl
- return CMPLXF(INFINITY, copysignf(0.0, cimagf(z)));
- return z;
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/cprojl.c /tmp/clean_musltcc/src/complex/cprojl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/cprojl.c patched_musl/musl-1.2.5/src/complex/cprojl.c
--- a/musl-1.2.5/src/complex/cprojl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/cprojl.c 1969-12-31 16:00:00
@@ -1,15 +0,0 @@
@@ -1716,7 +1999,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/cprojl.c /tmp/clean_musltcc/src/compl
- return z;
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/creal.c /tmp/clean_musltcc/src/complex/creal.c
+diff -urN orig_musl/musl-1.2.5/src/complex/creal.c patched_musl/musl-1.2.5/src/complex/creal.c
--- a/musl-1.2.5/src/complex/creal.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/creal.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1726,7 +2009,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/creal.c /tmp/clean_musltcc/src/comple
-{
- return creal(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/crealf.c /tmp/clean_musltcc/src/complex/crealf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/crealf.c patched_musl/musl-1.2.5/src/complex/crealf.c
--- a/musl-1.2.5/src/complex/crealf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/crealf.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1736,7 +2019,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/crealf.c /tmp/clean_musltcc/src/compl
-{
- return crealf(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/creall.c /tmp/clean_musltcc/src/complex/creall.c
+diff -urN orig_musl/musl-1.2.5/src/complex/creall.c patched_musl/musl-1.2.5/src/complex/creall.c
--- a/musl-1.2.5/src/complex/creall.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/creall.c 1969-12-31 16:00:00
@@ -1,6 +0,0 @@
@@ -1746,7 +2029,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/creall.c /tmp/clean_musltcc/src/compl
-{
- return creall(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csin.c /tmp/clean_musltcc/src/complex/csin.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csin.c patched_musl/musl-1.2.5/src/complex/csin.c
--- a/musl-1.2.5/src/complex/csin.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csin.c 1969-12-31 16:00:00
@@ -1,9 +0,0 @@
@@ -1759,7 +2042,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csin.c /tmp/clean_musltcc/src/complex
- z = csinh(CMPLX(-cimag(z), creal(z)));
- return CMPLX(cimag(z), -creal(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csinf.c /tmp/clean_musltcc/src/complex/csinf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csinf.c patched_musl/musl-1.2.5/src/complex/csinf.c
--- a/musl-1.2.5/src/complex/csinf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csinf.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -1770,7 +2053,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csinf.c /tmp/clean_musltcc/src/comple
- z = csinhf(CMPLXF(-cimagf(z), crealf(z)));
- return CMPLXF(cimagf(z), -crealf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csinh.c /tmp/clean_musltcc/src/complex/csinh.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csinh.c patched_musl/musl-1.2.5/src/complex/csinh.c
--- a/musl-1.2.5/src/complex/csinh.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csinh.c 1969-12-31 16:00:00
@@ -1,141 +0,0 @@
@@ -1915,7 +2198,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csinh.c /tmp/clean_musltcc/src/comple
- */
- return CMPLX((x * x) * (y - y), (x + x) * (y - y));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csinhf.c /tmp/clean_musltcc/src/complex/csinhf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csinhf.c patched_musl/musl-1.2.5/src/complex/csinhf.c
--- a/musl-1.2.5/src/complex/csinhf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csinhf.c 1969-12-31 16:00:00
@@ -1,90 +0,0 @@
@@ -2009,7 +2292,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csinhf.c /tmp/clean_musltcc/src/compl
-
- return CMPLXF((x * x) * (y - y), (x + x) * (y - y));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csinhl.c /tmp/clean_musltcc/src/complex/csinhl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csinhl.c patched_musl/musl-1.2.5/src/complex/csinhl.c
--- a/musl-1.2.5/src/complex/csinhl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csinhl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -2020,7 +2303,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csinhl.c /tmp/clean_musltcc/src/compl
-{
- return csinh(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csinl.c /tmp/clean_musltcc/src/complex/csinl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csinl.c patched_musl/musl-1.2.5/src/complex/csinl.c
--- a/musl-1.2.5/src/complex/csinl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csinl.c 1969-12-31 16:00:00
@@ -1,14 +0,0 @@
@@ -2038,7 +2321,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csinl.c /tmp/clean_musltcc/src/comple
- return CMPLXL(cimagl(z), -creall(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/complex/csqrt.c /tmp/clean_musltcc/src/complex/csqrt.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csqrt.c patched_musl/musl-1.2.5/src/complex/csqrt.c
--- a/musl-1.2.5/src/complex/csqrt.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csqrt.c 1969-12-31 16:00:00
@@ -1,100 +0,0 @@
@@ -2142,7 +2425,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csqrt.c /tmp/clean_musltcc/src/comple
- result *= 2;
- return result;
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csqrtf.c /tmp/clean_musltcc/src/complex/csqrtf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csqrtf.c patched_musl/musl-1.2.5/src/complex/csqrtf.c
--- a/musl-1.2.5/src/complex/csqrtf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csqrtf.c 1969-12-31 16:00:00
@@ -1,82 +0,0 @@
@@ -2228,7 +2511,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csqrtf.c /tmp/clean_musltcc/src/compl
- return CMPLXF(fabsf(b) / (2.0 * t), copysignf(t, b));
- }
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/csqrtl.c /tmp/clean_musltcc/src/complex/csqrtl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/csqrtl.c patched_musl/musl-1.2.5/src/complex/csqrtl.c
--- a/musl-1.2.5/src/complex/csqrtl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/csqrtl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -2239,7 +2522,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/csqrtl.c /tmp/clean_musltcc/src/compl
-{
- return csqrt(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ctan.c /tmp/clean_musltcc/src/complex/ctan.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ctan.c patched_musl/musl-1.2.5/src/complex/ctan.c
--- a/musl-1.2.5/src/complex/ctan.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ctan.c 1969-12-31 16:00:00
@@ -1,9 +0,0 @@
@@ -2252,7 +2535,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ctan.c /tmp/clean_musltcc/src/complex
- z = ctanh(CMPLX(-cimag(z), creal(z)));
- return CMPLX(cimag(z), -creal(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ctanf.c /tmp/clean_musltcc/src/complex/ctanf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ctanf.c patched_musl/musl-1.2.5/src/complex/ctanf.c
--- a/musl-1.2.5/src/complex/ctanf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ctanf.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -2263,7 +2546,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ctanf.c /tmp/clean_musltcc/src/comple
- z = ctanhf(CMPLXF(-cimagf(z), crealf(z)));
- return CMPLXF(cimagf(z), -crealf(z));
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ctanh.c /tmp/clean_musltcc/src/complex/ctanh.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ctanh.c patched_musl/musl-1.2.5/src/complex/ctanh.c
--- a/musl-1.2.5/src/complex/ctanh.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ctanh.c 1969-12-31 16:00:00
@@ -1,129 +0,0 @@
@@ -2396,7 +2679,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ctanh.c /tmp/clean_musltcc/src/comple
- denom = 1 + beta * s * s;
- return CMPLX((beta * rho * s) / denom, t / denom);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ctanhf.c /tmp/clean_musltcc/src/complex/ctanhf.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ctanhf.c patched_musl/musl-1.2.5/src/complex/ctanhf.c
--- a/musl-1.2.5/src/complex/ctanhf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ctanhf.c 1969-12-31 16:00:00
@@ -1,66 +0,0 @@
@@ -2466,7 +2749,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ctanhf.c /tmp/clean_musltcc/src/compl
- denom = 1 + beta * s * s;
- return CMPLXF((beta * rho * s) / denom, t / denom);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ctanhl.c /tmp/clean_musltcc/src/complex/ctanhl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ctanhl.c patched_musl/musl-1.2.5/src/complex/ctanhl.c
--- a/musl-1.2.5/src/complex/ctanhl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ctanhl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -2477,7 +2760,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ctanhl.c /tmp/clean_musltcc/src/compl
-{
- return ctanh(z);
-}
-diff -urN orig_musl/musl-1.2.5/src/complex/ctanl.c /tmp/clean_musltcc/src/complex/ctanl.c
+diff -urN orig_musl/musl-1.2.5/src/complex/ctanl.c patched_musl/musl-1.2.5/src/complex/ctanl.c
--- a/musl-1.2.5/src/complex/ctanl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/complex/ctanl.c 1969-12-31 16:00:00
@@ -1,14 +0,0 @@
@@ -2495,7 +2778,7 @@ diff -urN orig_musl/musl-1.2.5/src/complex/ctanl.c /tmp/clean_musltcc/src/comple
- return CMPLXL(cimagl(z), -creall(z));
-}
-#endif
-diff -urN orig_musl/musl-1.2.5/src/fenv/x86_64/fenv.s /tmp/clean_musltcc/src/fenv/x86_64/fenv.s
+diff -urN orig_musl/musl-1.2.5/src/fenv/x86_64/fenv.s patched_musl/musl-1.2.5/src/fenv/x86_64/fenv.s
--- a/musl-1.2.5/src/fenv/x86_64/fenv.s 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/fenv/x86_64/fenv.s 1969-12-31 16:00:00
@@ -1,98 +0,0 @@
@@ -2597,7 +2880,7 @@ diff -urN orig_musl/musl-1.2.5/src/fenv/x86_64/fenv.s /tmp/clean_musltcc/src/fen
- or %esi,%eax
- and %edi,%eax
- ret
-diff -urN orig_musl/musl-1.2.5/src/include/features.h /tmp/clean_musltcc/src/include/features.h
+diff -urN orig_musl/musl-1.2.5/src/include/features.h patched_musl/musl-1.2.5/src/include/features.h
--- a/musl-1.2.5/src/include/features.h 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/include/features.h 2026-04-28 22:51:21
@@ -5,7 +5,11 @@
@@ -2613,7 +2896,131 @@ diff -urN orig_musl/musl-1.2.5/src/include/features.h /tmp/clean_musltcc/src/inc
+ __asm__(".weak " #new "\n.set " #new "," #old)
#endif
-diff -urN orig_musl/musl-1.2.5/src/internal/syscall.h /tmp/clean_musltcc/src/internal/syscall.h
+diff -urN orig_musl/musl-1.2.5/src/internal/aarch64/atomic.s patched_musl/musl-1.2.5/src/internal/aarch64/atomic.s
+--- a/musl-1.2.5/src/internal/aarch64/atomic.s 1969-12-31 16:00:00
++++ b/musl-1.2.5/src/internal/aarch64/atomic.s 2026-05-04 12:06:50
+@@ -0,0 +1,73 @@
++/* tcc-build aarch64 atomic primitives.
++ *
++ * Implements the seven externs that arch/aarch64/atomic_arch.h
++ * declares; musl's src/internal/atomic.h derives the rest (a_cas,
++ * a_swap, a_fetch_add, a_or, a_and, a_inc, a_dec, a_store, …).
++ *
++ * Mnemonics ldaxr, stlxr, dmb-with-named-option, rbit, clz are
++ * outside arm64-asm.c phase 1+2 — emit raw .word encodings. Control-
++ * flow mnemonics (mov, cmp, cset, ret) are phase 1+2.
++ *
++ * Encoding cheat sheet:
++ * 0x885FFC00 ldaxr w0, [x0]
++ * 0xC85FFC00 ldaxr x0, [x0]
++ * 0x8802FC01 stlxr w2, w1, [x0]
++ * 0xC802FC01 stlxr w2, x1, [x0]
++ * 0xD5033BBF dmb ish
++ * 0xDAC00000 rbit x0, x0
++ * 0xDAC01000 clz x0, x0
++ */
++
++/* int a_ll(volatile int *p) -- load-acquire-exclusive 32-bit */
++.global a_ll
++.type a_ll,@function
++a_ll:
++ .word 0x885FFC00
++ ret
++
++/* int a_sc(volatile int *p, int v) -- store-release-exclusive; return !status */
++.global a_sc
++.type a_sc,@function
++a_sc:
++ .word 0x8802FC01
++ cmp w2, #0
++ cset w0, eq
++ ret
++
++/* void a_barrier(void) -- dmb ish */
++.global a_barrier
++.type a_barrier,@function
++a_barrier:
++ .word 0xD5033BBF
++ ret
++
++/* void *a_ll_p(volatile void *p) -- load-acquire-exclusive 64-bit */
++.global a_ll_p
++.type a_ll_p,@function
++a_ll_p:
++ .word 0xC85FFC00
++ ret
++
++/* int a_sc_p(volatile int *p, void *v) -- store-release-exclusive 64-bit */
++.global a_sc_p
++.type a_sc_p,@function
++a_sc_p:
++ .word 0xC802FC01
++ cmp w2, #0
++ cset w0, eq
++ ret
++
++/* int a_ctz_64(uint64_t x) -- count trailing zeros: rbit + clz */
++.global a_ctz_64
++.type a_ctz_64,@function
++a_ctz_64:
++ .word 0xDAC00000
++ .word 0xDAC01000
++ ret
++
++/* int a_clz_64(uint64_t x) */
++.global a_clz_64
++.type a_clz_64,@function
++a_clz_64:
++ .word 0xDAC01000
++ ret
+diff -urN orig_musl/musl-1.2.5/src/internal/aarch64/get_tp.s patched_musl/musl-1.2.5/src/internal/aarch64/get_tp.s
+--- a/musl-1.2.5/src/internal/aarch64/get_tp.s 1969-12-31 16:00:00
++++ b/musl-1.2.5/src/internal/aarch64/get_tp.s 2026-05-04 12:05:41
+@@ -0,0 +1,17 @@
++/* tcc-build aarch64 thread-pointer reader.
++ *
++ * Reads tpidr_el0 into x0 and returns. Stock musl's pthread_arch.h
++ * uses `__asm__ ("mrs %0, tpidr_el0" : "=r"(tp))`; the inline-asm
++ * operand syntax is unsupported by tcc 0.9.26's arm64-asm.c (phase 3,
++ * not yet started). The mrs mnemonic itself is also outside phase 1+2,
++ * so emit raw bytes:
++ *
++ * d53bd040 mrs x0, tpidr_el0 (op0=3 op1=3 CRn=13 CRm=0 op2=2 Rt=0)
++ * d65f03c0 ret (encoded by phase-1 `ret`)
++ */
++
++.global __get_tp
++.type __get_tp,@function
++__get_tp:
++ .word 0xd53bd040
++ ret
+diff -urN orig_musl/musl-1.2.5/src/internal/aarch64/syscall.s patched_musl/musl-1.2.5/src/internal/aarch64/syscall.s
+--- a/musl-1.2.5/src/internal/aarch64/syscall.s 1969-12-31 16:00:00
++++ b/musl-1.2.5/src/internal/aarch64/syscall.s 2026-05-04 12:05:15
+@@ -0,0 +1,22 @@
++/* tcc-build aarch64 syscall trampoline.
++ *
++ * Mirrors src/internal/x86_64/syscall.s. C-ABI passes the syscall
++ * number in x0 and arguments in x1-x6; Linux aarch64 syscall ABI
++ * wants the number in x8 and arguments in x0-x5. Shuffle and svc.
++ * Return value is already in x0 from the kernel side.
++ *
++ * Mnemonics here are all in arm64-asm.c phase 1 (mov reg-reg, svc,
++ * ret). */
++
++.global __syscall
++.type __syscall,@function
++__syscall:
++ mov x8, x0
++ mov x0, x1
++ mov x1, x2
++ mov x2, x3
++ mov x3, x4
++ mov x4, x5
++ mov x5, x6
++ svc #0
++ ret
+diff -urN orig_musl/musl-1.2.5/src/internal/syscall.h patched_musl/musl-1.2.5/src/internal/syscall.h
--- a/musl-1.2.5/src/internal/syscall.h 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/internal/syscall.h 2026-04-28 22:05:59
@@ -403,7 +403,10 @@
@@ -2628,7 +3035,7 @@ diff -urN orig_musl/musl-1.2.5/src/internal/syscall.h /tmp/clean_musltcc/src/int
hidden void *__vdsosym(const char *, const char *);
-diff -urN orig_musl/musl-1.2.5/src/internal/x86_64/syscall.s /tmp/clean_musltcc/src/internal/x86_64/syscall.s
+diff -urN orig_musl/musl-1.2.5/src/internal/x86_64/syscall.s patched_musl/musl-1.2.5/src/internal/x86_64/syscall.s
--- a/musl-1.2.5/src/internal/x86_64/syscall.s 1969-12-31 16:00:00
+++ b/musl-1.2.5/src/internal/x86_64/syscall.s 2026-04-28 20:23:56
@@ -0,0 +1,13 @@
@@ -2645,7 +3052,7 @@ diff -urN orig_musl/musl-1.2.5/src/internal/x86_64/syscall.s /tmp/clean_musltcc/
+ movq 8(%rsp), %r9 /* arg6 from stack */
+ syscall
+ ret
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/expl.s /tmp/clean_musltcc/src/math/x86_64/expl.s
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/expl.s patched_musl/musl-1.2.5/src/math/x86_64/expl.s
--- a/musl-1.2.5/src/math/x86_64/expl.s 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/expl.s 1969-12-31 16:00:00
@@ -1,101 +0,0 @@
@@ -2750,7 +3157,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/expl.s /tmp/clean_musltcc/src/mat
- faddp
-1: addq $48, %rsp
- ret
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabs.c /tmp/clean_musltcc/src/math/x86_64/fabs.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabs.c patched_musl/musl-1.2.5/src/math/x86_64/fabs.c
--- a/musl-1.2.5/src/math/x86_64/fabs.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/fabs.c 1969-12-31 16:00:00
@@ -1,10 +0,0 @@
@@ -2764,7 +3171,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabs.c /tmp/clean_musltcc/src/mat
- __asm__ ("andps %1, %0" : "+x"(x) : "x"(t)); // x &= t
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabsf.c /tmp/clean_musltcc/src/math/x86_64/fabsf.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabsf.c patched_musl/musl-1.2.5/src/math/x86_64/fabsf.c
--- a/musl-1.2.5/src/math/x86_64/fabsf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/fabsf.c 1969-12-31 16:00:00
@@ -1,10 +0,0 @@
@@ -2778,7 +3185,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabsf.c /tmp/clean_musltcc/src/ma
- __asm__ ("andps %1, %0" : "+x"(x) : "x"(t)); // x &= t
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabsl.c /tmp/clean_musltcc/src/math/x86_64/fabsl.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabsl.c patched_musl/musl-1.2.5/src/math/x86_64/fabsl.c
--- a/musl-1.2.5/src/math/x86_64/fabsl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/fabsl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -2789,7 +3196,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fabsl.c /tmp/clean_musltcc/src/ma
- __asm__ ("fabs" : "+t"(x));
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fma.c /tmp/clean_musltcc/src/math/x86_64/fma.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fma.c patched_musl/musl-1.2.5/src/math/x86_64/fma.c
--- a/musl-1.2.5/src/math/x86_64/fma.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/fma.c 1969-12-31 16:00:00
@@ -1,23 +0,0 @@
@@ -2816,7 +3223,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fma.c /tmp/clean_musltcc/src/math
-#include "../fma.c"
-
-#endif
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fmaf.c /tmp/clean_musltcc/src/math/x86_64/fmaf.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fmaf.c patched_musl/musl-1.2.5/src/math/x86_64/fmaf.c
--- a/musl-1.2.5/src/math/x86_64/fmaf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/fmaf.c 1969-12-31 16:00:00
@@ -1,23 +0,0 @@
@@ -2843,7 +3250,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fmaf.c /tmp/clean_musltcc/src/mat
-#include "../fmaf.c"
-
-#endif
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fmodl.c /tmp/clean_musltcc/src/math/x86_64/fmodl.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fmodl.c patched_musl/musl-1.2.5/src/math/x86_64/fmodl.c
--- a/musl-1.2.5/src/math/x86_64/fmodl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/fmodl.c 1969-12-31 16:00:00
@@ -1,9 +0,0 @@
@@ -2856,7 +3263,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/fmodl.c /tmp/clean_musltcc/src/ma
- while (fpsr & 0x400);
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrint.c /tmp/clean_musltcc/src/math/x86_64/llrint.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrint.c patched_musl/musl-1.2.5/src/math/x86_64/llrint.c
--- a/musl-1.2.5/src/math/x86_64/llrint.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/llrint.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -2868,7 +3275,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrint.c /tmp/clean_musltcc/src/m
- __asm__ ("cvtsd2si %1, %0" : "=r"(r) : "x"(x));
- return r;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrintf.c /tmp/clean_musltcc/src/math/x86_64/llrintf.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrintf.c patched_musl/musl-1.2.5/src/math/x86_64/llrintf.c
--- a/musl-1.2.5/src/math/x86_64/llrintf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/llrintf.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -2880,7 +3287,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrintf.c /tmp/clean_musltcc/src/
- __asm__ ("cvtss2si %1, %0" : "=r"(r) : "x"(x));
- return r;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrintl.c /tmp/clean_musltcc/src/math/x86_64/llrintl.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrintl.c patched_musl/musl-1.2.5/src/math/x86_64/llrintl.c
--- a/musl-1.2.5/src/math/x86_64/llrintl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/llrintl.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -2892,7 +3299,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/llrintl.c /tmp/clean_musltcc/src/
- __asm__ ("fistpll %0" : "=m"(r) : "t"(x) : "st");
- return r;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrint.c /tmp/clean_musltcc/src/math/x86_64/lrint.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrint.c patched_musl/musl-1.2.5/src/math/x86_64/lrint.c
--- a/musl-1.2.5/src/math/x86_64/lrint.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/lrint.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -2904,7 +3311,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrint.c /tmp/clean_musltcc/src/ma
- __asm__ ("cvtsd2si %1, %0" : "=r"(r) : "x"(x));
- return r;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrintf.c /tmp/clean_musltcc/src/math/x86_64/lrintf.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrintf.c patched_musl/musl-1.2.5/src/math/x86_64/lrintf.c
--- a/musl-1.2.5/src/math/x86_64/lrintf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/lrintf.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -2916,7 +3323,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrintf.c /tmp/clean_musltcc/src/m
- __asm__ ("cvtss2si %1, %0" : "=r"(r) : "x"(x));
- return r;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrintl.c /tmp/clean_musltcc/src/math/x86_64/lrintl.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrintl.c patched_musl/musl-1.2.5/src/math/x86_64/lrintl.c
--- a/musl-1.2.5/src/math/x86_64/lrintl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/lrintl.c 1969-12-31 16:00:00
@@ -1,8 +0,0 @@
@@ -2928,7 +3335,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/lrintl.c /tmp/clean_musltcc/src/m
- __asm__ ("fistpll %0" : "=m"(r) : "t"(x) : "st");
- return r;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/remainderl.c /tmp/clean_musltcc/src/math/x86_64/remainderl.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/remainderl.c patched_musl/musl-1.2.5/src/math/x86_64/remainderl.c
--- a/musl-1.2.5/src/math/x86_64/remainderl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/remainderl.c 1969-12-31 16:00:00
@@ -1,9 +0,0 @@
@@ -2941,7 +3348,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/remainderl.c /tmp/clean_musltcc/s
- while (fpsr & 0x400);
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/remquol.c /tmp/clean_musltcc/src/math/x86_64/remquol.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/remquol.c patched_musl/musl-1.2.5/src/math/x86_64/remquol.c
--- a/musl-1.2.5/src/math/x86_64/remquol.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/remquol.c 1969-12-31 16:00:00
@@ -1,32 +0,0 @@
@@ -2977,7 +3384,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/remquol.c /tmp/clean_musltcc/src/
- *quo = (cx[9]^cy[9]) < 0 ? -qbits : qbits;
- return t;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/rintl.c /tmp/clean_musltcc/src/math/x86_64/rintl.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/rintl.c patched_musl/musl-1.2.5/src/math/x86_64/rintl.c
--- a/musl-1.2.5/src/math/x86_64/rintl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/rintl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -2988,7 +3395,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/rintl.c /tmp/clean_musltcc/src/ma
- __asm__ ("frndint" : "+t"(x));
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrt.c /tmp/clean_musltcc/src/math/x86_64/sqrt.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrt.c patched_musl/musl-1.2.5/src/math/x86_64/sqrt.c
--- a/musl-1.2.5/src/math/x86_64/sqrt.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/sqrt.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -2999,7 +3406,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrt.c /tmp/clean_musltcc/src/mat
- __asm__ ("sqrtsd %1, %0" : "=x"(x) : "x"(x));
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrtf.c /tmp/clean_musltcc/src/math/x86_64/sqrtf.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrtf.c patched_musl/musl-1.2.5/src/math/x86_64/sqrtf.c
--- a/musl-1.2.5/src/math/x86_64/sqrtf.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/sqrtf.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -3010,7 +3417,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrtf.c /tmp/clean_musltcc/src/ma
- __asm__ ("sqrtss %1, %0" : "=x"(x) : "x"(x));
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrtl.c /tmp/clean_musltcc/src/math/x86_64/sqrtl.c
+diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrtl.c patched_musl/musl-1.2.5/src/math/x86_64/sqrtl.c
--- a/musl-1.2.5/src/math/x86_64/sqrtl.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/math/x86_64/sqrtl.c 1969-12-31 16:00:00
@@ -1,7 +0,0 @@
@@ -3021,7 +3428,7 @@ diff -urN orig_musl/musl-1.2.5/src/math/x86_64/sqrtl.c /tmp/clean_musltcc/src/ma
- __asm__ ("fsqrt" : "+t"(x));
- return x;
-}
-diff -urN orig_musl/musl-1.2.5/src/network/lookup.h /tmp/clean_musltcc/src/network/lookup.h
+diff -urN orig_musl/musl-1.2.5/src/network/lookup.h patched_musl/musl-1.2.5/src/network/lookup.h
--- a/musl-1.2.5/src/network/lookup.h 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/network/lookup.h 2026-04-28 22:17:25
@@ -43,9 +43,9 @@
@@ -3037,7 +3444,7 @@ diff -urN orig_musl/musl-1.2.5/src/network/lookup.h /tmp/clean_musltcc/src/netwo
hidden int __get_resolv_conf(struct resolvconf *, char *, size_t);
hidden int __res_msend_rc(int, const unsigned char *const *, const int *, unsigned char *const *, int *, int, const struct resolvconf *);
-diff -urN orig_musl/musl-1.2.5/src/network/lookup_ipliteral.c /tmp/clean_musltcc/src/network/lookup_ipliteral.c
+diff -urN orig_musl/musl-1.2.5/src/network/lookup_ipliteral.c patched_musl/musl-1.2.5/src/network/lookup_ipliteral.c
--- a/musl-1.2.5/src/network/lookup_ipliteral.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/network/lookup_ipliteral.c 2026-04-28 22:17:25
@@ -9,7 +9,7 @@
@@ -3049,7 +3456,7 @@ diff -urN orig_musl/musl-1.2.5/src/network/lookup_ipliteral.c /tmp/clean_musltcc
{
struct in_addr a4;
struct in6_addr a6;
-diff -urN orig_musl/musl-1.2.5/src/network/lookup_name.c /tmp/clean_musltcc/src/network/lookup_name.c
+diff -urN orig_musl/musl-1.2.5/src/network/lookup_name.c patched_musl/musl-1.2.5/src/network/lookup_name.c
--- a/musl-1.2.5/src/network/lookup_name.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/network/lookup_name.c 2026-04-28 22:17:25
@@ -23,7 +23,7 @@
@@ -3103,7 +3510,7 @@ diff -urN orig_musl/musl-1.2.5/src/network/lookup_name.c /tmp/clean_musltcc/src/
{
int cnt = 0, i, j;
-diff -urN orig_musl/musl-1.2.5/src/network/lookup_serv.c /tmp/clean_musltcc/src/network/lookup_serv.c
+diff -urN orig_musl/musl-1.2.5/src/network/lookup_serv.c patched_musl/musl-1.2.5/src/network/lookup_serv.c
--- a/musl-1.2.5/src/network/lookup_serv.c 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/network/lookup_serv.c 2026-04-28 22:17:25
@@ -9,7 +9,7 @@
@@ -3115,7 +3522,7 @@ diff -urN orig_musl/musl-1.2.5/src/network/lookup_serv.c /tmp/clean_musltcc/src/
{
char line[128];
int cnt = 0;
-diff -urN orig_musl/musl-1.2.5/src/signal/x86_64/sigsetjmp.s /tmp/clean_musltcc/src/signal/x86_64/sigsetjmp.s
+diff -urN orig_musl/musl-1.2.5/src/signal/x86_64/sigsetjmp.s patched_musl/musl-1.2.5/src/signal/x86_64/sigsetjmp.s
--- a/musl-1.2.5/src/signal/x86_64/sigsetjmp.s 2024-02-29 18:07:33
+++ b/musl-1.2.5/src/signal/x86_64/sigsetjmp.s 1969-12-31 16:00:00
@@ -1,24 +0,0 @@