boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

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:
Mdocs/MUSL.md | 105++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------
Mscripts/boot4.sh | 21+++++++++++++++++++--
Mvendor/upstream/musl-1.2.5-tcc.patch | 603++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
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 @@