[libc-commits] [libc] effd56b - [libc] add basic Intel MacOS configuration
Michael Jones via libc-commits
libc-commits at lists.llvm.org
Wed Mar 1 15:33:21 PST 2023
Author: Michael Jones
Date: 2023-03-01T15:33:16-08:00
New Revision: effd56b0a03080d3d5460036efc425796bfc8882
URL: https://github.com/llvm/llvm-project/commit/effd56b0a03080d3d5460036efc425796bfc8882
DIFF: https://github.com/llvm/llvm-project/commit/effd56b0a03080d3d5460036efc425796bfc8882.diff
LOG: [libc] add basic Intel MacOS configuration
The config is based on the ARM MacOS config, but with fenv and math
functions disabled.
This should unblock this bug: https://github.com/llvm/llvm-project/issues/60910
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D145099
Added:
libc/config/darwin/x86_64/entrypoints.txt
libc/config/darwin/x86_64/headers.txt
Modified:
libc/src/__support/FPUtil/FEnvImpl.h
Removed:
################################################################################
diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt
new file mode 100644
index 0000000000000..42848c874d4dd
--- /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
index 0000000000000..039550e1bc572
--- /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
index a31488d8fc8ce..cfee3ef8a996d 100644
--- 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
More information about the libc-commits
mailing list