diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt new file mode 100644 --- /dev/null +++ b/libc/config/darwin/x86_64/entrypoints.txt @@ -0,0 +1,207 @@ +set(TARGET_LIBC_ENTRYPOINTS + # ctype.h entrypoints + libc.src.ctype.isalnum + libc.src.ctype.isalpha + libc.src.ctype.isascii + libc.src.ctype.isblank + libc.src.ctype.iscntrl + libc.src.ctype.isdigit + libc.src.ctype.isgraph + libc.src.ctype.islower + libc.src.ctype.isprint + libc.src.ctype.ispunct + libc.src.ctype.isspace + libc.src.ctype.isupper + libc.src.ctype.isxdigit + libc.src.ctype.toascii + libc.src.ctype.tolower + libc.src.ctype.toupper + + # string.h entrypoints + libc.src.string.bcmp + libc.src.string.bzero + libc.src.string.memccpy + libc.src.string.memchr + libc.src.string.memcmp + libc.src.string.memcpy + libc.src.string.memmove + libc.src.string.mempcpy + libc.src.string.memrchr + libc.src.string.memset + libc.src.string.stpcpy + libc.src.string.stpncpy + libc.src.string.strcat + libc.src.string.strchr + libc.src.string.strcmp + libc.src.string.strcpy + libc.src.string.strcspn + libc.src.string.strlcat + libc.src.string.strlcpy + libc.src.string.strlen + libc.src.string.strncat + libc.src.string.strncmp + libc.src.string.strncpy + libc.src.string.strnlen + libc.src.string.strpbrk + libc.src.string.strrchr + libc.src.string.strspn + libc.src.string.strstr + libc.src.string.strtok + libc.src.string.strtok_r + + # string.h entrypoints that depend on malloc + libc.src.string.strdup + libc.src.string.strndup + + # inttypes.h entrypoints + libc.src.inttypes.imaxabs + libc.src.inttypes.imaxdiv + libc.src.inttypes.strtoimax + libc.src.inttypes.strtoumax + + # stdlib.h entrypoints + libc.src.stdlib.abs + libc.src.stdlib.atoi + libc.src.stdlib.atof + libc.src.stdlib.atol + libc.src.stdlib.atoll + libc.src.stdlib.bsearch + libc.src.stdlib.div + libc.src.stdlib.labs + libc.src.stdlib.ldiv + libc.src.stdlib.llabs + libc.src.stdlib.lldiv + libc.src.stdlib.qsort + libc.src.stdlib.strtod + libc.src.stdlib.strtof + libc.src.stdlib.strtol + libc.src.stdlib.strtold + libc.src.stdlib.strtoll + libc.src.stdlib.strtoul + libc.src.stdlib.strtoull + + # stdlib.h external entrypoints + libc.src.stdlib.malloc + libc.src.stdlib.calloc + libc.src.stdlib.realloc + libc.src.stdlib.free +) + +set(TARGET_LIBM_ENTRYPOINTS + # fenv disabled on x86_64 MacOS for now. + # # fenv.h entrypoints + # libc.src.fenv.feclearexcept + # libc.src.fenv.fedisableexcept + # libc.src.fenv.feenableexcept + # libc.src.fenv.fegetenv + # libc.src.fenv.fegetexcept + # libc.src.fenv.fegetexceptflag + # libc.src.fenv.fegetround + # libc.src.fenv.feholdexcept + # libc.src.fenv.fesetenv + # libc.src.fenv.fesetexceptflag + # libc.src.fenv.fesetround + # libc.src.fenv.feraiseexcept + # libc.src.fenv.fetestexcept + # libc.src.fenv.feupdateenv + + ## Currently disabled for failing tests. + # math.h entrypoints + #libc.src.math.copysign + #libc.src.math.copysignf + #libc.src.math.copysignl + #libc.src.math.ceil + #libc.src.math.ceilf + #libc.src.math.ceill + #libc.src.math.coshf + #libc.src.math.cosf + #libc.src.math.expf + #libc.src.math.exp2f + #libc.src.math.expm1f + #libc.src.math.fabs + #libc.src.math.fabsf + #libc.src.math.fabsl + #libc.src.math.fdim + #libc.src.math.fdimf + #libc.src.math.fdiml + #libc.src.math.floor + #libc.src.math.floorf + #libc.src.math.floorl + #libc.src.math.fma + #libc.src.math.fmaf + #libc.src.math.fmax + #libc.src.math.fmaxf + #libc.src.math.fmaxl + #libc.src.math.fmin + #libc.src.math.fminf + #libc.src.math.fminl + #libc.src.math.fmod + #libc.src.math.fmodf + #libc.src.math.frexp + #libc.src.math.frexpf + #libc.src.math.frexpl + #libc.src.math.hypot + #libc.src.math.hypotf + #libc.src.math.ilogb + #libc.src.math.ilogbf + #libc.src.math.ilogbl + #libc.src.math.llrint + #libc.src.math.llrintf + #libc.src.math.llrintl + #libc.src.math.llround + #libc.src.math.llroundf + #libc.src.math.llroundl + #libc.src.math.lrint + #libc.src.math.lrintf + #libc.src.math.lrintl + #libc.src.math.lround + #libc.src.math.lroundf + #libc.src.math.lroundl + #libc.src.math.ldexp + #libc.src.math.ldexpf + #libc.src.math.ldexpl + #libc.src.math.log10f + #libc.src.math.log1pf + #libc.src.math.log2f + #libc.src.math.logf + #libc.src.math.logb + #libc.src.math.logbf + #libc.src.math.logbl + #libc.src.math.modf + #libc.src.math.modff + #libc.src.math.modfl + #libc.src.math.nearbyint + #libc.src.math.nearbyintf + #libc.src.math.nearbyintl + #libc.src.math.nextafter + #libc.src.math.nextafterf + #libc.src.math.nextafterl + #libc.src.math.remainderf + #libc.src.math.remainder + #libc.src.math.remainderl + #libc.src.math.remquof + #libc.src.math.remquo + #libc.src.math.remquol + #libc.src.math.rint + #libc.src.math.rintf + #libc.src.math.rintl + #libc.src.math.round + #libc.src.math.roundf + #libc.src.math.roundl + #libc.src.math.sincosf + #libc.src.math.sinhf + #libc.src.math.sinf + #libc.src.math.sqrt + #libc.src.math.sqrtf + #libc.src.math.sqrtl + #libc.src.math.tanf + #libc.src.math.tanhf + #libc.src.math.trunc + #libc.src.math.truncf + #libc.src.math.truncl +) + +set(TARGET_LLVMLIBC_ENTRYPOINTS + ${TARGET_LIBC_ENTRYPOINTS} + ${TARGET_LIBM_ENTRYPOINTS} +) diff --git a/libc/config/darwin/x86_64/headers.txt b/libc/config/darwin/x86_64/headers.txt new file mode 100644 --- /dev/null +++ b/libc/config/darwin/x86_64/headers.txt @@ -0,0 +1,10 @@ +set(TARGET_PUBLIC_HEADERS + libc.include.ctype + libc.include.errno + # Fenv is currently disabled. + #libc.include.fenv + libc.include.inttypes + libc.include.math + libc.include.stdlib + libc.include.string +) diff --git a/libc/src/__support/FPUtil/FEnvImpl.h b/libc/src/__support/FPUtil/FEnvImpl.h --- a/libc/src/__support/FPUtil/FEnvImpl.h +++ b/libc/src/__support/FPUtil/FEnvImpl.h @@ -22,7 +22,11 @@ #else #include "aarch64/FEnvImpl.h" #endif -#elif defined(LIBC_TARGET_ARCH_IS_X86) + +// The extra !defined(APPLE) condition is to cause x86_64 MacOS builds to use +// the dummy implementations below. Once a proper x86_64 darwin fenv is set up, +// the apple condition here should be removed. +#elif defined(LIBC_TARGET_ARCH_IS_X86) && !defined(__APPLE__) #include "x86_64/FEnvImpl.h" #else