authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-06-04 22:37:28-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-06-04 22:37:28-07:00
log46b2f67905e67bab1573f7b72536800bd8f6e669
treea06594e9f3bc9362ff2443f9482709504a38e6a2
parent0098e650fbceae74c8c468716c0810476f72ec47

update musl libc.S to v1.2.5

adds loongarch64 and riscv32

2 files changed, 79 insertions(+), 32 deletions(-)

lib/libc/musl/libc.S+23-14
......@@ -168,7 +168,7 @@ _IO_putc:
168168.weak _IO_putc_unlocked
169169.type _IO_putc_unlocked, %function;
170170_IO_putc_unlocked:
171#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
171#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
172172.globl ___tls_get_addr
173173.type ___tls_get_addr, %function;
174174___tls_get_addr:
......@@ -187,7 +187,7 @@ __aio_suspend_time64:
187187.globl __assert_fail
188188.type __assert_fail, %function;
189189__assert_fail:
190#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
190#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
191191.globl __cachectl
192192.type __cachectl, %function;
193193__cachectl:
......@@ -498,7 +498,7 @@ __localtime64:
498498.type __localtime64_r, %function;
499499__localtime64_r:
500500#endif
501#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
501#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_loongarch64)
502502.globl __longjmp
503503.type __longjmp, %function;
504504__longjmp:
......@@ -576,17 +576,17 @@ __recvmmsg_time64:
576576.globl __res_state
577577.type __res_state, %function;
578578__res_state:
579#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
579#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
580580.globl __restore
581581.type __restore, %function;
582582__restore:
583583#endif
584#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
584#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
585585.globl __restore_rt
586586.type __restore_rt, %function;
587587__restore_rt:
588588#endif
589#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
589#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_loongarch64)
590590.globl __riscv_flush_icache
591591.type __riscv_flush_icache, %function;
592592__riscv_flush_icache:
......@@ -796,7 +796,7 @@ _dl_debug_state:
796796.globl _dlstart
797797.type _dlstart, %function;
798798_dlstart:
799#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
799#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
800800.globl _dlstart_data
801801.type _dlstart_data, %function;
802802_dlstart_data:
......@@ -807,7 +807,7 @@ _exit:
807807.weak _fini
808808.type _fini, %function;
809809_fini:
810#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
810#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
811811.globl _flush_cache
812812.type _flush_cache, %function;
813813_flush_cache:
......@@ -908,7 +908,7 @@ aligned_alloc:
908908.globl alphasort
909909.type alphasort, %function;
910910alphasort:
911#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
911#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
912912.globl arch_prctl
913913.type arch_prctl, %function;
914914arch_prctl:
......@@ -1033,12 +1033,12 @@ cabsf:
10331033.globl cabsl
10341034.type cabsl, %function;
10351035cabsl:
1036#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
1036#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
10371037.weak cachectl
10381038.type cachectl, %function;
10391039cachectl:
10401040#endif
1041#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
1041#if !defined(ARCH_riscv64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
10421042.weak cacheflush
10431043.type cacheflush, %function;
10441044cacheflush:
......@@ -2549,12 +2549,12 @@ insque:
25492549.globl ioctl
25502550.type ioctl, %function;
25512551ioctl:
2552#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64)
2552#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
25532553.globl ioperm
25542554.type ioperm, %function;
25552555ioperm:
25562556#endif
2557#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64)
2557#if !defined(ARCH_riscv64) && !defined(ARCH_mips64) && !defined(ARCH_aarch64) && !defined(ARCH_riscv32) && !defined(ARCH_loongarch64)
25582558.globl iopl
25592559.type iopl, %function;
25602560iopl:
......@@ -3435,6 +3435,9 @@ pread:
34353435.globl preadv
34363436.type preadv, %function;
34373437preadv:
3438.globl preadv2
3439.type preadv2, %function;
3440preadv2:
34383441.globl printf
34393442.type printf, %function;
34403443printf:
......@@ -3840,6 +3843,9 @@ pwrite:
38403843.globl pwritev
38413844.type pwritev, %function;
38423845pwritev:
3846.globl pwritev2
3847.type pwritev2, %function;
3848pwritev2:
38433849.globl qsort
38443850.type qsort, %function;
38453851qsort:
......@@ -3993,7 +3999,7 @@ rintf:
39933999.globl rintl
39944000.type rintl, %function;
39954001rintl:
3996#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64)
4002#if !defined(ARCH_mips) && !defined(ARCH_mips64) && !defined(ARCH_x86) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) && !defined(ARCH_loongarch64)
39974003.weak riscv_flush_icache
39984004.type riscv_flush_icache, %function;
39994005riscv_flush_icache:
......@@ -4463,6 +4469,9 @@ statfs:
44634469.globl statvfs
44644470.type statvfs, %function;
44654471statvfs:
4472.globl statx
4473.type statx, %function;
4474statx:
44664475.globl stime
44674476.type stime, %function;
44684477stime:
tools/gen_stubs.zig+56-18
......@@ -30,7 +30,9 @@ const elf = std.elf;
3030const native_endian = @import("builtin").target.cpu.arch.endian();
3131
3232const inputs = .{
33 .riscv32,
3334 .riscv64,
35 .loongarch64,
3436 .mips,
3537 .mips64,
3638 .x86,
......@@ -581,15 +583,17 @@ fn parseElf(parse: Parse, comptime is_64: bool, comptime endian: builtin.Endian)
581583fn archIndex(arch: std.Target.Cpu.Arch) u8 {
582584 return switch (arch) {
583585 // zig fmt: off
584 .riscv64 => 0,
585 .mips => 1,
586 .mips64 => 2,
587 .x86 => 3,
588 .x86_64 => 4,
589 .powerpc => 5,
590 .powerpc64 => 6,
591 .aarch64 => 7,
592 else => unreachable,
586 .riscv64 => 0,
587 .mips => 1,
588 .mips64 => 2,
589 .x86 => 3,
590 .x86_64 => 4,
591 .powerpc => 5,
592 .powerpc64 => 6,
593 .aarch64 => 7,
594 .riscv32 => 8,
595 .loongarch64 => 9,
596 else => unreachable,
593597 // zig fmt: on
594598 };
595599}
......@@ -597,15 +601,17 @@ fn archIndex(arch: std.Target.Cpu.Arch) u8 {
597601fn archMuslName(arch: std.Target.Cpu.Arch) []const u8 {
598602 return switch (arch) {
599603 // zig fmt: off
600 .riscv64 => "riscv64",
601 .mips => "mips",
602 .mips64 => "mips64",
603 .x86 => "i386",
604 .x86_64 => "x86_64",
605 .powerpc => "powerpc",
606 .powerpc64 => "powerpc64",
607 .aarch64 => "aarch64",
608 else => unreachable,
604 .riscv64 => "riscv64",
605 .mips => "mips",
606 .mips64 => "mips64",
607 .x86 => "i386",
608 .x86_64 => "x86_64",
609 .powerpc => "powerpc",
610 .powerpc64 => "powerpc64",
611 .aarch64 => "aarch64",
612 .riscv32 => "riscv32",
613 .loongarch64 => "loongarch64",
614 else => unreachable,
609615 // zig fmt: on
610616 };
611617}
......@@ -693,6 +699,7 @@ const blacklisted_symbols = [_][]const u8{
693699 "__ceilx",
694700 "__clear_cache",
695701 "__clzdi2",
702 "__chk_fail",
696703 "__clzsi2",
697704 "__clzti2",
698705 "__cmpdf2",
......@@ -844,6 +851,10 @@ const blacklisted_symbols = [_][]const u8{
844851 "__ltsf2",
845852 "__lttf2",
846853 "__ltxf2",
854 "__memcpy_chk",
855 "__memmove_chk",
856 "__memset",
857 "__memset_chk",
847858 "__moddi3",
848859 "__modsi3",
849860 "__modti3",
......@@ -896,6 +907,10 @@ const blacklisted_symbols = [_][]const u8{
896907 "__sinx",
897908 "__sqrth",
898909 "__sqrtx",
910 "__strcat_chk",
911 "__strcpy_chk",
912 "__strncat_chk",
913 "__strncpy_chk",
899914 "__subdf3",
900915 "__subkf3",
901916 "__subodi4",
......@@ -940,24 +955,47 @@ const blacklisted_symbols = [_][]const u8{
940955 "__unordtf2",
941956 "__zig_probe_stack",
942957 "ceilf128",
958 "ceilq",
943959 "cosf128",
960 "cosq",
944961 "exp2f128",
962 "exp2q",
945963 "expf128",
964 "expq",
946965 "fabsf128",
966 "fabsq",
967 "fabsq.2",
968 "fabsq.3",
947969 "floorf128",
970 "floorq",
948971 "fmaf128",
949972 "fmaq",
950973 "fmaxf128",
974 "fmaxq",
975 "fmaxq.2",
976 "fmaxq.3",
951977 "fminf128",
978 "fminq",
952979 "fmodf128",
980 "fmodq",
953981 "log10f128",
982 "log10q",
954983 "log2f128",
984 "log2q",
955985 "logf128",
986 "logq",
956987 "roundf128",
988 "roundq",
957989 "sincosf128",
990 "sincosq",
958991 "sinf128",
992 "sinq",
959993 "sqrtf128",
994 "sqrtq",
995 "tanf128",
996 "tanq",
960997 "truncf128",
998 "truncq",
961999 "__aarch64_cas16_acq",
9621000 "__aarch64_cas16_acq_rel",
9631001 "__aarch64_cas16_rel",