################################################################################
# This will reserve space within `uk_tls` for the pthread structure in Musl.
# Please refer to ./arch/Makefile.rules for more details.
-# For this version of Musl the size of "struct pthread" is 280.
+# For this version of Musl the size of "struct pthread" is 200.
################################################################################
-$(eval $(call ukarch_tls_tcb_reserve,280))
+$(eval $(call ukarch_tls_tcb_reserve,200))
+################################################################################
+# On aarch64, newer versions of musl no longer expect a 16-byte reserved block
+# at the end of the TCB. See: https://www.openwall.com/lists/musl/2018/06/01/14
+################################################################################
+ifeq (arm64,$(CONFIG_UK_ARCH))
+$(eval $(call aarch64_no_reserved_tcb_overlap))
+endif
################################################################################
# Library registration
################################################################################
# Sources
################################################################################
-LIBMUSL_VERSION=1.1.19
+LIBMUSL_VERSION=1.2.3
LIBMUSL_URL=https://www.musl-libc.org/releases/musl-$(LIBMUSL_VERSION).tar.gz
LIBMUSL_PATCHDIR=$(LIBMUSL_BASE)/patches
$(eval $(call fetch,libmusl,$(LIBMUSL_URL)))
LIBMUSL_GLOBAL_INCLUDES-y += -I$(LIBMUSL)/arch/generic
LIBMUSL_GLOBAL_INCLUDES-y += -I$(LIBMUSL_BASE)/include
+# Newer versions of Musl define internal wrapper headers for implementing some
+# of the standard library headers (unistd.h, string.h etc.). These wrappers have exactly
+# the same name as their standard counterparts, and they must be included very early in
+# the include search path (i.e. before the CINCLUDES) for Musl source files. Due to how the
+# build system is set up (see support/build/Makefile.rules), the only way we can do this
+# is through the LIBMUSL_COMPFLAGS variable.
+LIBMUSL_COMPFLAGS-y += -I$(LIBMUSL)/arch/$(MUSL_ARCH)
+LIBMUSL_COMPFLAGS-y += -I$(LIBMUSL)/src/include
+LIBMUSL_COMPFLAGS-y += -I$(LIBMUSL)/src/internal
+
CINCLUDES-y += $(LIBMUSL_GLOBAL_INCLUDES-y)
CXXINCLUDES-y += $(LIBMUSL_GLOBAL_INCLUDES-y)
LIBMUSLGLUE_SRCS-y += $(LIBMUSL_BASE)/__uk_init_tls.c
LIBMUSLGLUE_SRCS-y += $(LIBMUSL_BASE)/__uk_unmapself.c
LIBMUSLGLUE_SRCS-y += $(LIBMUSL_BASE)/__set_thread_area.c
+LIBMUSLGLUE_COMPFLAGS-y += -I$(LIBMUSL)/src/include
+LIBMUSLGLUE_COMPFLAGS-y += -I$(LIBMUSL)/src/internal
LIBMUSLGLUE_CINCLUDES += -I$(LIBMUSL)/src/internal
################################################################################
LIBMUSL_COMPLEX_HDRS-y += $(LIBMUSL)/include/complex.h
+LIBMUSL_COMPLEX_HDRS-y += $(LIBMUSL)/src/internal/complex_impl.h
LIBMUSL_COMPLEX_HDRS-y += $(LIBMUSL)/include/float.h
-LIBMUSL_COMPLEX_HDRS-y += $(LIBMUSL)/src/intenal/libm.h
ifeq ($(CONFIG_LIBMUSL_MATH),y)
LIBMUSL_COMPLEX_HDRS-y += $(LIBMUSL)/include/tgmath.h
endif
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinh.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinhl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/creal.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/__cexpf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinl.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cabs.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cexp.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccosl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccoshf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccosh.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csqrt.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccos.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cabsf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cabsl.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacos.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacosl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cexpf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cprojf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/conjf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanhl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/creall.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinl.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacosf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinh.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cimag.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctan.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinf.c
-# TO DO: missing __mulxc3
-#LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cpowl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacosh.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacoshf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanhl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinhl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacoshl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacosl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/carg.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cargf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cargl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casin.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinh.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinhf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanl.c
-# TO DO: missing __muldc3
-#LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cpow.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinhl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casinl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catan.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanf.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanh.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/__cexp.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/clogl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacosh.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cargl.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanhf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanhl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catanl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccos.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccosf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccosh.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccoshf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccoshl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccosl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/__cexp.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cexp.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/__cexpf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cexpf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cexpl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cimag.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cimagf.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cimagl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cprojl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/clog.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/clogf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/clogl.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/conj.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/conjf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/conjl.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cproj.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cargf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/catan.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cacoshl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/clogf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csqrtf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/clog.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/casin.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanh.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cexpl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cprojf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cprojl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/creal.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/crealf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/creall.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csin.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cabsf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cimagf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanhf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/carg.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinhf.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/crealf.c
-# TO DO: missing __mulsc3
-#LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cpowf.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/cabsl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/conjl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccoshl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinh.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinhf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinhl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csinl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csqrt.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csqrtf.c
LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/csqrtl.c
-LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ccosf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctan.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanh.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanhf.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanhl.c
+LIBMUSL_COMPLEX_SRCS-y += $(LIBMUSL)/src/complex/ctanl.c
+
$(eval $(call _libmusl_import_lib,complex,$(LIBMUSL_COMPLEX_HDRS-y),$(LIBMUSL_COMPLEX_SRCS-y)))
LIBMUSL_DIRENT_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_DIRENT_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
-LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/__getdents.c
LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/alphasort.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/closedir.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/dirfd.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/fdopendir.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/opendir.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/readdir.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/readdir_r.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/rewinddir.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/scandir.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/seekdir.c
-#LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/telldir.c
LIBMUSL_DIRENT_SRCS-y += $(LIBMUSL)/src/dirent/versionsort.c
$(eval $(call _libmusl_import_lib,dirent,$(LIBMUSL_DIRENT_HDRS-y),$(LIBMUSL_DIRENT_SRCS-y)))
LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/include/stddef.h
LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/include/stdint.h
LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/include/stdlib.h
-LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/include/string.h
-LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
+LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/src/include/string.h
+LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/include/syscall.h
LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/include/sys/mman.h
+LIBMUSL_ENV_HDRS-y += $(LIBMUSL)/src/include/unistd.h
+LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/clearenv.c
LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/__environ.c
+LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/getenv.c
LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/__init_tls.c
LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/__libc_start_main.c
-LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/__reset_tls.c
-LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/__stack_chk_fail.c
-LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/clearenv.c
-LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/getenv.c
LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/putenv.c
+LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/__reset_tls.c
+LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/secure_getenv.c
LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/setenv.c
+LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/__stack_chk_fail.c
LIBMUSL_ENV_SRCS-y += $(LIBMUSL)/src/env/unsetenv.c
$(eval $(call _libmusl_import_lib,env,$(LIBMUSL_ENV_HDRS-y),$(LIBMUSL_ENV_SRCS-y)))
LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/src/internal/atomic.h
+LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/src/internal/fork_impl.h
+LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/src/internal/ksigaction.h
LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/src/internal/libc.h
+LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/src/internal/lock.h
LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/src/internal/pthread_impl.h
LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/include/signal.h
LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/include/stdint.h
LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/include/stdio.h
LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/include/stdlib.h
-LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
+LIBMUSL_EXIT_HDRS-y += $(LIBMUSL)/include/syscall.h
+
-LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/_Exit.c
LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/abort.c
-LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/arm/__aeabi_atexit.c
+LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/abort_lock.c
LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/assert.c
-LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/at_quick_exit.c
LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/atexit.c
+LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/at_quick_exit.c
LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/exit.c
+LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/_Exit.c
LIBMUSL_EXIT_SRCS-y += $(LIBMUSL)/src/exit/quick_exit.c
$(eval $(call _libmusl_import_lib,exit,$(LIBMUSL_EXIT_HDRS-y),$(LIBMUSL_EXIT_SRCS-y)))
LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/fenv.c
endif
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/mips/fenv-sf.c
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/mips/fenv.S
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/mips64/fenv-sf.c
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/mips64/fenv.S
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/mipsn32/fenv-sf.c
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/mipsn32/fenv.S
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/powerpc/fenv-sf.c
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/powerpc/fenv.S
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/powerpc64/fenv.c
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/s390x/fenv.c
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/sh/fenv-nofpu.c
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/sh/fenv.S
-#LIBMUSL_FENV_SRCS-y += $(LIBMUSL)/src/fenv/x32/fenv.s
$(eval $(call _libmusl_import_lib,fenv,$(LIBMUSL_FENV_HDRS-y),$(LIBMUSL_FENV_SRCS-y)))
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/ctype.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/elf.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/errno.h
+LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/features.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/float.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/src/internal/floatscan.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/stdint.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/stdio.h
LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/string.h
-LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
-LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/src/internal/version.h
+LIBMUSL_INTERNAL_HDRS-y += $(LIBMUSL)/include/syscall.h
+
+LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/defsysinfo.c
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/floatscan.c
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/intscan.c
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/libc.c
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/procfdname.c
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/shgetc.c
-LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/syscall.c|internal
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/syscall_ret.c
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/vdso.c
LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/version.c
+
#ifeq (arm,$(CONFIG_UK_ARCH))
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/arm/syscall.s|arm
#else ifeq (x86_32,$(CONFIG_UK_ARCH))
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/i386/syscall.s|i386
#else ifeq (x86_64,$(CONFIG_UK_ARCH))
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/x86_64/syscall.s|x86_64
#endif
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/aarch64/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/microblaze/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/mips/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/mips64/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/mipsn32/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/or1k/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/powerpc/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/powerpc64/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/s390x/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/sh/__shcall.c
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/sh/syscall.s
-#LIBMUSL_INTERNAL_SRCS-y += $(LIBMUSL)/src/internal/x32/syscall.s|x32
$(eval $(call _libmusl_import_lib,internal,$(LIBMUSL_INTERNAL_HDRS-y),$(LIBMUSL_INTERNAL_SRCS-y)))
endif
endif
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/microblaze/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/mips/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/mips64/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/mipsn32/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/or1k/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/powerpc/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/powerpc64/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/s390x/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/sh/dlsym.s
-#LIBMUSL_LDSO_SRCS-y += $(LIBMUSL)/src/ldso/x32/dlsym.s
$(eval $(call _libmusl_import_lib,ldso,$(LIBMUSL_LDSO_HDRS-y),$(LIBMUSL_LDSO_SRCS-y)))
LIBMUSL_LEGACY_HDRS-y += $(LIBMUSL)/include/utmpx.h
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/cuserid.c
-#LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/daemon.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/err.c
-#LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/euidaccess.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/ftw.c
-#LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/futimes.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/getdtablesize.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/getloadavg.c
ifneq ($(CONFIG_LIBPOSIX_SYSINFO),y)
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/getpass.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/getusershell.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/isastream.c
-#LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/lutimes.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/ulimit.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/utmpx.c
LIBMUSL_LEGACY_SRCS-y += $(LIBMUSL)/src/legacy/valloc.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/fanotify.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/flock.c
LIBMUSL_LINUX_SRCS-$(CONFIG_LIBUKSWRAND) += $(LIBMUSL)/src/linux/getrandom.c
+LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/getdents.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/inotify.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/ioperm.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/iopl.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/wait3.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/wait4.c
LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/xattr.c
-#LIBMUSL_LINUX_SRCS-y += $(LIBMUSL)/src/linux/x32/sysinfo.c
$(eval $(call _libmusl_import_lib,linux,$(LIBMUSL_LINUX_HDRS-y),$(LIBMUSL_LINUX_SRCS-y)))
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/internal/atomic.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/big5.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/codepages.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/ctype.h
+LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/endian.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/errno.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/gb18030.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/hkscs.h
+LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/internal/fork_impl.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/iconv.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/jis0208.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/ksc.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/langinfo.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/legacychars.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/libintl.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/limits.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/locale.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/internal/locale_impl.h
+LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/internal/lock.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/monetary.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/nl_types.h
+LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/pthread.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/internal/pthread_impl.h
-LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/src/locale/revjis.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/stdarg.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/stdint.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/stdio.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/stdlib.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/string.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/strings.h
+LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/sys/mman.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/sys/stat.h
LIBMUSL_LOCALE_HDRS-y += $(LIBMUSL)/include/wchar.h
-LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/__lctrans.c
-LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/__mo_lookup.c
+
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/bind_textdomain_codeset.c
-LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/c_locale.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/catclose.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/catgets.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/catopen.c
+LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/c_locale.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/dcngettext.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/duplocale.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/freelocale.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/iconv.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/iconv_close.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/langinfo.c
-LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/locale_map.c
+LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/__lctrans.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/localeconv.c
+LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/locale_map.c
+LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/__mo_lookup.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/newlocale.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/pleval.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/setlocale.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/strcoll.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/strfmon.c
+LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/strtod_l.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/strxfrm.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/textdomain.c
LIBMUSL_LOCALE_SRCS-y += $(LIBMUSL)/src/locale/uselocale.c
LIBMUSL_MALLOC_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
LIBMUSL_MALLOC_HDRS-y += $(LIBMUSL)/include/sys/mman.h
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/__brk.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/aligned_alloc.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/calloc.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/expand_heap.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/lite_malloc.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/malloc.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/malloc_usable_size.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/memalign.c
-#LIBMUSL_MALLOC_SRCS-y += $(LIBMUSL)/src/malloc/posix_memalign.c
$(eval $(call _libmusl_import_lib,malloc,$(LIBMUSL_MALLOC_HDRS-y),$(LIBMUSL_MALLOC_SRCS-y)))
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/expm1.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/expm1f.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/expm1l.s|i386
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fabs.s|i386
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fabsf.s|i386
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fabsl.s|i386
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fabs.c|i386
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fabsf.c|i386
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fabsl.c|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/floor.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/floorf.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/floorl.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fmod.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fmodf.s|i386
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fmodl.s|i386
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/fmodl.c|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/hypot.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/hypotf.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/ldexp.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/truncf.s|i386
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/i386/truncl.s|i386
else ifeq (x86_64,$(CONFIG_UK_ARCH))
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/__invtrigl.s|x86_64
+# reset sources proviously added
+LIBMUSL_MATH_SRCS-y =
+# base sources (skips the ones replaced by x86_64)
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acos.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acosf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acosh.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acoshf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/acoshl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asin.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinh.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinhf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/asinhl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atan2.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atan2f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atan.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanh.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanhf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/atanhl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrt.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrtf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrtl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceil.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceilf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysign.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysignf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysignl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__cos.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cos.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__cosdf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cosf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cosh.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/coshf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/coshl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__cosl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cosl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/erf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/erff.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/erfl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp10.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp10f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp10l.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2f_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expm1.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expm1f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__expo2.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__expo2f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdim.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdimf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdiml.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/finite.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/finitef.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floor.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floorf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmal.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmax.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaxf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaxl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmin.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fminf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fminl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmod.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmodf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__fpclassify.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__fpclassifyf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__fpclassifyl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/frexp.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/frexpf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/frexpl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/hypot.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/hypotf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/hypotl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ilogb.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ilogbf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ilogbl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j0.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j0f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j1.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/j1f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/jn.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/jnf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ldexp.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ldexpf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ldexpl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgamma.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammaf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammaf_r.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammal.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgamma_r.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llround.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llroundf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llroundl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log10.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log10f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log1p.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log1pf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2f_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logb.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logbf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logbl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logf_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lround.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lroundf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lroundl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_divzero.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_divzerof.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalid.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalidf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalidl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_oflow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_oflowf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_uflow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_uflowf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_xflow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_xflowf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modff.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modfl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nan.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nanf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nanl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyint.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyintf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyintl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafter.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafterf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafterl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nexttoward.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nexttowardf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nexttowardl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__polevll.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/pow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/pow_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powf_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remainder.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remainderf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2_large.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__rem_pio2l.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquo.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquof.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rint.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rintf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/round.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/roundf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/roundl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalb.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbln.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalblnf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalblnl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbn.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbnf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbnl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__signbit.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__signbitf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__signbitl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/signgam.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/significand.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/significandf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__sin.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sin.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sincos.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sincosf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sincosl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__sindf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinh.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinhf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinhl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__sinl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrt_data.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__tan.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tan.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__tandf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanh.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanhf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanhl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__tanl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tanl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgamma.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgammaf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgammal.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/trunc.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/truncf.c
+# x86_64 specific sources
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/acosl.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/asinl.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/atan2l.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/exp2l.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/expl.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/expm1l.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fabs.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fabsf.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fabsl.s|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fabs.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fabsf.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fabsl.c|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/floorl.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fmodl.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/llrint.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/llrintf.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/llrintl.s|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fma.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fmaf.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/fmodl.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/__invtrigl.s|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/llrint.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/llrintf.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/llrintl.c|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/log10l.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/log1pl.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/log2l.s|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/logl.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/lrint.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/lrintf.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/lrintl.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/remainderl.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/rintl.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/sqrt.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/sqrtf.s|x86_64
-LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/sqrtl.s|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/lrint.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/lrintf.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/lrintl.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/remainderl.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/remquol.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/rintl.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/sqrt.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/sqrtf.c|x86_64
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/sqrtl.c|x86_64
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x86_64/truncl.s|x86_64
+
else ifeq (arm64,$(CONFIG_UK_ARCH))
# reset sources proviously added
LIBMUSL_MATH_SRCS-y =
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrt.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrtf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/cbrtl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceil.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceilf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/ceill.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysign.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/copysignf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp10l.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2f_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp2l.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/exp_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expm1.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/expm1l.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__expo2.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__expo2f.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fabs.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fabsf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fabsl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdim.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdimf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fdiml.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/finite.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/finitef.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floor.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floorf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/floorl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fma.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmal.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmax.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaxf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmaxl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmin.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fminf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fminl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmod.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/fmodf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammaf_r.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgammal.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lgamma_r.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llrint.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llrintf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llrintl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llround.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llroundf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/llroundl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log10.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log10f.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log1pf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log1pl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2f.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2f_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log2l.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logb.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logbf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logbl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/log_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logf_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/logl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lrint.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lrintf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lrintl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lround.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lroundf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/lroundl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_divzero.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_divzerof.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalid.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalidf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_invalidl.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_oflow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_oflowf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_uflow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_uflowf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_xflow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__math_xflowf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modff.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/modfl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nan.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nanf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nanl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyint.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyintf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nearbyintl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafter.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nextafterf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/nexttowardl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__polevll.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/pow.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/pow_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powf_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/powl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remainder.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remainderf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquo.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquof.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/remquol.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rint.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rintf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/rintl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/round.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/roundf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/roundl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalb.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/scalbf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinhl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__sinl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sinl.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrt.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrtf.c
+LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrt_data.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/sqrtl.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/__tan.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tan.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgamma.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgammaf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/tgammal.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/trunc.c
-#LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/truncf.c
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/truncl.c
# aarch64 specific sources
LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/aarch64/ceil.c|aarch64
# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/exp2l.s|x32
# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/expl.s|x32
# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/expm1l.s|x32
-# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fabs.s|x32
-# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fabsf.s|x32
-# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fabsl.s|x32
+# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fabs.c|x32
+# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fabsf.c|x32
+# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fabsl.c|x32
# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/floorl.s|x32
-# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fmodl.s|x32
+# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/fmodl.c|x32
# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/llrint.s|x32
# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/llrintf.s|x32
# LIBMUSL_MATH_SRCS-y += $(LIBMUSL)/src/math/x32/llrintl.s|x32
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/src/internal/atomic.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/dirent.h
+LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/endian.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/errno.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/fcntl.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/fmtmsg.h
+LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/src/internal/fork_impl.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/ftw.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/getopt.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/grp.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/libgen.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/limits.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/src/internal/locale_impl.h
+LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/src/internal/lock.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/mntent.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/pthread.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/src/internal/pthread_impl.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/stddef.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/stdint.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/stdio.h
+LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/src/internal/stdio_impl.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/stdlib.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/string.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/strings.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/ioctl.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/syslog.h
+LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/random.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/resource.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/socket.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/stat.h
+LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/time.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/utsname.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/sys/wait.h
LIBMUSL_MISC_HDRS-y += $(LIBMUSL)/include/time.h
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/ffsl.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/ffsll.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/fmtmsg.c
-#LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/forkpty.c
-LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/get_current_dir_name.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getauxval.c
+LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/get_current_dir_name.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getdomainname.c
+LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getentropy.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/gethostid.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getopt.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getopt_long.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getrlimit.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getrusage.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getsubopt.c
-
-LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getresgid.c
-LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getresuid.c
-LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/ioctl.c
ifneq ($(CONFIG_LIBPOSIX_USER),y)
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/initgroups.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/issetugid.c
endif
+LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getresgid.c
+LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/getresuid.c
+LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/ioctl.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/lockf.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/login_tty.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/mntent.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/setdomainname.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/setpriority.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/setrlimit.c
-#LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/syscall.c|misc
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/syslog.c
LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/uname.c
-#LIBMUSL_MISC_SRCS-y += $(LIBMUSL)/src/misc/wordexp.c
$(eval $(call _libmusl_import_lib,misc,$(LIBMUSL_MISC_HDRS-y),$(LIBMUSL_MISC_SRCS-y)))
LIBMUSL_MMAN_HDRS-y += $(LIBMUSL)/include/sys/mman.h
LIBMUSL_MMAN_HDRS-y += $(LIBMUSL)/include/unistd.h
+
# ifeq (arm,$(ARCH))
# LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/arch/arm/syscall_arch.h
# else ifeq (x86_32,$(ARCH))
+LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/src/internal/aio_impl.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/errno.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/fcntl.h
-LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/src/process/fdop.h
+LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/src/internal/fork_impl.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/limits.h
+LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/src/internal/lock.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/src/internal/pthread_impl.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/sched.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/signal.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/stdarg.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/stdlib.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/string.h
-LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
+LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/syscall.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/sys/wait.h
LIBMUSL_PROCESS_HDRS-y += $(LIBMUSL)/include/unistd.h
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/execl.c
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/execle.c
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/execlp.c
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/execv.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/execve.c
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/execvp.c
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/fexecve.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/fork.c
-LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn.c
-LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_addclose.c
-LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_adddup2.c
-LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_addopen.c
-LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_destroy.c
-LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_init.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/_Fork.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawnattr_destroy.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawnattr_getflags.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawnattr_getpgroup.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawnattr_setpgroup.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawnattr_setsigdefault.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawnattr_setsigmask.c
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawnp.c
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/system.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_addchdir.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_addclose.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_adddup2.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_addfchdir.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_addopen.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_destroy.c
+LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/posix_spawn_file_actions_init.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/wait.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/waitid.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/waitpid.c
LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/vfork.c
endif
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/s390x/vfork.s
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/sh/vfork.s
-#LIBMUSL_PROCESS_SRCS-y += $(LIBMUSL)/src/process/x32/vfork.s
$(eval $(call _libmusl_import_lib,process,$(LIBMUSL_PROCESS_HDRS-y),$(LIBMUSL_PROCESS_SRCS-y)))
LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/hsearch.c
LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/insque.c
LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/lsearch.c
+LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/tdelete.c
LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/tdestroy.c
-LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/tsearch_avl.c
+LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/tfind.c
+LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/tsearch.c
+LIBMUSL_SEARCH_SRCS-y += $(LIBMUSL)/src/search/twalk.c
+
$(eval $(call _libmusl_import_lib,search,$(LIBMUSL_SEARCH_HDRS-y),$(LIBMUSL_SEARCH_SRCS-y)))
LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/x86_64/setjmp.s|x86_64
endif
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/microblaze/longjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/microblaze/setjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/mips/longjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/mips/setjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/mips64/longjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/mips64/setjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/mipsn32/longjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/mipsn32/setjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/or1k/longjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/or1k/setjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/powerpc/longjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/powerpc/setjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/powerpc64/longjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/powerpc64/setjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/s390x/longjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/s390x/setjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/sh/longjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/sh/setjmp.S
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/x32/longjmp.s
-#LIBMUSL_SETJMP_SRCS-y += $(LIBMUSL)/src/setjmp/x32/setjmp.s
$(eval $(call _libmusl_import_lib,setjmp,$(LIBMUSL_SETJMP_HDRS-y),$(LIBMUSL_SETJMP_SRCS-y)))
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/errno.h
+LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/features.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/src/internal/ksigaction.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/limits.h
+LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/src/internal/lock.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/src/internal/pthread_impl.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/setjmp.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/signal.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/stdint.h
-LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/stdio.h
+LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/src/internal/stdio_impl.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/string.h
-LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
-LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/sys/syscall.h
+LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/syscall.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/sys/time.h
LIBMUSL_SIGNAL_HDRS-y += $(LIBMUSL)/include/unistd.h
LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sigrtmax.c
LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sigrtmin.c
LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sigset.c
-LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sigsetjmp.c
LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sigsetjmp_tail.c
LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sigsuspend.c
LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sigtimedwait.c
LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/restore.c
endif
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/microblaze/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/microblaze/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/mips/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/mips/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/mips64/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/mips64/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/mipsn32/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/mipsn32/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/or1k/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/powerpc/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/powerpc/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/powerpc64/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/powerpc64/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/s390x/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/s390x/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sh/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/sh/sigsetjmp.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/x32/restore.s
-#LIBMUSL_SIGNAL_SRCS-y += $(LIBMUSL)/src/signal/x32/sigsetjmp.s
$(eval $(call _libmusl_import_lib,signal,$(LIBMUSL_SIGNAL_HDRS-y),$(LIBMUSL_SIGNAL_SRCS-y)))
+LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/aio_impl.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/ctype.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/errno.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/fcntl.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/float.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/floatscan.h
+LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/fork_impl.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/intscan.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/inttypes.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/limits.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/locale_impl.h
+LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/lock.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/math.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/pthread_impl.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/shgetc.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/stdio_impl.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/stdlib.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/string.h
-LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
+LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/syscall.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/sys/ioctl.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/sys/stat.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/sys/uio.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/wchar.h
LIBMUSL_STDIO_HDRS-y += $(LIBMUSL)/include/wctype.h
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fclose_ca.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fdopen.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fmodeflags.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fopen_rb_ca.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__lockfile.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__overflow.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_close.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_exit.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_read.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_seek.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_write.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdout_write.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__string_read.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__toread.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__towrite.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__uflow.c
+
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/asprintf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/clearerr.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/dprintf.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ext.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ext2.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ext.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fclose.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fclose_ca.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fdopen.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/feof.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ferror.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fflush.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fileno.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/flockfile.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fmemopen.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fmodeflags.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fopen.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fopencookie.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__fopen_rb_ca.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fprintf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fputc.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fputs.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fwrite.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/fwscanf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getc.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getc_unlocked.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getchar.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getchar_unlocked.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getc_unlocked.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getdelim.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getline.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/gets.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getw.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getwc.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/getwchar.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ofl.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__lockfile.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ofl_add.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ofl.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/open_memstream.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/open_wmemstream.c
-#LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/pclose.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__overflow.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/perror.c
-#LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/popen.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/printf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/putc.c
-LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/putc_unlocked.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/putchar.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/putchar_unlocked.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/putc_unlocked.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/puts.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/putw.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/putwc.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/sscanf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/stderr.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/stdin.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_close.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_exit.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_read.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_seek.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdio_write.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/stdout.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__stdout_write.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/swprintf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/swscanf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/tempnam.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/tmpfile.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/tmpnam.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__toread.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__towrite.c
+LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/__uflow.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ungetc.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/ungetwc.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/vasprintf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/wprintf.c
LIBMUSL_STDIO_SRCS-y += $(LIBMUSL)/src/stdio/wscanf.c
+
$(eval $(call _libmusl_import_lib,stdio,$(LIBMUSL_STDIO_HDRS-y),$(LIBMUSL_STDIO_SRCS-y)))
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/src/internal/floatscan.h
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/src/internal/intscan.h
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/include/inttypes.h
-LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/include/limits.h
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/src/internal/shgetc.h
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/include/stdint.h
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/include/wchar.h
LIBMUSL_STDLIB_HDRS-y += $(LIBMUSL)/include/wctype.h
+
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/abs.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/atof.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/atoi.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/llabs.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/lldiv.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/qsort.c
+LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/qsort_nr.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/strtod.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/strtol.c
LIBMUSL_STDLIB_SRCS-y += $(LIBMUSL)/src/stdlib/wcstod.c
LIBMUSL_THREAD_HDRS-y += $(LIBMUSL)/include/time.h
LIBMUSL_THREAD_HDRS-y += $(LIBMUSL)/include/unistd.h
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__futex.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__lock.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__syscall_cp.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__timedwait.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__tls_get_addr.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__wait.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/call_once.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/cnd_broadcast.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/cnd_destroy.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/cnd_signal.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/cnd_timedwait.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/cnd_wait.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/default_attr.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__lock.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/lock_ptc.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mtx_destroy.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mtx_init.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_attr_setscope.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_attr_setstack.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_attr_setstacksize.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrier_destroy.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrier_init.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrier_wait.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrierattr_destroy.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrierattr_init.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrierattr_setpshared.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrier_destroy.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrier_init.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_barrier_wait.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cancel.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cleanup_push.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_destroy.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_init.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_setclock.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_setpshared.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cond_broadcast.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cond_destroy.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cond_init.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cond_signal.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cond_timedwait.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_cond_wait.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_destroy.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_init.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_setclock.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_condattr_setpshared.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_create.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_detach.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_equal.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_getattr_np.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_getconcurrency.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_getcpuclockid.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_getname_np.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_getschedparam.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_getspecific.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_join.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_key_create.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_kill.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_destroy.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_init.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_setprotocol.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_setpshared.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_setrobust.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_settype.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutex_consistent.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutex_destroy.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutex_getprioceiling.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutex_timedlock.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutex_trylock.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutex_unlock.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_destroy.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_init.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_setprotocol.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_setpshared.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_setrobust.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_mutexattr_settype.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_once.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlockattr_destroy.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlockattr_init.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlockattr_setpshared.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlock_destroy.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlock_init.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlock_rdlock.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlock_trywrlock.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlock_unlock.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlock_wrlock.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlockattr_destroy.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlockattr_init.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_rwlockattr_setpshared.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_self.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_setattr_default_np.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/pthread_setcancelstate.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sem_unlink.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sem_wait.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/synccall.c
-LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/syscall_cp.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__syscall_cp.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/thrd_create.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/thrd_exit.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/thrd_join.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/thrd_sleep.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/thrd_yield.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__timedwait.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/tls.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__tls_get_addr.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/tss_create.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/tss_delete.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/tss_set.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/vmlock.c
+LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__wait.c
+
ifeq (x86_32,$(CONFIG_UK_ARCH))
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/i386/__set_thread_area.s|i386
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/i386/__unmapself.s|i386
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/i386/clone.s|i386
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/i386/syscall_cp.s|i386
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/i386/tls.s|i386
else ifeq (x86_64,$(CONFIG_UK_ARCH))
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x86_64/__set_thread_area.s|x86_64
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x86_64/__unmapself.s|x86_64
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x86_64/clone.s|x86_64
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x86_64/syscall_cp.s|x86_64
else ifeq (arm,$(CONFIG_UK_ARCH))
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/arm/__aeabi_read_tp.s|arm
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/arm/__aeabi_read_tp_c.c|arm
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/arm/__set_thread_area.c|arm
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/arm/__unmapself.s|arm
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/arm/atomics.s|arm
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/arm/clone.s|arm
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/arm/syscall_cp.s|arm
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/aarch64/clone.s|aarch64
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/aarch64/syscall_cp.s|aarch64
else
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__set_thread_area.c
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/__unmapself.c
LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/clone.c|thread
endif
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/microblaze/__set_thread_area.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/microblaze/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/microblaze/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/microblaze/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mips/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mips/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mips/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mips64/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mips64/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mips64/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mipsn32/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mipsn32/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/mipsn32/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/or1k/__set_thread_area.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/or1k/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/or1k/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/or1k/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc/__set_thread_area.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc64/__set_thread_area.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc64/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc64/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/powerpc64/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/s390x/__set_thread_area.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/s390x/__tls_get_offset.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/s390x/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/s390x/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/s390x/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sh/__set_thread_area.c
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sh/__unmapself.c
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sh/__unmapself_mmu.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sh/atomics.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sh/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/sh/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x32/__set_thread_area.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x32/__unmapself.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x32/clone.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x32/syscall_cp.s
-#LIBMUSL_THREAD_SRCS-y += $(LIBMUSL)/src/thread/x32/syscall_cp_fixup.c
$(eval $(call _libmusl_import_lib,thread,$(LIBMUSL_THREAD_HDRS-y),$(LIBMUSL_THREAD_SRCS-y)))
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/ctype.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/errno.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/fcntl.h
+LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/internal/fork_impl.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/langinfo.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/internal/libc.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/limits.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/locale.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/internal/locale_impl.h
+LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/internal/lock.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/pthread.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/internal/pthread_impl.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/setjmp.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/stdlib.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/string.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/strings.h
-LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/internal/syscall.h
+LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/syscall.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/sys/mman.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/sys/stat.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/sys/timeb.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/sys/time.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/sys/times.h
-LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/time.h
-LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/time/time_impl.h
+LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/src/include/time.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/unistd.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/utime.h
LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/wchar.h
-LIBMUSL_TIME_HDRS-y += $(LIBMUSL)/include/nl_types.h
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__asctime.c
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__map_file.c
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__month_to_secs.c
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__secs_to_tm.c
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__tm_to_secs.c
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__tz.c
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__year_to_secs.c
+
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/asctime.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/asctime_r.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/clock.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/gmtime_r.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/localtime.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/localtime_r.c
+LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__map_file.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/mktime.c
+LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__month_to_secs.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/nanosleep.c
+LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__secs_to_tm.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/strftime.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/strptime.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/time.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timegm.c
-
ifneq ($(CONFIG_LIBUKTIME),y)
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timer_create.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timer_delete.c
+LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timer_getoverrun.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timer_gettime.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timer_settime.c
-LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timer_getoverrun.c
endif
-
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/times.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/timespec_get.c
+LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__tm_to_secs.c
+LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__tz.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/utime.c
LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/wcsftime.c
+LIBMUSL_TIME_SRCS-y += $(LIBMUSL)/src/time/__year_to_secs.c
$(eval $(call _libmusl_import_lib,time,$(LIBMUSL_TIME_HDRS-y),$(LIBMUSL_TIME_SRCS-y)))
LIBMUSL_UNISTD_SRCS-y += $(LIBMUSL)/src/unistd/write.c
LIBMUSL_UNISTD_SRCS-y += $(LIBMUSL)/src/unistd/writev.c
-#LIBMUSL_UNISTD_SRCS-y += $(LIBMUSL)/src/unistd/mips/pipe.s
-#LIBMUSL_UNISTD_SRCS-y += $(LIBMUSL)/src/unistd/mips64/pipe.s
-#LIBMUSL_UNISTD_SRCS-y += $(LIBMUSL)/src/unistd/mipsn32/pipe.s
-#LIBMUSL_UNISTD_SRCS-y += $(LIBMUSL)/src/unistd/sh/pipe.s
$(eval $(call _libmusl_import_lib,unistd,$(LIBMUSL_UNISTD_HDRS-y),$(LIBMUSL_UNISTD_SRCS-y)))
ukarch_tls_area_init(tls_area);
td = (pthread_t) ukarch_tls_tcb_get(ukarch_tls_tlsp(tls_area));
- td->dtv = td->dtv_copy = tls_area;
+ td->dtv = tls_area;
return td;
}
{
pthread_t td = p;
- td->self = td;
+ /* Musl maintains a circular doubly linked list for threads. */
+ td->self = td->next = td->prev = td;
/*
* Set the `$fs` register for the current thread.
* In the original code of musl this will use an `arch_prtcl`
return uk_malloc(uk_alloc_get_default(), size);
}
+void *__libc_malloc(size_t size)
+{
+ return uk_malloc(uk_alloc_get_default(), size);
+}
+
+void *__libc_malloc_impl(size_t size)
+{
+ return uk_malloc(uk_alloc_get_default(), size);
+}
+
void *calloc(size_t nmemb, size_t size)
{
return uk_calloc(uk_alloc_get_default(), nmemb, size);
}
+void *__libc_calloc(size_t nmemb, size_t size)
+{
+ return uk_calloc(uk_alloc_get_default(), nmemb, size);
+}
+
void *realloc(void *ptr, size_t size)
{
return uk_realloc(uk_alloc_get_default(), ptr, size);
}
+void *__libc_realloc(void *ptr, size_t size)
+{
+ return uk_realloc(uk_alloc_get_default(), ptr, size);
+}
+
int posix_memalign(void **memptr, size_t align, size_t size)
{
return uk_posix_memalign(uk_alloc_get_default(),
return uk_free(uk_alloc_get_default(), ptr);
}
+void __libc_free(void *ptr)
+{
+ return uk_free(uk_alloc_get_default(), ptr);
+}
+
int mprotect(void *addr __unused, size_t len __unused, int prot __unused)
{
return 0;
index 09190af4..6ee0f1f1 100644
--- a/include/unistd.h
+++ b/include/unistd.h
-@@ -173,7 +173,6 @@ void setusershell(void);
+@@ -177,7 +177,6 @@ void setusershell(void);
void endusershell(void);
char *getusershell(void);
int acct(const char *);
-long syscall(long, ...);
int execvpe(const char *, char *const [], char *const []);
int issetugid(void);
- #endif
+ int getentropy(void *, size_t);
--
-2.23.0
+2.38.1
From 851762e66ca264fd26240aa9349ba4db6cfdd2e6 Mon Sep 17 00:00:00 2001
From: Gaulthier Gain <gaulthier.gain@uliege.be>
Date: Wed, 16 Oct 2019 16:32:23 +0200
-Subject: [PATCH] Avoid reserved __unused in stat.h
+Subject: [PATCH] Avoid reserved __unused in stat header files
Field name `__unused` conflicts with Unikraft `__unused` macro.
Signed-off-by: Gaulthier Gain <gaulthier.gain@uliege.be>
+Signed-off-by: Robert Kuban <robert.kuban@opensynergy.com>
+Signed-off-by: Eduard Vintilă <eduard.vintila47@gmail.com>
---
- arch/x86_64/bits/stat.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ arch/aarch64/bits/stat.h | 2 +-
+ arch/aarch64/kstat.h | 2 +-
+ arch/arm/bits/msg.h | 2 +-
+ arch/arm/bits/shm.h | 2 +-
+ arch/x86_64/bits/stat.h | 2 +-
+ arch/x86_64/kstat.h | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+diff --git a/arch/aarch64/bits/stat.h b/arch/aarch64/bits/stat.h
+index b7f4221b..d1778f74 100644
+--- a/arch/aarch64/bits/stat.h
++++ b/arch/aarch64/bits/stat.h
+@@ -14,5 +14,5 @@ struct stat {
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+- unsigned __unused[2];
++ unsigned _pad[2];
+ };
+diff --git a/arch/aarch64/kstat.h b/arch/aarch64/kstat.h
+index 92625f36..fb1087b4 100644
+--- a/arch/aarch64/kstat.h
++++ b/arch/aarch64/kstat.h
+@@ -17,5 +17,5 @@ struct kstat {
+ long st_mtime_nsec;
+ long st_ctime_sec;
+ long st_ctime_nsec;
+- unsigned __unused[2];
++ unsigned _pad[2];
+ };
+diff --git a/arch/arm/bits/msg.h b/arch/arm/bits/msg.h
+index 7bbbb2bf..53a277f5 100644
+--- a/arch/arm/bits/msg.h
++++ b/arch/arm/bits/msg.h
+@@ -11,7 +11,7 @@ struct msqid_ds {
+ msglen_t msg_qbytes;
+ pid_t msg_lspid;
+ pid_t msg_lrpid;
+- unsigned long __unused[2];
++ unsigned long _pad[2];
+ time_t msg_stime;
+ time_t msg_rtime;
+ time_t msg_ctime;
+diff --git a/arch/arm/bits/shm.h b/arch/arm/bits/shm.h
+index 725fb469..b32fa070 100644
+--- a/arch/arm/bits/shm.h
++++ b/arch/arm/bits/shm.h
+@@ -21,7 +21,7 @@ struct shmid_ds {
+ };
+
+ struct shminfo {
+- unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, _pad[4];
+ };
+
+ struct shm_info {
diff --git a/arch/x86_64/bits/stat.h b/arch/x86_64/bits/stat.h
index 081237c3..39b3cdd4 100644
--- a/arch/x86_64/bits/stat.h
- long __unused[3];
+ long _pad[3];
};
---
-2.23.0
+diff --git a/arch/x86_64/kstat.h b/arch/x86_64/kstat.h
+index 5976c04e..2c099d29 100644
+--- a/arch/x86_64/kstat.h
++++ b/arch/x86_64/kstat.h
+@@ -18,5 +18,5 @@ struct kstat {
+ long st_mtime_nsec;
+ long st_ctime_sec;
+ long st_ctime_nsec;
+- long __unused[3];
++ long _pad[3];
+ };
+--
+2.38.1
Signed-off-by: Dragos Iulian Argint <dragosargint21@gmail.com>
---
- src/internal/syscall.h | 74 ++++++++++++------------------------------
- 1 file changed, 21 insertions(+), 53 deletions(-)
+ src/internal/syscall.h | 63 ++++++++++++++++--------------------------
+ 1 file changed, 24 insertions(+), 39 deletions(-)
diff --git a/src/internal/syscall.h b/src/internal/syscall.h
-index 6d378a8..5bdb9ea 100644
+index d5f294d4..418a9a60 100644
--- a/src/internal/syscall.h
+++ b/src/internal/syscall.h
-@@ -3,6 +3,8 @@
-
+@@ -5,6 +5,7 @@
+ #include <errno.h>
#include <sys/syscall.h>
#include "syscall_arch.h"
+#include <uk/syscall.h>
-+
-
+
#ifndef SYSCALL_RLIM_INFINITY
#define SYSCALL_RLIM_INFINITY (~0ULL)
-@@ -18,53 +20,26 @@
-
+@@ -20,42 +21,25 @@
+
#ifndef __scc
#define __scc(X) ((long) (X))
-typedef long syscall_arg_t;
+typedef uk_syscall_arg_t syscall_arg_t;
#endif
-
- __attribute__((visibility("hidden")))
--long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...),
+
+-hidden long __syscall_ret(unsigned long),
- __syscall_cp(syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t,
- syscall_arg_t, syscall_arg_t, syscall_arg_t);
--
--#ifdef SYSCALL_NO_INLINE
--#define __syscall0(n) (__syscall)(n)
--#define __syscall1(n,a) (__syscall)(n,__scc(a))
--#define __syscall2(n,a,b) (__syscall)(n,__scc(a),__scc(b))
--#define __syscall3(n,a,b,c) (__syscall)(n,__scc(a),__scc(b),__scc(c))
--#define __syscall4(n,a,b,c,d) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d))
--#define __syscall5(n,a,b,c,d,e) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e))
--#define __syscall6(n,a,b,c,d,e,f) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f))
--#else
++long __syscall_ret(unsigned long), __syscall(uk_syscall_arg_t, ...),
++ __syscall_cp(uk_syscall_arg_t, uk_syscall_arg_t, uk_syscall_arg_t, uk_syscall_arg_t,
++ uk_syscall_arg_t, uk_syscall_arg_t, uk_syscall_arg_t);
+
-#define __syscall1(n,a) __syscall1(n,__scc(a))
-#define __syscall2(n,a,b) __syscall2(n,__scc(a),__scc(b))
-#define __syscall3(n,a,b,c) __syscall3(n,__scc(a),__scc(b),__scc(c))
-#define __syscall4(n,a,b,c,d) __syscall4(n,__scc(a),__scc(b),__scc(c),__scc(d))
-#define __syscall5(n,a,b,c,d,e) __syscall5(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e))
-#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f))
--#endif
--#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g))
+-#define __syscall7(n,a,b,c,d,e,f,g) __syscall7(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g))
-
-#define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n
-#define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,)
-#define __SYSCALL_DISP(b,...) __SYSCALL_CONCAT(b,__SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__)
-
-#define __syscall(...) __SYSCALL_DISP(__syscall,__VA_ARGS__)
-+long __syscall_ret(unsigned long), __syscall(uk_syscall_arg_t, ...),
-+ __syscall_cp(uk_syscall_arg_t, uk_syscall_arg_t, uk_syscall_arg_t, uk_syscall_arg_t,
-+ uk_syscall_arg_t, uk_syscall_arg_t, uk_syscall_arg_t);
-+
+#define __syscall(...) uk_syscall_r_static(__VA_ARGS__)
#define syscall(...) __syscall_ret(__syscall(__VA_ARGS__))
-
- #define socketcall __socketcall
- #define socketcall_cp __socketcall_cp
-
+
+ #define socketcall(nm,a,b,c,d,e,f) __syscall_ret(__socketcall(nm,a,b,c,d,e,f))
+ #define socketcall_cp(nm,a,b,c,d,e,f) __syscall_ret(__socketcall_cp(nm,a,b,c,d,e,f))
+
-#define __syscall_cp0(n) (__syscall_cp)(n,0,0,0,0,0,0)
-#define __syscall_cp1(n,a) (__syscall_cp)(n,__scc(a),0,0,0,0,0)
-#define __syscall_cp2(n,a,b) (__syscall_cp)(n,__scc(a),__scc(b),0,0,0,0)
+ */
+#define __syscall_cp(...) uk_syscall_r_static(__VA_ARGS__)
#define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__))
-
- #ifndef SYSCALL_USE_SOCKETCALL
-@@ -226,22 +201,15 @@ long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...),
- #define __SC_recvmmsg 19
- #define __SC_sendmmsg 20
-
--#ifdef SYS_open
+
+ static inline long __alt_socketcall(int sys, int sock, int cp, long a, long b, long c, long d, long e, long f)
+@@ -374,21 +358,22 @@ static inline long __alt_socketcall(int sys, int sock, int cp, long a, long b, l
+ #endif
+
+ #ifdef SYS_open
-#define __sys_open2(x,pn,fl) __syscall2(SYS_open, pn, (fl)|O_LARGEFILE)
-#define __sys_open3(x,pn,fl,mo) __syscall3(SYS_open, pn, (fl)|O_LARGEFILE, mo)
-#define __sys_open_cp2(x,pn,fl) __syscall_cp2(SYS_open, pn, (fl)|O_LARGEFILE)
-#define __sys_open_cp3(x,pn,fl,mo) __syscall_cp3(SYS_open, pn, (fl)|O_LARGEFILE, mo)
--#else
++#define __sys_open(...) uk_syscall_r_static(SYS_open, __VA_ARGS__)
+ #else
-#define __sys_open2(x,pn,fl) __syscall3(SYS_openat, AT_FDCWD, pn, (fl)|O_LARGEFILE)
-#define __sys_open3(x,pn,fl,mo) __syscall4(SYS_openat, AT_FDCWD, pn, (fl)|O_LARGEFILE, mo)
-#define __sys_open_cp2(x,pn,fl) __syscall_cp3(SYS_openat, AT_FDCWD, pn, (fl)|O_LARGEFILE)
-#define __sys_open_cp3(x,pn,fl,mo) __syscall_cp4(SYS_openat, AT_FDCWD, pn, (fl)|O_LARGEFILE, mo)
--#endif
++#define __sys_open(...) uk_syscall_r_static(SYS_openat, AT_FDCWD,__VA_ARGS__)
+ #endif
-
-#define __sys_open(...) __SYSCALL_DISP(__sys_open,,__VA_ARGS__)
-+#define __sys_open(...) uk_syscall_r_static(SYS_open, __VA_ARGS__)
#define sys_open(...) __syscall_ret(__sys_open(__VA_ARGS__))
-
+
-#define __sys_open_cp(...) __SYSCALL_DISP(__sys_open_cp,,__VA_ARGS__)
+/**
+ * This should allow cancelation points inside a system call.
+ * However, we currently don't support this operation.
+ * Hence, we stick to the basic uk_syscall
+ */
++#ifdef SYS_open
+#define __sys_open_cp(...) uk_syscall_r_static(SYS_open, __VA_ARGS__)
++#else
++#define __sys_open_cp(...) uk_syscall_r_static(SYS_openat, AT_FDCWD, __VA_ARGS__)
++#endif
#define sys_open_cp(...) __syscall_ret(__sys_open_cp(__VA_ARGS__))
-
- #endif
---
-2.17.1
+
+ hidden void __procfdname(char __buf[static 15+3*sizeof(int)], unsigned);
+--
+2.38.1
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/unistd/setxid.c b/src/unistd/setxid.c
-index 0239f8a..d994de9 100644
+index 487c1a1..4441c1c 100644
--- a/src/unistd/setxid.c
+++ b/src/unistd/setxid.c
-@@ -3,6 +3,7 @@
+@@ -2,6 +2,7 @@
+ #include <signal.h>
#include "syscall.h"
#include "libc.h"
- #include "pthread_impl.h"
+#include <uk/syscall.h>
-
+
struct ctx {
int id, eid, sid;
-@@ -13,7 +14,7 @@ static void do_setxid(void *p)
+@@ -12,7 +13,7 @@ static void do_setxid(void *p)
{
struct ctx *c = p;
- if (c->err>0) return;
-- int ret = -__syscall(c->nr, c->id, c->eid, c->sid);
+ if (c->ret<0) return;
+- int ret = __syscall(c->nr, c->id, c->eid, c->sid);
+ int ret = -uk_syscall_r(c->nr, c->id, c->eid, c->sid);
- if (ret && !c->err) {
+ if (ret && !c->ret) {
/* If one thread fails to set ids after another has already
* succeeded, forcibly killing the process is the only safe
---
-2.17.1
+--
+2.38.1
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/thread/pthread_cancel.c b/src/thread/pthread_cancel.c
-index 3d22922..8321734 100644
+index 2f9d5e9..044bd76 100644
--- a/src/thread/pthread_cancel.c
+++ b/src/thread/pthread_cancel.c
-@@ -30,7 +30,7 @@ long __syscall_cp_c(syscall_arg_t nr,
-
+@@ -28,7 +28,7 @@ long __syscall_cp_c(syscall_arg_t nr,
+
if ((st=(self=__pthread_self())->canceldisable)
&& (st==PTHREAD_CANCEL_DISABLE || nr==SYS_close))
- return __syscall(nr, u, v, w, x, y, z);
+ return uk_syscall6_r(nr, u, v, w, x, y, z);
-
+
r = __syscall_cp_asm(&self->cancel, nr, u, v, w, x, y, z);
if (r==-EINTR && nr!=SYS_close && self->cancel &&
---
-2.17.1
+--
+2.38.1
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/thread/__syscall_cp.c b/src/thread/__syscall_cp.c
-index 09a2be8..e22e75b 100644
+index 42a0167..b0438af 100644
--- a/src/thread/__syscall_cp.c
+++ b/src/thread/__syscall_cp.c
-@@ -8,7 +8,7 @@ static long sccp(syscall_arg_t nr,
+@@ -7,7 +7,7 @@ static long sccp(syscall_arg_t nr,
syscall_arg_t u, syscall_arg_t v, syscall_arg_t w,
syscall_arg_t x, syscall_arg_t y, syscall_arg_t z)
{
-- return (__syscall)(nr, u, v, w, x, y, z);
+- return __syscall(nr, u, v, w, x, y, z);
+ return (uk_syscall)(nr, u, v, w, x, y, z);
}
weak_alias(sccp, __syscall_cp_c);
--
-2.20.1
+2.38.1
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/unistd/isatty.c b/src/unistd/isatty.c
-index c8badaf..a0f34d5 100644
+index 75a9c18..960a588 100644
--- a/src/unistd/isatty.c
+++ b/src/unistd/isatty.c
-@@ -5,5 +5,5 @@
+@@ -6,7 +6,7 @@
int isatty(int fd)
{
struct winsize wsz;
-- return !__syscall(SYS_ioctl, fd, TIOCGWINSZ, &wsz);
-+ return 1; //!__syscall(SYS_ioctl, fd, TIOCGWINSZ, &wsz);
- }
---
-2.17.1
+- unsigned long r = syscall(SYS_ioctl, fd, TIOCGWINSZ, &wsz);
++ unsigned long r = 0; //__syscall(SYS_ioctl, fd, TIOCGWINSZ, &wsz);
+ if (r == 0) return 1;
+ if (errno != EBADF) errno = ENOTTY;
+ return 0;
+--
+2.38.1
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/unistd.h b/include/unistd.h
-index 6ee0f1f..452f004 100644
+index 3e6356a..31729fe 100644
--- a/include/unistd.h
+++ b/include/unistd.h
-@@ -250,7 +250,7 @@ int eaccess(const char *, int);
-
+@@ -258,7 +258,7 @@ pid_t gettid(void);
+
#include <bits/posix.h>
-
+
-
+#define _SC_LEVEL1_DCACHE_LINESIZE 130
-
+
#define _PC_LINK_MAX 0
#define _PC_MAX_CANON 1
---
-2.17.1
+--
+2.38.1
Signed-off-by: Dragos Iulian Argint <dragosargint21@gmail.com>
---
- src/thread/pthread_create.c | 28 +++++++++++++++++++++-------
- 1 file changed, 21 insertions(+), 7 deletions(-)
+ src/thread/pthread_create.c | 29 ++++++++++++++++++++++-------
+ 1 file changed, 22 insertions(+), 7 deletions(-)
diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
-index 439ee36..d7d5da9 100644
+index 6f187ee..d6dd4c9 100644
--- a/src/thread/pthread_create.c
+++ b/src/thread/pthread_create.c
-@@ -10,6 +10,11 @@ void *__mmap(void *, size_t, int, int, int, off_t);
- int __munmap(void *, size_t);
- int __mprotect(void *, size_t, int);
-
+@@ -7,6 +7,11 @@
+ #include <string.h>
+ #include <stddef.h>
+
+/*
+ * Unikraft version of `__unmapself()`. See `__uk_unmapself.c`
+ */
static void dummy_0()
{
}
-@@ -108,9 +113,15 @@ _Noreturn void __pthread_exit(void *result)
- * explicitly wait for vmlock holders first. */
- __vm_wait();
-
+@@ -149,10 +154,15 @@ _Noreturn void __pthread_exit(void *result)
+ * processed above, so unregister it with the kernel. */
+ if (self->robust_list.off)
+ __syscall(SYS_set_robust_list, 0, 3*sizeof(long));
+-
- /* The following call unmaps the thread's stack mapping
- * and then exits without touching the stack. */
- __unmapself(self->map_base, self->map_size);
+ */
+ __uk_unmapself(self->map_base, self->map_size);
}
-
- for (;;) __syscall(SYS_exit, 0);
-@@ -181,7 +192,10 @@ static void init_file_lock(FILE *f)
+
+ /* Wake any joiner. */
+@@ -230,6 +240,11 @@ static void init_file_lock(FILE *f)
if (f && f->lock<0) f->lock = 0;
}
-
--void *__copy_tls(unsigned char *);
+
+/*
+ * Unikraft version of `__copy_tls()`
+ */
+void *__uk_copy_tls(unsigned char *);
-
++
int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict attrp, void *(*entry)(void *), void *restrict arg)
{
-@@ -237,7 +251,7 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
+ int ret, c11 = (attrp == __ATTRP_C11_THREAD);
+@@ -283,7 +298,7 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
} else {
guard = ROUND(attr._a_guardsize);
size = guard + ROUND(attr._a_stacksize
- + libc.tls_size + __pthread_tsd_size);
+ + libc.tls_size + libc.tls_align + __pthread_tsd_size);
}
-
+
if (!tsd) {
-@@ -255,12 +269,12 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
+@@ -301,12 +316,12 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
}
tsd = map + size - __pthread_tsd_size;
if (!stack) {
stack_limit = map + guard;
}
}
-
+
- new = __copy_tls(tsd - libc.tls_size);
+ new = __uk_copy_tls(tsd - libc.tls_size);
new->map_base = map;
new->map_size = size;
new->stack = stack;
---
-2.17.1
+--
+2.38.1
1 file changed, 44 insertions(+), 23 deletions(-)
diff --git a/src/thread/x86_64/clone.s b/src/thread/x86_64/clone.s
-index ee59903..f7ac156 100644
+index 6e47bc0..b917159 100644
--- a/src/thread/x86_64/clone.s
+++ b/src/thread/x86_64/clone.s
-@@ -1,27 +1,48 @@
- .text
+@@ -2,27 +2,48 @@
.global __clone
+ .hidden __clone
.type __clone,@function
+/* call conv: rdi rsi rdx rcx r8 r9 8(%rsp) */
+/* clone wrap: func stack flags arg ptid tls ctid */
+ hlt
+1: add $8,%rsp
+ ret
---
-2.17.1
+--
+2.38.1
Signed-off-by: Florin Postolache <florin.postolache80@gmail.com>
---
arch/aarch64/syscall_arch.h | 2 +-
- arch/arm/syscall_arch.h | 2 +-
- arch/i386/syscall_arch.h | 2 +-
+ arch/i386/syscall_arch.h | 4 ++--
arch/x86_64/syscall_arch.h | 4 ++--
- 4 files changed, 5 insertions(+), 5 deletions(-)
+ 3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/aarch64/syscall_arch.h b/arch/aarch64/syscall_arch.h
-index 25f5ce6..1b7a22f 100644
+index 504983a..699df67 100644
--- a/arch/aarch64/syscall_arch.h
+++ b/arch/aarch64/syscall_arch.h
-@@ -72,5 +72,5 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
+@@ -72,7 +72,7 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
}
-
+
#define VDSO_USEFUL
-#define VDSO_CGT_SYM "__kernel_clock_gettime"
+//#define VDSO_CGT_SYM "__kernel_clock_gettime"
#define VDSO_CGT_VER "LINUX_2.6.39"
-diff --git a/arch/arm/syscall_arch.h b/arch/arm/syscall_arch.h
-index 6023303..bb949c3 100644
---- a/arch/arm/syscall_arch.h
-+++ b/arch/arm/syscall_arch.h
-@@ -74,7 +74,7 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
- }
-
- #define VDSO_USEFUL
--#define VDSO_CGT_SYM "__vdso_clock_gettime"
-+//#define VDSO_CGT_SYM "__vdso_clock_gettime"
- #define VDSO_CGT_VER "LINUX_2.6"
-
- #define SYSCALL_FADVISE_6_ARG
+
+ #define IPC_64 0
diff --git a/arch/i386/syscall_arch.h b/arch/i386/syscall_arch.h
-index 4c9d874..06f1d35 100644
+index f92b7aa..b0238ba 100644
--- a/arch/i386/syscall_arch.h
+++ b/arch/i386/syscall_arch.h
-@@ -53,7 +53,7 @@ static inline long __syscall6(long n, long a1, long a2, long a3, long a4, long a
+@@ -83,7 +83,7 @@ static inline long __syscall6(long n, long a1, long a2, long a3, long a4, long a
}
-
+
#define VDSO_USEFUL
--#define VDSO_CGT_SYM "__vdso_clock_gettime"
-+//#define VDSO_CGT_SYM "__vdso_clock_gettime"
+-#define VDSO_CGT32_SYM "__vdso_clock_gettime"
++//#define VDSO_CGT32_SYM "__vdso_clock_gettime"
+ #define VDSO_CGT32_VER "LINUX_2.6"
+-#define VDSO_CGT_SYM "__vdso_clock_gettime64"
++//#define VDSO_CGT_SYM "__vdso_clock_gettime64"
#define VDSO_CGT_VER "LINUX_2.6"
-
- #define SYSCALL_USE_SOCKETCALL
diff --git a/arch/x86_64/syscall_arch.h b/arch/x86_64/syscall_arch.h
-index 54e05ff..847cf2c 100644
+index 92d5c17..e99279e 100644
--- a/arch/x86_64/syscall_arch.h
+++ b/arch/x86_64/syscall_arch.h
-@@ -62,7 +62,7 @@ static __inline long __syscall6(long n, long a1, long a2, long a3, long a4, long
+@@ -62,9 +62,9 @@ static __inline long __syscall6(long n, long a1, long a2, long a3, long a4, long
}
-
+
#define VDSO_USEFUL
-#define VDSO_CGT_SYM "__vdso_clock_gettime"
+//#define VDSO_CGT_SYM "__vdso_clock_gettime"
-#define VDSO_GETCPU_SYM "__vdso_getcpu"
+//#define VDSO_GETCPU_SYM "__vdso_getcpu"
#define VDSO_GETCPU_VER "LINUX_2.6"
---
-2.25.1
+ #define IPC_64 0
+--
+2.38.1
--- /dev/null
+From 2ad50560ffad11f6bc1c7788ae733760f6d85f7f Mon Sep 17 00:00:00 2001
+From: Robert Kuban <robert.kuban@opensynergy.com>
+Date: Thu, 11 Aug 2022 18:03:23 +0200
+Subject: [PATCH] Modify clone wrapper
+
+Signed-off-by: Robert Kuban <robert.kuban@opensynergy.com>
+---
+ src/thread/aarch64/clone.s | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/src/thread/aarch64/clone.s b/src/thread/aarch64/clone.s
+index e3c8339..0b8abeb 100644
+--- a/src/thread/aarch64/clone.s
++++ b/src/thread/aarch64/clone.s
+@@ -1,13 +1,20 @@
+ // __clone(func, stack, flags, arg, ptid, tls, ctid)
+ // x0, x1, w2, x3, x4, x5, x6
+
+-// syscall(SYS_clone, flags, stack, ptid, tls, ctid)
+-// x8, x0, x1, x2, x3, x4
++// see: lib/posix-process/clone.c
++// uk_syscall_r_clone(flags, stack, ptid, tlsp, ctid)
++// x0, x1, x2, x3, x4
++
++// see: lib/posix-process/process.c
++// uk_syscall_r_exit(status)
++// x0
+
+ .global __clone
+ .hidden __clone
+ .type __clone,%function
+ __clone:
++ stp x29, x30, [sp, #-16]!
++
+ // align stack and save func,arg
+ and x1,x1,#-16
+ stp x0,x3,[x1,#-16]!
+@@ -17,14 +24,15 @@ __clone:
+ mov x2,x4
+ mov x3,x5
+ mov x4,x6
+- mov x8,#220 // SYS_clone
+- svc #0
++ bl uk_syscall_r_clone
+
+ cbz x0,1f
+ // parent
++ ldp x29, x30, [sp], #16
+ ret
+- // child
++ // child (SP is X1 from syscall now)
+ 1: ldp x1,x0,[sp],#16
+- blr x1
+- mov x8,#93 // SYS_exit
+- svc #0
++ blr x1 // call func(arg)
++ mov x0, xzr
++ bl uk_syscall_r_exit
++ wfi
+--
+2.38.1
+
+++ /dev/null
-diff --git a/src/multibyte/wcsnrtombs.c b/src/multibyte/wcsnrtombs.c
-index 676932b5..95e25e70 100644
---- a/src/multibyte/wcsnrtombs.c
-+++ b/src/multibyte/wcsnrtombs.c
-@@ -1,41 +1,33 @@
- #include <wchar.h>
-+#include <limits.h>
-+#include <string.h>
-
- size_t wcsnrtombs(char *restrict dst, const wchar_t **restrict wcs, size_t wn, size_t n, mbstate_t *restrict st)
- {
-- size_t l, cnt=0, n2;
-- char *s, buf[256];
- const wchar_t *ws = *wcs;
-- const wchar_t *tmp_ws;
--
-- if (!dst) s = buf, n = sizeof buf;
-- else s = dst;
--
-- while ( ws && n && ( (n2=wn)>=n || n2>32 ) ) {
-- if (n2>=n) n2=n;
-- tmp_ws = ws;
-- l = wcsrtombs(s, &ws, n2, 0);
-- if (!(l+1)) {
-- cnt = l;
-- n = 0;
-+ size_t cnt = 0;
-+ if (!dst) n=0;
-+ while (ws && wn) {
-+ char tmp[MB_LEN_MAX];
-+ size_t l = wcrtomb(n<MB_LEN_MAX ? tmp : dst, *ws, 0);
-+ if (l==-1) {
-+ cnt = -1;
- break;
- }
-- if (s != buf) {
-- s += l;
-+ if (dst) {
-+ if (n<MB_LEN_MAX) {
-+ if (l>n) break;
-+ memcpy(dst, tmp, l);
-+ }
-+ dst += l;
- n -= l;
- }
-- wn = ws ? wn - (ws - tmp_ws) : 0;
-- cnt += l;
-- }
-- if (ws) while (n && wn) {
-- l = wcrtomb(s, *ws, 0);
-- if ((l+1)<=1) {
-- if (!l) ws = 0;
-- else cnt = l;
-+ if (!*ws) {
-+ ws = 0;
- break;
- }
-- ws++; wn--;
-- /* safe - this loop runs fewer than sizeof(buf) times */
-- s+=l; n-=l;
-+ ws++;
-+ wn--;
- cnt += l;
- }
- if (dst) *wcs = ws;
-
+++ /dev/null
-From e20658209177667e490c661dfd35b976749ef3f7 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Sat, 6 Jan 2018 23:08:09 +0100
-Subject: [PATCH 1/2] add getrandom syscall wrapper
-
-This syscall is available since Linux 3.17 and was also implemented in
-glibc in version 2.25 using the same interfaces.
----
- include/sys/random.h | 19 +++++++++++++++++++
- src/linux/getrandom.c | 7 +++++++
- 2 files changed, 26 insertions(+)
- create mode 100644 include/sys/random.h
- create mode 100644 src/linux/getrandom.c
-
-diff --git a/include/sys/random.h b/include/sys/random.h
-new file mode 100644
-index 00000000..4ee7bf2c
---- /dev/null
-+++ b/include/sys/random.h
-@@ -0,0 +1,19 @@
-+#ifndef _SYS_RANDOM_H
-+#define _SYS_RANDOM_H
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+#define __NEED_size_t
-+#define __NEED_ssize_t
-+#include <bits/alltypes.h>
-+
-+#define GRND_NONBLOCK 0x0001
-+#define GRND_RANDOM 0x0002
-+
-+ssize_t getrandom(void *, size_t, unsigned);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+#endif
-diff --git a/src/linux/getrandom.c b/src/linux/getrandom.c
-new file mode 100644
-index 00000000..6cc6f6b0
---- /dev/null
-+++ b/src/linux/getrandom.c
-@@ -0,0 +1,7 @@
-+#include <sys/random.h>
-+#include "syscall.h"
-+
-+ssize_t getrandom(void *buf, size_t buflen, unsigned flags)
-+{
-+ return syscall_cp(SYS_getrandom, buf, buflen, flags);
-+}
---
-2.25.1
-
--- /dev/null
+From 17ebbfdf54bf48906e9a794858e82a22b4a79e92 Mon Sep 17 00:00:00 2001
+Message-Id: <17ebbfdf54bf48906e9a794858e82a22b4a79e92.1669753860.git.razvand@unikraft.io>
+From: Razvan Deaconescu <razvand@unikraft.io>
+Date: Tue, 29 Nov 2022 22:29:40 +0200
+Subject: [PATCH] src/env: Properly define environ variable
+
+`environ` is an array of pointers, the last element of which is the NULL
+pointer. The current definition of `environ` defines it as NULL, not as
+an array of pointers.
+
+This commit changes that, and defines `environ` as an array with a
+single NULL element.
+
+Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
+---
+ src/env/__environ.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/env/__environ.c b/src/env/__environ.c
+index e6c6faa..689b834 100644
+--- a/src/env/__environ.c
++++ b/src/env/__environ.c
+@@ -1,6 +1,7 @@
+ #include "libc.h"
+
+-char **__environ = 0;
++static char *init_environ[] = { NULL };
++char **__environ = init_environ;
+ weak_alias(__environ, ___environ);
+ weak_alias(__environ, _environ);
+ weak_alias(__environ, environ);
+--
+2.17.1
+
+++ /dev/null
-From 814aa07bf4b566f51f7f81bb0a18f4689188f83e Mon Sep 17 00:00:00 2001
-From: Robert Kuban <robert.kuban@opensynergy.com>
-Date: Mon, 18 Jul 2022 13:19:41 +0200
-Subject: [PATCH 1/3] Field name `__unused` conflicts with Unikraft `__unused`
- macro.
-
-Signed-off-by: Robert Kuban <robert.kuban@opensynergy.com>
----
- arch/aarch64/bits/stat.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/aarch64/bits/stat.h b/arch/aarch64/bits/stat.h
-index b7f4221b..d1778f74 100644
---- a/arch/aarch64/bits/stat.h
-+++ b/arch/aarch64/bits/stat.h
-@@ -14,5 +14,5 @@ struct stat {
- struct timespec st_atim;
- struct timespec st_mtim;
- struct timespec st_ctim;
-- unsigned __unused[2];
-+ unsigned _pad[2];
- };
---
-2.25.1
-
--- /dev/null
+From 40feadbd7fb360033089787a60b7d58deaae4892 Mon Sep 17 00:00:00 2001
+Message-Id: <40feadbd7fb360033089787a60b7d58deaae4892.1669764551.git.razvand@unikraft.io>
+From: Razvan Deaconescu <razvand@unikraft.io>
+Date: Wed, 30 Nov 2022 01:27:36 +0200
+Subject: [PATCH] include: Use function declaration for getdents64()
+
+When defining `getdents64` as a macro aliasing `getdents`, the syscall
+shim layer complains.
+
+The declaration of `getdents64()`, combined with the `LFS64(getdents)`
+aliasing used in `src/dirent/__getdents.c` solves this.
+
+Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
+---
+ include/dirent.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/dirent.h b/include/dirent.h
+index 650ecf6..b72acaf 100644
+--- a/include/dirent.h
++++ b/include/dirent.h
+@@ -65,7 +65,7 @@ int versionsort(const struct dirent **, const struct dirent **);
+ #define versionsort64 versionsort
+ #define off64_t off_t
+ #define ino64_t ino_t
+-#define getdents64 getdents
++int getdents64(int, struct dirent64 *, size_t);
+ #endif
+
+ #ifdef __cplusplus
+--
+2.38.1
+
+++ /dev/null
-From 2ad50560ffad11f6bc1c7788ae733760f6d85f7f Mon Sep 17 00:00:00 2001
-From: Robert Kuban <robert.kuban@opensynergy.com>
-Date: Thu, 11 Aug 2022 18:03:23 +0200
-Subject: [PATCH] Modify clone wrapper
-
-Signed-off-by: Robert Kuban <robert.kuban@opensynergy.com>
----
- src/thread/aarch64/clone.s | 24 ++++++++++++++++--------
- 1 file changed, 16 insertions(+), 8 deletions(-)
-
-diff --git a/src/thread/aarch64/clone.s b/src/thread/aarch64/clone.s
-index 50af913c..cd1f956b 100644
---- a/src/thread/aarch64/clone.s
-+++ b/src/thread/aarch64/clone.s
-@@ -1,12 +1,19 @@
- // __clone(func, stack, flags, arg, ptid, tls, ctid)
- // x0, x1, w2, x3, x4, x5, x6
-
--// syscall(SYS_clone, flags, stack, ptid, tls, ctid)
--// x8, x0, x1, x2, x3, x4
-+// see: lib/posix-process/clone.c
-+// uk_syscall_r_clone(flags, stack, ptid, tlsp, ctid)
-+// x0, x1, x2, x3, x4
-+
-+// see: lib/posix-process/process.c
-+// uk_syscall_r_exit(status)
-+// x0
-
- .global __clone
- .type __clone,%function
- __clone:
-+ stp x29, x30, [sp, #-16]!
-+
- // align stack and save func,arg
- and x1,x1,#-16
- stp x0,x3,[x1,#-16]!
-@@ -16,14 +23,15 @@ __clone:
- mov x2,x4
- mov x3,x5
- mov x4,x6
-- mov x8,#220 // SYS_clone
-- svc #0
-+ bl uk_syscall_r_clone
-
- cbz x0,1f
- // parent
-+ ldp x29, x30, [sp], #16
- ret
-- // child
-+ // child (SP is X1 from syscall now)
- 1: ldp x1,x0,[sp],#16
-- blr x1
-- mov x8,#93 // SYS_exit
-- svc #0
-+ blr x1 // call func(arg)
-+ mov x0, xzr
-+ bl uk_syscall_r_exit
-+ wfi
---
-2.25.1
-
--- /dev/null
+From e9ad1e7f22c64e6b7a26084ba61c51c45b09a5ca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eduard=20Vintil=C4=83?= <eduard.vintila47@gmail.com>
+Date: Fri, 9 Dec 2022 23:28:05 +0200
+Subject: [PATCH 1/2] uk_syscall_r-patch
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use the `uk_syscall_r()` variant for system call numbers
+known only at runtime.
+
+Signed-off-by: Eduard Vintilă <eduard.vintila47@gmail.com>
+---
+ src/internal/syscall.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/internal/syscall.h b/src/internal/syscall.h
+index 9419ea9..83fa584 100644
+--- a/src/internal/syscall.h
++++ b/src/internal/syscall.h
+@@ -45,8 +45,8 @@ long __syscall_ret(unsigned long), __syscall(uk_syscall_arg_t, ...),
+ static inline long __alt_socketcall(int sys, int sock, int cp, long a, long b, long c, long d, long e, long f)
+ {
+ long r;
+- if (cp) r = __syscall_cp(sys, a, b, c, d, e, f);
+- else r = __syscall(sys, a, b, c, d, e, f);
++ if (cp) r = uk_syscall_r(sys, a, b, c, d, e, f);
++ else r = uk_syscall_r(sys, a, b, c, d, e, f);
+ if (r != -ENOSYS) return r;
+ #ifdef SYS_socketcall
+ if (cp) r = __syscall_cp(SYS_socketcall, sock, ((long[6]){a, b, c, d, e, f}));
+--
+2.38.1
+
+++ /dev/null
-diff --git a/src/internal/syscall.h b/src/internal/syscall.h
-index 5bdb9ea9..c27e4915 100644
---- a/src/internal/syscall.h
-+++ b/src/internal/syscall.h
-@@ -201,7 +201,11 @@ long __syscall_ret(unsigned long), __syscall(uk_syscall_arg_t, ...),
- #define __SC_recvmmsg 19
- #define __SC_sendmmsg 20
-
-+#ifdef SYS_open
- #define __sys_open(...) uk_syscall_r_static(SYS_open, __VA_ARGS__)
-+#else
-+#define __sys_open(...) uk_syscall_r_static(SYS_openat, AT_FDCWD,__VA_ARGS__)
-+#endif
- #define sys_open(...) __syscall_ret(__sys_open(__VA_ARGS__))
-
- /**
-@@ -209,7 +213,11 @@ long __syscall_ret(unsigned long), __syscall(uk_syscall_arg_t, ...),
- * However, we currently don't support this operation.
- * Hence, we stick to the basic uk_syscall
- */
-+#ifdef SYS_open
- #define __sys_open_cp(...) uk_syscall_r_static(SYS_open, __VA_ARGS__)
-+#else
-+#define __sys_open_cp(...) uk_syscall_r_static(SYS_openat, AT_FDCWD, __VA_ARGS__)
-+#endif
- #define sys_open_cp(...) __syscall_ret(__sys_open_cp(__VA_ARGS__))
-
- #endif
+++ /dev/null
-From 17ebbfdf54bf48906e9a794858e82a22b4a79e92 Mon Sep 17 00:00:00 2001
-Message-Id: <17ebbfdf54bf48906e9a794858e82a22b4a79e92.1669753860.git.razvand@unikraft.io>
-From: Razvan Deaconescu <razvand@unikraft.io>
-Date: Tue, 29 Nov 2022 22:29:40 +0200
-Subject: [PATCH] src/env: Properly define environ variable
-
-`environ` is an array of pointers, the last element of which is the NULL
-pointer. The current definition of `environ` defines it as NULL, not as
-an array of pointers.
-
-This commit changes that, and defines `environ` as an array with a
-single NULL element.
-
-Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
----
- src/env/__environ.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/env/__environ.c b/src/env/__environ.c
-index e6c6faa..689b834 100644
---- a/src/env/__environ.c
-+++ b/src/env/__environ.c
-@@ -1,6 +1,7 @@
- #include "libc.h"
-
--char **__environ = 0;
-+static char *init_environ[] = { NULL };
-+char **__environ = init_environ;
- weak_alias(__environ, ___environ);
- weak_alias(__environ, _environ);
- weak_alias(__environ, environ);
---
-2.17.1
-
+++ /dev/null
-From 40feadbd7fb360033089787a60b7d58deaae4892 Mon Sep 17 00:00:00 2001
-Message-Id: <40feadbd7fb360033089787a60b7d58deaae4892.1669764551.git.razvand@unikraft.io>
-From: Razvan Deaconescu <razvand@unikraft.io>
-Date: Wed, 30 Nov 2022 01:27:36 +0200
-Subject: [PATCH] include: Use function declaration for getdents64()
-
-When defining `getdents64` as a macro aliasing `getdents`, the syscall
-shim layer complains.
-
-The declaration of `getdents64()`, combined with the `LFS64(getdents)`
-aliasing used in `src/dirent/__getdents.c` solves this.
-
-Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
----
- include/dirent.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/dirent.h b/include/dirent.h
-index e0a8fe6..12bb28c 100644
---- a/include/dirent.h
-+++ b/include/dirent.h
-@@ -75,7 +75,7 @@ int versionsort(const struct dirent **, const struct dirent **);
- #define versionsort64 versionsort
- #define off64_t off_t
- #define ino64_t ino_t
--#define getdents64 getdents
-+int getdents64(int, struct dirent64 *, size_t);
- #endif
-
- #ifdef __cplusplus
---
-2.17.1
-