mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-09 00:02:17 +03:00
01d9fe4d9f
These are mostly copied from riscv64. _Addr and _Reg had to become int to match compiler-controlled parts of the ABI (result type of sizeof, etc.). There is no kernel stat struct; the userspace stat matches glibc in the sizes and offsets of all fields (including glibc's __dev_t __pad1). The jump buffer is 12 words larger to account for 12 saved double-precision floats; additionally it should be 64-bit aligned to save doubles. The syscall list was significantly revised by deleting all time32 and pre-statx syscalls, and renaming several syscalls that have different names depending on __BITS_PER_LONG, notably mmap2 and _llseek. futex was added as an alias to futex_time64 since it is widely used by software which does not pass time arguments.
20 lines
379 B
C
20 lines
379 B
C
__asm__(
|
|
".section .sdata,\"aw\"\n"
|
|
".text\n"
|
|
".global " START "\n"
|
|
".type " START ",%function\n"
|
|
START ":\n"
|
|
".weak __global_pointer$\n"
|
|
".hidden __global_pointer$\n"
|
|
".option push\n"
|
|
".option norelax\n\t"
|
|
"lla gp, __global_pointer$\n"
|
|
".option pop\n\t"
|
|
"mv a0, sp\n"
|
|
".weak _DYNAMIC\n"
|
|
".hidden _DYNAMIC\n\t"
|
|
"lla a1, _DYNAMIC\n\t"
|
|
"andi sp, sp, -16\n\t"
|
|
"tail " START "_c"
|
|
);
|