Skip to content

Commit b6ba398

Browse files
committed
Add riscv64 support
Signed-off-by: Eduard Vintilă <eduard.vintila47@gmail.com>
1 parent 484fc06 commit b6ba398

8 files changed

+368
-1
lines changed

Makefile.uk.musl.fenv

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ else ifeq (x86_32,$(CONFIG_UK_ARCH))
1717
LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/i386/fenv.s|x86_32
1818
else ifeq (x86_64,$(CONFIG_UK_ARCH))
1919
LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/x86_64/fenv.s|x86_64
20+
else ifeq (riscv64,$(CONFIG_UK_ARCH))
21+
LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/riscv64/fenv.S|riscv64
22+
LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/riscv64/fenv-sf.c|riscv64
2023
else
2124
LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/fenv.c
2225
endif

Makefile.uk.musl.ldso

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/i386/tlsdesc.s|x86_32
3030
else ifeq (x86_64,$(CONFIG_UK_ARCH))
3131
LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/x86_64/dlsym.s|x86_64
3232
LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/x86_64/tlsdesc.s|x86_64
33+
else ifeq (riscv64,$(CONFIG_UK_ARCH))
34+
LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/riscv64/dlsym.s|riscv64
3335
else
3436
LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/tlsdesc.c
3537
LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/dlsym.c

Makefile.uk.musl.math

