Skip to content

Commit effd56b

Browse files
[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: #60910 Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D145099
1 parent 9cec2b2 commit effd56b

File tree

3 files changed

+222
-1
lines changed

3 files changed

+222
-1
lines changed
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
set(TARGET_LIBC_ENTRYPOINTS
2+
# ctype.h entrypoints
3+
libc.src.ctype.isalnum
4+
libc.src.ctype.isalpha
5+
libc.src.ctype.isascii
6+
libc.src.ctype.isblank
7+
libc.src.ctype.iscntrl
8+
libc.src.ctype.isdigit
9+
libc.src.ctype.isgraph
10+
libc.src.ctype.islower
11+
libc.src.ctype.isprint
12+
libc.src.ctype.ispunct
13+
libc.src.ctype.isspace
14+
libc.src.ctype.isupper
15+
libc.src.ctype.isxdigit
16+
libc.src.ctype.toascii
17+
libc.src.ctype.tolower
18+
libc.src.ctype.toupper
19+
20+
# string.h entrypoints
21+
libc.src.string.bcmp
22+
libc.src.string.bzero
23+
libc.src.string.memccpy
24+
libc.src.string.memchr
25+
libc.src.string.memcmp
26+
libc.src.string.memcpy
27+
libc.src.string.memmove
28+
libc.src.string.mempcpy
29+
libc.src.string.memrchr
30+
libc.src.string.memset
31+
libc.src.string.stpcpy
32+
libc.src.string.stpncpy
33+
libc.src.string.strcat
34+
libc.src.string.strchr
35+
libc.src.string.strcmp
36+
libc.src.string.strcpy
37+
libc.src.string.strcspn
38+
libc.src.string.strlcat
39+
libc.src.string.strlcpy
40+
libc.src.string.strlen
41+
libc.src.string.strncat
42+
libc.src.string.strncmp
43+
libc.src.string.strncpy
44+
libc.src.string.strnlen
45+
libc.src.string.strpbrk
46+
libc.src.string.strrchr
47+
libc.src.string.strspn
48+
libc.src.string.strstr
49+
libc.src.string.strtok
50+
libc.src.string.strtok_r
51+
52+
# string.h entrypoints that depend on malloc
53+
libc.src.string.strdup
54+
libc.src.string.strndup
55+
56+
# inttypes.h entrypoints
57+
libc.src.inttypes.imaxabs
58+
libc.src.inttypes.imaxdiv
59+
libc.src.inttypes.strtoimax
60+
libc.src.inttypes.strtoumax
61+
62+
# stdlib.h entrypoints
63+
libc.src.stdlib.abs
64+
libc.src.stdlib.atoi
65+
libc.src.stdlib.atof
66+
libc.src.stdlib.atol
67+
libc.src.stdlib.atoll
68+
libc.src.stdlib.bsearch
69+
libc.src.stdlib.div
70+
libc.src.stdlib.labs
71+
libc.src.stdlib.ldiv
72+
libc.src.stdlib.llabs
73+
libc.src.stdlib.lldiv
74+
libc.src.stdlib.qsort
75+
libc.src.stdlib.strtod
76+
libc.src.stdlib.strtof
77+
libc.src.stdlib.strtol
78+
libc.src.stdlib.strtold
79+
libc.src.stdlib.strtoll
80+
libc.src.stdlib.strtoul
81+
libc.src.stdlib.strtoull
82+
83+
# stdlib.h external entrypoints
84+
libc.src.stdlib.malloc
85+
libc.src.stdlib.calloc
86+
libc.src.stdlib.realloc
87+
libc.src.stdlib.free
88+
)
89+
90+
set(TARGET_LIBM_ENTRYPOINTS
91+
# fenv disabled on x86_64 MacOS for now.
92+
# # fenv.h entrypoints
93+
# libc.src.fenv.feclearexcept
94+
# libc.src.fenv.fedisableexcept
95+
# libc.src.fenv.feenableexcept
96+
# libc.src.fenv.fegetenv
97+
# libc.src.fenv.fegetexcept
98+
# libc.src.fenv.fegetexceptflag
99+
# libc.src.fenv.fegetround
100+
# libc.src.fenv.feholdexcept
101+
# libc.src.fenv.fesetenv
102+
# libc.src.fenv.fesetexceptflag
103+
# libc.src.fenv.fesetround
104+
# libc.src.fenv.feraiseexcept
105+
# libc.src.fenv.fetestexcept
106+
# libc.src.fenv.feupdateenv
107+
108+
## Currently disabled for failing tests.
109+
# math.h entrypoints
110+
#libc.src.math.copysign
111+
#libc.src.math.copysignf
112+
#libc.src.math.copysignl
113+
#libc.src.math.ceil
114+
#libc.src.math.ceilf
115+
#libc.src.math.ceill
116+
#libc.src.math.coshf
117+
#libc.src.math.cosf
118+
#libc.src.math.expf
119+
#libc.src.math.exp2f
120+
#libc.src.math.expm1f
121+
#libc.src.math.fabs
122+
#libc.src.math.fabsf
123+
#libc.src.math.fabsl
124+
#libc.src.math.fdim
125+
#libc.src.math.fdimf
126+
#libc.src.math.fdiml
127+
#libc.src.math.floor
128+
#libc.src.math.floorf
129+
#libc.src.math.floorl
130+
#libc.src.math.fma
131+
#libc.src.math.fmaf
132+
#libc.src.math.fmax
133+
#libc.src.math.fmaxf
134+
#libc.src.math.fmaxl
135+
#libc.src.math.fmin
136+
#libc.src.math.fminf
137+
#libc.src.math.fminl
138+
#libc.src.math.fmod
139+
#libc.src.math.fmodf
140+
#libc.src.math.frexp
141+
#libc.src.math.frexpf
142+
#libc.src.math.frexpl
143+
#libc.src.math.hypot
144+
#libc.src.math.hypotf
145+
#libc.src.math.ilogb
146+
#libc.src.math.ilogbf
147+
#libc.src.math.ilogbl
148+
#libc.src.math.llrint
149+
#libc.src.math.llrintf
150+
#libc.src.math.llrintl
151+
#libc.src.math.llround
152+
#libc.src.math.llroundf
153+
#libc.src.math.llroundl
154+
#libc.src.math.lrint
155+
#libc.src.math.lrintf
156+
#libc.src.math.lrintl
157+
#libc.src.math.lround
158+
#libc.src.math.lroundf
159+
#libc.src.math.lroundl
160+
#libc.src.math.ldexp
161+
#libc.src.math.ldexpf
162+
#libc.src.math.ldexpl
163+
#libc.src.math.log10f
164+
#libc.src.math.log1pf
165+
#libc.src.math.log2f
166+
#libc.src.math.logf
167+
#libc.src.math.logb
168+
#libc.src.math.logbf
169+
#libc.src.math.logbl
170+
#libc.src.math.modf
171+
#libc.src.math.modff
172+
#libc.src.math.modfl
173+
#libc.src.math.nearbyint
174+
#libc.src.math.nearbyintf
175+
#libc.src.math.nearbyintl
176+
#libc.src.math.nextafter
177+
#libc.src.math.nextafterf
178+
#libc.src.math.nextafterl
179+
#libc.src.math.remainderf
180+
#libc.src.math.remainder
181+
#libc.src.math.remainderl
182+
#libc.src.math.remquof
183+
#libc.src.math.remquo
184+
#libc.src.math.remquol
185+
#libc.src.math.rint
186+
#libc.src.math.rintf
187+
#libc.src.math.rintl
188+
#libc.src.math.round
189+
#libc.src.math.roundf
190+
#libc.src.math.roundl
191+
#libc.src.math.sincosf
192+
#libc.src.math.sinhf
193+
#libc.src.math.sinf
194+
#libc.src.math.sqrt
195+
#libc.src.math.sqrtf
196+
#libc.src.math.sqrtl
197+
#libc.src.math.tanf
198+
#libc.src.math.tanhf
199+
#libc.src.math.trunc
200+
#libc.src.math.truncf
201+
#libc.src.math.truncl
202+
)
203+
204+
set(TARGET_LLVMLIBC_ENTRYPOINTS
205+
${TARGET_LIBC_ENTRYPOINTS}
206+
${TARGET_LIBM_ENTRYPOINTS}
207+
)

libc/config/darwin/x86_64/headers.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
set(TARGET_PUBLIC_HEADERS
2+
libc.include.ctype
3+
libc.include.errno
4+
# Fenv is currently disabled.
5+
#libc.include.fenv
6+
libc.include.inttypes
7+
libc.include.math
8+
libc.include.stdlib
9+
libc.include.string
10+
)

libc/src/__support/FPUtil/FEnvImpl.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
#else
2323
#include "aarch64/FEnvImpl.h"
2424
#endif
25-
#elif defined(LIBC_TARGET_ARCH_IS_X86)
25+
26+
// The extra !defined(APPLE) condition is to cause x86_64 MacOS builds to use
27+
// the dummy implementations below. Once a proper x86_64 darwin fenv is set up,
28+
// the apple condition here should be removed.
29+
#elif defined(LIBC_TARGET_ARCH_IS_X86) && !defined(__APPLE__)
2630
#include "x86_64/FEnvImpl.h"
2731
#else
2832

0 commit comments

Comments
 (0)