+249
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,255 @@ LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/arm/fabs.c|arm
778778
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/arm/fabsf.c|arm
779779
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/arm/sqrt.c|arm
780780
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/arm/sqrtf.c|arm
781+
else ifeq (riscv64,$(CONFIG_UK_ARCH))
782+
# reset sources proviously added
783+
LIBMUSL_MATH_SRCS-y =
784+
# base sources (skips the ones replaced by riscv64)
785+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acos.c
786+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acosf.c
787+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acosh.c
788+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acoshf.c
789+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acoshl.c
790+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acosl.c
791+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asin.c
792+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinf.c
793+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinh.c
794+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinhf.c
795+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinhl.c
796+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinl.c
797+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atan2.c
798+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atan2f.c
799+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atan2l.c
800+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atan.c
801+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanf.c
802+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanh.c
803+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanhf.c
804+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanhl.c
805+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanl.c
806+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrt.c
807+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrtf.c
808+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrtl.c
809+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceil.c
810+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceilf.c
811+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceill.c
812+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysign.c
813+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysignf.c
814+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysignl.c
815+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__cos.c
816+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cos.c
817+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__cosdf.c
818+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cosf.c
819+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cosh.c
820+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/coshf.c
821+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/coshl.c
822+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__cosl.c
823+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cosl.c
824+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/erf.c
825+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/erff.c
826+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/erfl.c
827+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp10.c
828+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp10f.c
829+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp10l.c
830+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2.c
831+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2f.c
832+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2f_data.c
833+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2l.c
834+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp.c
835+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp_data.c
836+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expf.c
837+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expl.c
838+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expm1.c
839+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expm1f.c
840+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expm1l.c
841+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__expo2.c
842+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__expo2f.c
843+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fabs.c
844+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fabsf.c
845+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fabsl.c
846+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdim.c
847+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdimf.c
848+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdiml.c
849+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/finite.c
850+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/finitef.c
851+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floor.c
852+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floorf.c
853+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floorl.c
854+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fma.c
855+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaf.c
856+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmal.c
857+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmax.c
858+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaxf.c
859+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaxl.c
860+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmin.c
861+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fminf.c
862+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fminl.c
863+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmod.c
864+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmodf.c
865+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmodl.c
866+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__fpclassify.c
867+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__fpclassifyf.c
868+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__fpclassifyl.c
869+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/frexp.c
870+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/frexpf.c
871+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/frexpl.c
872+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/hypot.c
873+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/hypotf.c
874+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/hypotl.c
875+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ilogb.c
876+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ilogbf.c
877+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ilogbl.c
878+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__invtrigl.c
879+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j0.c
880+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j0f.c
881+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j1.c
882+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j1f.c
883+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/jn.c
884+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/jnf.c
885+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ldexp.c
886+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ldexpf.c
887+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ldexpl.c
888+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgamma.c
889+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammaf.c
890+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammaf_r.c
891+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammal.c
892+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgamma_r.c
893+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llrint.c
894+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llrintf.c
895+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llrintl.c
896+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llround.c
897+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llroundf.c
898+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llroundl.c
899+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log10.c
900+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log10f.c
901+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log10l.c
902+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log1p.c
903+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log1pf.c
904+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log1pl.c
905+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2.c
906+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2_data.c
907+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2f.c
908+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2f_data.c
909+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2l.c
910+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logb.c
911+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logbf.c
912+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logbl.c
913+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log.c
914+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log_data.c
915+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logf.c
916+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logf_data.c
917+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logl.c
918+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lrint.c
919+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lrintf.c
920+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lrintl.c
921+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lround.c
922+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lroundf.c
923+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lroundl.c
924+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_divzero.c
925+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_divzerof.c
926+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalid.c
927+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalidf.c
928+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalidl.c
929+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_oflow.c
930+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_oflowf.c
931+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_uflow.c
932+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_uflowf.c
933+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_xflow.c
934+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_xflowf.c
935+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modf.c
936+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modff.c
937+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modfl.c
938+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nan.c
939+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nanf.c
940+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nanl.c
941+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyint.c
942+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyintf.c
943+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyintl.c
944+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafter.c
945+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafterf.c
946+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafterl.c
947+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nexttoward.c
948+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nexttowardf.c
949+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nexttowardl.c
950+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__polevll.c
951+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/pow.c
952+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/pow_data.c
953+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powf.c
954+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powf_data.c
955+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powl.c
956+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remainder.c
957+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remainderf.c
958+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remainderl.c
959+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2.c
960+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2f.c
961+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2_large.c
962+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2l.c
963+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquo.c
964+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquof.c
965+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquol.c
966+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rint.c
967+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rintf.c
968+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rintl.c
969+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/round.c
970+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/roundf.c
971+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/roundl.c
972+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalb.c
973+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbf.c
974+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbln.c
975+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalblnf.c
976+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalblnl.c
977+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbn.c
978+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbnf.c
979+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbnl.c
980+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__signbit.c
981+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__signbitf.c
982+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__signbitl.c
983+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/signgam.c
984+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/significand.c
985+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/significandf.c
986+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__sin.c
987+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sin.c
988+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sincos.c
989+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sincosf.c
990+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sincosl.c
991+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__sindf.c
992+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinf.c
993+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinh.c
994+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinhf.c
995+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinhl.c
996+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__sinl.c
997+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinl.c
998+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrt.c
999+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrt_data.c
1000+
#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrtf.c
1001+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrtl.c
1002+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__tan.c
1003+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tan.c
1004+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__tandf.c
1005+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanf.c
1006+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanh.c
1007+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanhf.c
1008+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanhl.c
1009+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__tanl.c
1010+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanl.c
1011+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgamma.c
1012+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgammaf.c
1013+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgammal.c
1014+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/trunc.c
1015+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/truncf.c
1016+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/truncl.c
1017+
# riscv64 specific sources
1018+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/copysign.c|riscv64
1019+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/copysignf.c|riscv64
1020+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fabs.c|riscv64
1021+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fabsf.c|riscv64
1022+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fma.c|riscv64
1023+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fmaf.c|riscv64
1024+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fmax.c|riscv64
1025+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fmaxf.c|riscv64
1026+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fmin.c|riscv64
1027+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/fminf.c|riscv64
1028+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/sqrt.c|riscv64
1029+
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/riscv64/sqrtf.c|riscv64
7811030
else
7821031
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acosl.c
7831032
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinl.c

Makefile.uk.musl.setjmp

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/i386/setjmp.s|i386
1313
else ifeq (x86_64,$(CONFIG_UK_ARCH))
1414
LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/x86_64/longjmp.s|x86_64
1515
LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/x86_64/setjmp.s|x86_64
16+
else ifeq (riscv64,$(CONFIG_UK_ARCH))
17+
LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/riscv64/longjmp.S|riscv64
18+
LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/riscv64/setjmp.S|riscv64
1619
endif
1720

1821

Makefile.uk.musl.thread

+4
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@ else ifeq (arm64,$(CONFIG_UK_ARCH))
173173
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/aarch64/__unmapself.s|aarch64
174174
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/aarch64/clone.s|aarch64
175175
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/aarch64/syscall_cp.s|aarch64
176+
else ifeq (riscv64,$(CONFIG_UK_ARCH))
177+
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/riscv64/clone.s|riscv64
178+
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/riscv64/syscall_cp.s|riscv64
179+
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/riscv64/__unmapself.s|riscv64
176180
else
177181
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/clone.c|thread
178182
endif

__uk_init_tls.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ void *__uk_copy_tls(unsigned char *mem)
9696

9797
td = (pthread_t) ukarch_tls_tcb_get(ukarch_tls_tlsp(tls_area));
9898
td->dtv = tls_area;
99+
td->self = td->next = td->prev = td;
99100

100101
return td;
101102
}
@@ -182,7 +183,7 @@ int uk_thread_uktcb_init(struct uk_thread *thread, void *tcb)
182183

183184
td->stack = thread->_mem.stack;
184185
td->stack_size = __STACK_SIZE;
185-
td->self = td;
186+
td->self = td->next = td->prev = td;
186187
td->tsd = (void *)uk_memalign(
187188
uk_alloc_get_default(),
188189
__PAGE_SIZE,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
From 48a182ac6fc609298b946fcf1232f330e3691d49 Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Eduard=20Vintil=C4=83?= <eduard.vintila47@gmail.com>
3+
Date: Wed, 15 Mar 2023 16:43:47 +0200
4+
Subject: [PATCH] Modify riscv64 `clone` wrapper
5+
MIME-Version: 1.0
6+
Content-Type: text/plain; charset=UTF-8
7+
Content-Transfer-Encoding: 8bit
8+
9+
Signed-off-by: Eduard Vintilă <eduard.vintila47@gmail.com>
10+
---
11+
src/thread/riscv64/clone.s | 21 ++++++++++++++-------
12+
1 file changed, 14 insertions(+), 7 deletions(-)
13+
14+
diff --git a/src/thread/riscv64/clone.s b/src/thread/riscv64/clone.s
15+
index db908248..068458b9 100644
16+
--- a/src/thread/riscv64/clone.s
17+
+++ b/src/thread/riscv64/clone.s
18+
@@ -1,8 +1,13 @@
19+
# __clone(func, stack, flags, arg, ptid, tls, ctid)
20+
# a0, a1, a2, a3, a4, a5, a6
21+
22+
-# syscall(SYS_clone, flags, stack, ptid, tls, ctid)
23+
-# a7 a0, a1, a2, a3, a4
24+
+# see: lib/posix-process/clone.c
25+
+# uk_syscall_r_clone(flags, stack, ptid, tlsp, ctid)
26+
+# a0, a1, a2, a3, a4
27+
+
28+
+# see: lib/posix-process/process.c
29+
+# uk_syscall_r_exit(status)
30+
+# a0
31+
32+
.global __clone
33+
.type __clone, %function
34+
@@ -12,16 +17,17 @@ __clone:
35+
sd a0, 0(a1)
36+
sd a3, 8(a1)
37+
38+
- # Call SYS_clone
39+
+ # Call uk_syscall_r_clone
40+
mv a0, a2
41+
mv a2, a4
42+
mv a3, a5
43+
mv a4, a6
44+
- li a7, 220 # SYS_clone
45+
- ecall
46+
+ mv s1, ra # Save parent return address
47+
+ call uk_syscall_r_clone
48+
49+
beqz a0, 1f
50+
# Parent
51+
+ mv ra, s1
52+
ret
53+
54+
# Child
55+
@@ -30,5 +36,6 @@ __clone:
56+
jalr a1
57+
58+
# Exit
59+
- li a7, 93 # SYS_exit
60+
- ecall
61+
+ mv a0, x0
62+
+ call uk_syscall_r_exit
63+
+ wfi
64+
--
65+
2.39.1
66+

0 commit comments

Comments
 (0)