1LOCAL_DIR := $(GET_LOCAL_DIR)
2
3LOCAL_COMPILEFLAGS := \
4    -I$(LOCAL_DIR)/src/internal \
5    -I$(LOCAL_DIR)/include \
6    -I$(LOCAL_DIR)/third_party/include \
7
8ifeq ($(ARCH),arm64)
9MUSL_ARCH := aarch64
10else ifeq ($(ARCH),x86)
11MUSL_ARCH := x86_64
12else
13$(error Unsupported architecture $(ARCH) for musl build!)
14endif
15
16LOCAL_COMPILEFLAGS += -I$(LOCAL_DIR)/arch/$(MUSL_ARCH)
17
18# The following are, more or less, from the upstream musl build.  The
19# _XOPEN_SOURCE value in particular is taken from there, and is
20# necessary for many POSIX declarations to be visible internally.  You
21# can read about the semantics of it and the other feature test macros
22# in |man 7 feature_test_macros| on Linux. musl exposes the minimum
23# set of declarations or macro definitions allowed by those macros
24# fairly carefully, and so also needs to undefine _ALL_SOURCE, so that
25# it can define _BSD_SOURCE, _GNU_SOURCE, or _ALL_SOURCE in only
26# certain source files.
27
28# TODO(kulakowski) Clean up the junkier -Wno flags below.
29LOCAL_CFLAGS := \
30    -D_XOPEN_SOURCE=700 \
31    -U_ALL_SOURCE \
32    -Wno-sign-compare \
33    -Werror=incompatible-pointer-types \
34    -Wno-implicit-fallthrough \
35
36ifeq ($(call TOBOOL,$(USE_CLANG)),true)
37LOCAL_COMPILEFLAGS += -fno-stack-protector
38
39endif
40
41# The upstream musl build uses this too.  It's necessary to avoid the
42# compiler assuming things about library functions that might not be true.
43# For example, without this, GCC assumes that calling free(PTR) doesn't
44# need any stores to *PTR to have actually happened.
45LOCAL_CFLAGS += -ffreestanding
46
47LOCAL_SRCS := \
48    $(LOCAL_DIR)/pthread/pthread_atfork.c \
49    $(LOCAL_DIR)/pthread/pthread_attr_destroy.c \
50    $(LOCAL_DIR)/pthread/pthread_attr_get.c \
51    $(LOCAL_DIR)/pthread/pthread_attr_init.c \
52    $(LOCAL_DIR)/pthread/pthread_attr_setdetachstate.c \
53    $(LOCAL_DIR)/pthread/pthread_attr_setguardsize.c \
54    $(LOCAL_DIR)/pthread/pthread_attr_setschedparam.c \
55    $(LOCAL_DIR)/pthread/pthread_attr_setstacksize.c \
56    $(LOCAL_DIR)/pthread/pthread_barrier_destroy.c \
57    $(LOCAL_DIR)/pthread/pthread_barrier_init.c \
58    $(LOCAL_DIR)/pthread/pthread_barrier_wait.c \
59    $(LOCAL_DIR)/pthread/pthread_barrierattr_destroy.c \
60    $(LOCAL_DIR)/pthread/pthread_barrierattr_init.c \
61    $(LOCAL_DIR)/pthread/pthread_cancel.c \
62    $(LOCAL_DIR)/pthread/pthread_cond_broadcast.c \
63    $(LOCAL_DIR)/pthread/pthread_cond_destroy.c \
64    $(LOCAL_DIR)/pthread/pthread_cond_init.c \
65    $(LOCAL_DIR)/pthread/pthread_cond_signal.c \
66    $(LOCAL_DIR)/pthread/pthread_cond_timedwait.c \
67    $(LOCAL_DIR)/pthread/pthread_cond_wait.c \
68    $(LOCAL_DIR)/pthread/pthread_condattr_destroy.c \
69    $(LOCAL_DIR)/pthread/pthread_condattr_init.c \
70    $(LOCAL_DIR)/pthread/pthread_condattr_setclock.c \
71    $(LOCAL_DIR)/pthread/pthread_create.c \
72    $(LOCAL_DIR)/pthread/pthread_detach.c \
73    $(LOCAL_DIR)/pthread/pthread_equal.c \
74    $(LOCAL_DIR)/pthread/pthread_getattr_np.c \
75    $(LOCAL_DIR)/pthread/pthread_getconcurrency.c \
76    $(LOCAL_DIR)/pthread/pthread_getcpuclockid.c \
77    $(LOCAL_DIR)/pthread/pthread_getspecific.c \
78    $(LOCAL_DIR)/pthread/pthread_join.c \
79    $(LOCAL_DIR)/pthread/pthread_key.c \
80    $(LOCAL_DIR)/pthread/pthread_kill.c \
81    $(LOCAL_DIR)/pthread/pthread_mutex_consistent.c \
82    $(LOCAL_DIR)/pthread/pthread_mutex_destroy.c \
83    $(LOCAL_DIR)/pthread/pthread_mutex_getprioceiling.c \
84    $(LOCAL_DIR)/pthread/pthread_mutex_init.c \
85    $(LOCAL_DIR)/pthread/pthread_mutex_lock.c \
86    $(LOCAL_DIR)/pthread/pthread_mutex_setprioceiling.c \
87    $(LOCAL_DIR)/pthread/pthread_mutex_timedlock.c \
88    $(LOCAL_DIR)/pthread/pthread_mutex_trylock.c \
89    $(LOCAL_DIR)/pthread/pthread_mutex_unlock.c \
90    $(LOCAL_DIR)/pthread/pthread_mutexattr_destroy.c \
91    $(LOCAL_DIR)/pthread/pthread_mutexattr_init.c \
92    $(LOCAL_DIR)/pthread/pthread_mutexattr_setprotocol.c \
93    $(LOCAL_DIR)/pthread/pthread_mutexattr_setrobust.c \
94    $(LOCAL_DIR)/pthread/pthread_mutexattr_settype.c \
95    $(LOCAL_DIR)/pthread/pthread_once.c \
96    $(LOCAL_DIR)/pthread/pthread_rwlock_destroy.c \
97    $(LOCAL_DIR)/pthread/pthread_rwlock_init.c \
98    $(LOCAL_DIR)/pthread/pthread_rwlock_rdlock.c \
99    $(LOCAL_DIR)/pthread/pthread_rwlock_timedrdlock.c \
100    $(LOCAL_DIR)/pthread/pthread_rwlock_timedwrlock.c \
101    $(LOCAL_DIR)/pthread/pthread_rwlock_tryrdlock.c \
102    $(LOCAL_DIR)/pthread/pthread_rwlock_trywrlock.c \
103    $(LOCAL_DIR)/pthread/pthread_rwlock_unlock.c \
104    $(LOCAL_DIR)/pthread/pthread_rwlock_wrlock.c \
105    $(LOCAL_DIR)/pthread/pthread_rwlockattr_destroy.c \
106    $(LOCAL_DIR)/pthread/pthread_rwlockattr_init.c \
107    $(LOCAL_DIR)/pthread/pthread_self.c \
108    $(LOCAL_DIR)/pthread/pthread_setcancelstate.c \
109    $(LOCAL_DIR)/pthread/pthread_setcanceltype.c \
110    $(LOCAL_DIR)/pthread/pthread_setconcurrency.c \
111    $(LOCAL_DIR)/pthread/pthread_setspecific.c \
112    $(LOCAL_DIR)/pthread/pthread_sigmask.c \
113    $(LOCAL_DIR)/pthread/pthread_spin_destroy.c \
114    $(LOCAL_DIR)/pthread/pthread_spin_init.c \
115    $(LOCAL_DIR)/pthread/pthread_spin_lock.c \
116    $(LOCAL_DIR)/pthread/pthread_spin_trylock.c \
117    $(LOCAL_DIR)/pthread/pthread_spin_unlock.c \
118    $(LOCAL_DIR)/pthread/pthread_testcancel.c \
119    $(LOCAL_DIR)/pthread/sem_destroy.c \
120    $(LOCAL_DIR)/pthread/sem_getvalue.c \
121    $(LOCAL_DIR)/pthread/sem_init.c \
122    $(LOCAL_DIR)/pthread/sem_post.c \
123    $(LOCAL_DIR)/pthread/sem_timedwait.c \
124    $(LOCAL_DIR)/pthread/sem_trywait.c \
125    $(LOCAL_DIR)/pthread/sem_unlink.c \
126    $(LOCAL_DIR)/pthread/sem_wait.c \
127    $(LOCAL_DIR)/src/complex/cabs.c \
128    $(LOCAL_DIR)/src/complex/cabsf.c \
129    $(LOCAL_DIR)/src/complex/cabsl.c \
130    $(LOCAL_DIR)/src/complex/cacos.c \
131    $(LOCAL_DIR)/src/complex/cacosf.c \
132    $(LOCAL_DIR)/src/complex/cacosh.c \
133    $(LOCAL_DIR)/src/complex/cacoshf.c \
134    $(LOCAL_DIR)/src/complex/cacoshl.c \
135    $(LOCAL_DIR)/src/complex/cacosl.c \
136    $(LOCAL_DIR)/src/complex/carg.c \
137    $(LOCAL_DIR)/src/complex/cargf.c \
138    $(LOCAL_DIR)/src/complex/cargl.c \
139    $(LOCAL_DIR)/src/complex/casin.c \
140    $(LOCAL_DIR)/src/complex/casinf.c \
141    $(LOCAL_DIR)/src/complex/casinh.c \
142    $(LOCAL_DIR)/src/complex/casinhf.c \
143    $(LOCAL_DIR)/src/complex/casinhl.c \
144    $(LOCAL_DIR)/src/complex/casinl.c \
145    $(LOCAL_DIR)/src/complex/catanh.c \
146    $(LOCAL_DIR)/src/complex/catanhf.c \
147    $(LOCAL_DIR)/src/complex/catanhl.c \
148    $(LOCAL_DIR)/src/complex/ccos.c \
149    $(LOCAL_DIR)/src/complex/ccosf.c \
150    $(LOCAL_DIR)/src/complex/ccoshl.c \
151    $(LOCAL_DIR)/src/complex/ccosl.c \
152    $(LOCAL_DIR)/src/complex/cexpl.c \
153    $(LOCAL_DIR)/src/complex/cimag.c \
154    $(LOCAL_DIR)/src/complex/cimagf.c \
155    $(LOCAL_DIR)/src/complex/cimagl.c \
156    $(LOCAL_DIR)/src/complex/clog.c \
157    $(LOCAL_DIR)/src/complex/clogf.c \
158    $(LOCAL_DIR)/src/complex/clogl.c \
159    $(LOCAL_DIR)/src/complex/conj.c \
160    $(LOCAL_DIR)/src/complex/conjf.c \
161    $(LOCAL_DIR)/src/complex/conjl.c \
162    $(LOCAL_DIR)/src/complex/cpow.c \
163    $(LOCAL_DIR)/src/complex/cpowf.c \
164    $(LOCAL_DIR)/src/complex/cpowl.c \
165    $(LOCAL_DIR)/src/complex/cproj.c \
166    $(LOCAL_DIR)/src/complex/cprojf.c \
167    $(LOCAL_DIR)/src/complex/cprojl.c \
168    $(LOCAL_DIR)/src/complex/creal.c \
169    $(LOCAL_DIR)/src/complex/crealf.c \
170    $(LOCAL_DIR)/src/complex/creall.c \
171    $(LOCAL_DIR)/src/complex/csin.c \
172    $(LOCAL_DIR)/src/complex/csinf.c \
173    $(LOCAL_DIR)/src/complex/csinhl.c \
174    $(LOCAL_DIR)/src/complex/csinl.c \
175    $(LOCAL_DIR)/src/complex/csqrtl.c \
176    $(LOCAL_DIR)/src/complex/ctan.c \
177    $(LOCAL_DIR)/src/complex/ctanf.c \
178    $(LOCAL_DIR)/src/complex/ctanhl.c \
179    $(LOCAL_DIR)/src/complex/ctanl.c \
180    $(LOCAL_DIR)/src/conf/confstr.c \
181    $(LOCAL_DIR)/src/conf/fpathconf.c \
182    $(LOCAL_DIR)/src/conf/pathconf.c \
183    $(LOCAL_DIR)/src/conf/sysconf.c \
184    $(LOCAL_DIR)/src/ctype/__ctype_b_loc.c \
185    $(LOCAL_DIR)/src/ctype/__ctype_get_mb_cur_max.c \
186    $(LOCAL_DIR)/src/ctype/__ctype_tolower_loc.c \
187    $(LOCAL_DIR)/src/ctype/__ctype_toupper_loc.c \
188    $(LOCAL_DIR)/src/ctype/isalnum.c \
189    $(LOCAL_DIR)/src/ctype/isalpha.c \
190    $(LOCAL_DIR)/src/ctype/isascii.c \
191    $(LOCAL_DIR)/src/ctype/isblank.c \
192    $(LOCAL_DIR)/src/ctype/iscntrl.c \
193    $(LOCAL_DIR)/src/ctype/isdigit.c \
194    $(LOCAL_DIR)/src/ctype/isgraph.c \
195    $(LOCAL_DIR)/src/ctype/islower.c \
196    $(LOCAL_DIR)/src/ctype/isprint.c \
197    $(LOCAL_DIR)/src/ctype/ispunct.c \
198    $(LOCAL_DIR)/src/ctype/isspace.c \
199    $(LOCAL_DIR)/src/ctype/isupper.c \
200    $(LOCAL_DIR)/src/ctype/iswalnum.c \
201    $(LOCAL_DIR)/src/ctype/iswalpha.c \
202    $(LOCAL_DIR)/src/ctype/iswblank.c \
203    $(LOCAL_DIR)/src/ctype/iswcntrl.c \
204    $(LOCAL_DIR)/src/ctype/iswctype.c \
205    $(LOCAL_DIR)/src/ctype/iswdigit.c \
206    $(LOCAL_DIR)/src/ctype/iswgraph.c \
207    $(LOCAL_DIR)/src/ctype/iswlower.c \
208    $(LOCAL_DIR)/src/ctype/iswprint.c \
209    $(LOCAL_DIR)/src/ctype/iswpunct.c \
210    $(LOCAL_DIR)/src/ctype/iswspace.c \
211    $(LOCAL_DIR)/src/ctype/iswupper.c \
212    $(LOCAL_DIR)/src/ctype/iswxdigit.c \
213    $(LOCAL_DIR)/src/ctype/isxdigit.c \
214    $(LOCAL_DIR)/src/ctype/toascii.c \
215    $(LOCAL_DIR)/src/ctype/tolower.c \
216    $(LOCAL_DIR)/src/ctype/toupper.c \
217    $(LOCAL_DIR)/src/ctype/towctrans.c \
218    $(LOCAL_DIR)/src/ctype/wcswidth.c \
219    $(LOCAL_DIR)/src/ctype/wctrans.c \
220    $(LOCAL_DIR)/src/ctype/wcwidth.c \
221    $(LOCAL_DIR)/src/dirent/alphasort.c \
222    $(LOCAL_DIR)/src/dirent/scandir.c \
223    $(LOCAL_DIR)/src/dirent/versionsort.c \
224    $(LOCAL_DIR)/src/env/__environ.c \
225    $(LOCAL_DIR)/src/env/__libc_start_main.c \
226    $(LOCAL_DIR)/src/env/__stack_chk_fail.c \
227    $(LOCAL_DIR)/src/env/clearenv.c \
228    $(LOCAL_DIR)/src/env/getenv.c \
229    $(LOCAL_DIR)/src/env/putenv.c \
230    $(LOCAL_DIR)/src/env/setenv.c \
231    $(LOCAL_DIR)/src/env/unsetenv.c \
232    $(LOCAL_DIR)/src/errno/__errno_location.c \
233    $(LOCAL_DIR)/src/errno/strerror.c \
234    $(LOCAL_DIR)/src/exit/_Exit.c \
235    $(LOCAL_DIR)/src/exit/__cxa_thread_atexit.c \
236    $(LOCAL_DIR)/src/exit/abort.c \
237    $(LOCAL_DIR)/src/exit/assert.c \
238    $(LOCAL_DIR)/src/exit/at_quick_exit.c \
239    $(LOCAL_DIR)/src/exit/atexit.c \
240    $(LOCAL_DIR)/src/exit/exit.c \
241    $(LOCAL_DIR)/src/exit/quick_exit.c \
242    $(LOCAL_DIR)/src/fcntl/creat.c \
243    $(LOCAL_DIR)/src/fenv/__flt_rounds.c \
244    $(LOCAL_DIR)/src/fenv/fegetexceptflag.c \
245    $(LOCAL_DIR)/src/fenv/feholdexcept.c \
246    $(LOCAL_DIR)/src/fenv/fesetexceptflag.c \
247    $(LOCAL_DIR)/src/fenv/fesetround.c \
248    $(LOCAL_DIR)/src/fenv/feupdateenv.c \
249    $(LOCAL_DIR)/src/internal/floatscan.c \
250    $(LOCAL_DIR)/src/internal/intscan.c \
251    $(LOCAL_DIR)/src/internal/libc.c \
252    $(LOCAL_DIR)/src/internal/shgetc.c \
253    $(LOCAL_DIR)/src/ipc/ftok.c \
254    $(LOCAL_DIR)/src/ipc/msgctl.c \
255    $(LOCAL_DIR)/src/ipc/msgget.c \
256    $(LOCAL_DIR)/src/ipc/msgrcv.c \
257    $(LOCAL_DIR)/src/ipc/msgsnd.c \
258    $(LOCAL_DIR)/src/ipc/semctl.c \
259    $(LOCAL_DIR)/src/ipc/semget.c \
260    $(LOCAL_DIR)/src/ipc/semop.c \
261    $(LOCAL_DIR)/src/ipc/semtimedop.c \
262    $(LOCAL_DIR)/src/ipc/shmat.c \
263    $(LOCAL_DIR)/src/ipc/shmctl.c \
264    $(LOCAL_DIR)/src/ipc/shmdt.c \
265    $(LOCAL_DIR)/src/ipc/shmget.c \
266    $(LOCAL_DIR)/src/ldso/dlclose.c \
267    $(LOCAL_DIR)/src/ldso/dlerror.c \
268    $(LOCAL_DIR)/src/ldso/dlinfo.c \
269    $(LOCAL_DIR)/src/legacy/cuserid.c \
270    $(LOCAL_DIR)/src/legacy/err.c \
271    $(LOCAL_DIR)/src/legacy/euidaccess.c \
272    $(LOCAL_DIR)/src/legacy/futimes.c \
273    $(LOCAL_DIR)/src/legacy/getdtablesize.c \
274    $(LOCAL_DIR)/src/legacy/getpagesize.c \
275    $(LOCAL_DIR)/src/legacy/getpass.c \
276    $(LOCAL_DIR)/src/legacy/isastream.c \
277    $(LOCAL_DIR)/src/legacy/lutimes.c \
278    $(LOCAL_DIR)/src/linux/adjtime.c \
279    $(LOCAL_DIR)/src/linux/flock.c \
280    $(LOCAL_DIR)/src/linux/sethostname.c \
281    $(LOCAL_DIR)/src/linux/settimeofday.c \
282    $(LOCAL_DIR)/src/linux/stime.c \
283    $(LOCAL_DIR)/src/linux/utimes.c \
284    $(LOCAL_DIR)/src/locale/__lctrans.c \
285    $(LOCAL_DIR)/src/locale/__mo_lookup.c \
286    $(LOCAL_DIR)/src/locale/c_locale.c \
287    $(LOCAL_DIR)/src/locale/catclose.c \
288    $(LOCAL_DIR)/src/locale/catgets.c \
289    $(LOCAL_DIR)/src/locale/catopen.c \
290    $(LOCAL_DIR)/src/locale/duplocale.c \
291    $(LOCAL_DIR)/src/locale/freelocale.c \
292    $(LOCAL_DIR)/src/locale/iconv.c \
293    $(LOCAL_DIR)/src/locale/langinfo.c \
294    $(LOCAL_DIR)/src/locale/locale_map.c \
295    $(LOCAL_DIR)/src/locale/localeconv.c \
296    $(LOCAL_DIR)/src/locale/newlocale.c \
297    $(LOCAL_DIR)/src/locale/pleval.c \
298    $(LOCAL_DIR)/src/locale/setlocale.c \
299    $(LOCAL_DIR)/src/locale/strcoll.c \
300    $(LOCAL_DIR)/src/locale/strfmon.c \
301    $(LOCAL_DIR)/src/locale/strxfrm.c \
302    $(LOCAL_DIR)/src/locale/uselocale.c \
303    $(LOCAL_DIR)/src/locale/wcscoll.c \
304    $(LOCAL_DIR)/src/locale/wcsxfrm.c \
305    $(LOCAL_DIR)/src/math/__expo2.c \
306    $(LOCAL_DIR)/src/math/__expo2f.c \
307    $(LOCAL_DIR)/src/math/__fpclassify.c \
308    $(LOCAL_DIR)/src/math/__fpclassifyf.c \
309    $(LOCAL_DIR)/src/math/__fpclassifyl.c \
310    $(LOCAL_DIR)/src/math/__invtrigl.c \
311    $(LOCAL_DIR)/src/math/__signbit.c \
312    $(LOCAL_DIR)/src/math/__signbitf.c \
313    $(LOCAL_DIR)/src/math/__signbitl.c \
314    $(LOCAL_DIR)/src/math/acosh.c \
315    $(LOCAL_DIR)/src/math/acoshf.c \
316    $(LOCAL_DIR)/src/math/acoshl.c \
317    $(LOCAL_DIR)/src/math/asinh.c \
318    $(LOCAL_DIR)/src/math/asinhf.c \
319    $(LOCAL_DIR)/src/math/asinhl.c \
320    $(LOCAL_DIR)/src/math/atanh.c \
321    $(LOCAL_DIR)/src/math/atanhf.c \
322    $(LOCAL_DIR)/src/math/atanhl.c \
323    $(LOCAL_DIR)/src/math/ceil.c \
324    $(LOCAL_DIR)/src/math/ceilf.c \
325    $(LOCAL_DIR)/src/math/copysign.c \
326    $(LOCAL_DIR)/src/math/copysignf.c \
327    $(LOCAL_DIR)/src/math/copysignl.c \
328    $(LOCAL_DIR)/src/math/cosh.c \
329    $(LOCAL_DIR)/src/math/coshf.c \
330    $(LOCAL_DIR)/src/math/coshl.c \
331    $(LOCAL_DIR)/src/math/cosl.c \
332    $(LOCAL_DIR)/src/math/exp10.c \
333    $(LOCAL_DIR)/src/math/exp10f.c \
334    $(LOCAL_DIR)/src/math/exp10l.c \
335    $(LOCAL_DIR)/src/math/fdim.c \
336    $(LOCAL_DIR)/src/math/fdimf.c \
337    $(LOCAL_DIR)/src/math/fdiml.c \
338    $(LOCAL_DIR)/src/math/finite.c \
339    $(LOCAL_DIR)/src/math/finitef.c \
340    $(LOCAL_DIR)/src/math/floor.c \
341    $(LOCAL_DIR)/src/math/floorf.c \
342    $(LOCAL_DIR)/src/math/fmax.c \
343    $(LOCAL_DIR)/src/math/fmaxf.c \
344    $(LOCAL_DIR)/src/math/fmaxl.c \
345    $(LOCAL_DIR)/src/math/fmin.c \
346    $(LOCAL_DIR)/src/math/fminf.c \
347    $(LOCAL_DIR)/src/math/fminl.c \
348    $(LOCAL_DIR)/src/math/fmod.c \
349    $(LOCAL_DIR)/src/math/fmodf.c \
350    $(LOCAL_DIR)/src/math/frexp.c \
351    $(LOCAL_DIR)/src/math/frexpf.c \
352    $(LOCAL_DIR)/src/math/frexpl.c \
353    $(LOCAL_DIR)/src/math/hypot.c \
354    $(LOCAL_DIR)/src/math/hypotf.c \
355    $(LOCAL_DIR)/src/math/hypotl.c \
356    $(LOCAL_DIR)/src/math/ilogb.c \
357    $(LOCAL_DIR)/src/math/ilogbf.c \
358    $(LOCAL_DIR)/src/math/ilogbl.c \
359    $(LOCAL_DIR)/src/math/ldexp.c \
360    $(LOCAL_DIR)/src/math/ldexpf.c \
361    $(LOCAL_DIR)/src/math/ldexpl.c \
362    $(LOCAL_DIR)/src/math/lgamma.c \
363    $(LOCAL_DIR)/src/math/lgammaf.c \
364    $(LOCAL_DIR)/src/math/llround.c \
365    $(LOCAL_DIR)/src/math/llroundf.c \
366    $(LOCAL_DIR)/src/math/llroundl.c \
367    $(LOCAL_DIR)/src/math/logb.c \
368    $(LOCAL_DIR)/src/math/logbf.c \
369    $(LOCAL_DIR)/src/math/logbl.c \
370    $(LOCAL_DIR)/src/math/lround.c \
371    $(LOCAL_DIR)/src/math/lroundf.c \
372    $(LOCAL_DIR)/src/math/lroundl.c \
373    $(LOCAL_DIR)/src/math/modf.c \
374    $(LOCAL_DIR)/src/math/modff.c \
375    $(LOCAL_DIR)/src/math/modfl.c \
376    $(LOCAL_DIR)/src/math/nan.c \
377    $(LOCAL_DIR)/src/math/nanf.c \
378    $(LOCAL_DIR)/src/math/nanl.c \
379    $(LOCAL_DIR)/src/math/nearbyint.c \
380    $(LOCAL_DIR)/src/math/nearbyintf.c \
381    $(LOCAL_DIR)/src/math/nearbyintl.c \
382    $(LOCAL_DIR)/src/math/nextafter.c \
383    $(LOCAL_DIR)/src/math/nextafterf.c \
384    $(LOCAL_DIR)/src/math/nextafterl.c \
385    $(LOCAL_DIR)/src/math/nexttoward.c \
386    $(LOCAL_DIR)/src/math/nexttowardf.c \
387    $(LOCAL_DIR)/src/math/nexttowardl.c \
388    $(LOCAL_DIR)/src/math/remainder.c \
389    $(LOCAL_DIR)/src/math/remainderf.c \
390    $(LOCAL_DIR)/src/math/remquo.c \
391    $(LOCAL_DIR)/src/math/remquof.c \
392    $(LOCAL_DIR)/src/math/remquol.c \
393    $(LOCAL_DIR)/src/math/rint.c \
394    $(LOCAL_DIR)/src/math/rintf.c \
395    $(LOCAL_DIR)/src/math/round.c \
396    $(LOCAL_DIR)/src/math/roundf.c \
397    $(LOCAL_DIR)/src/math/roundl.c \
398    $(LOCAL_DIR)/src/math/scalbln.c \
399    $(LOCAL_DIR)/src/math/scalblnf.c \
400    $(LOCAL_DIR)/src/math/scalblnl.c \
401    $(LOCAL_DIR)/src/math/scalbn.c \
402    $(LOCAL_DIR)/src/math/scalbnf.c \
403    $(LOCAL_DIR)/src/math/scalbnl.c \
404    $(LOCAL_DIR)/src/math/signgam.c \
405    $(LOCAL_DIR)/src/math/significand.c \
406    $(LOCAL_DIR)/src/math/significandf.c \
407    $(LOCAL_DIR)/src/math/sincosl.c \
408    $(LOCAL_DIR)/src/math/sinh.c \
409    $(LOCAL_DIR)/src/math/sinhf.c \
410    $(LOCAL_DIR)/src/math/sinhl.c \
411    $(LOCAL_DIR)/src/math/sinl.c \
412    $(LOCAL_DIR)/src/math/tanh.c \
413    $(LOCAL_DIR)/src/math/tanhf.c \
414    $(LOCAL_DIR)/src/math/tanhl.c \
415    $(LOCAL_DIR)/src/math/tanl.c \
416    $(LOCAL_DIR)/src/math/tgamma.c \
417    $(LOCAL_DIR)/src/math/tgammaf.c \
418    $(LOCAL_DIR)/src/math/trunc.c \
419    $(LOCAL_DIR)/src/math/truncf.c \
420    $(LOCAL_DIR)/src/misc/a64l.c \
421    $(LOCAL_DIR)/src/misc/basename.c \
422    $(LOCAL_DIR)/src/misc/dirname.c \
423    $(LOCAL_DIR)/src/misc/ffs.c \
424    $(LOCAL_DIR)/src/misc/ffsl.c \
425    $(LOCAL_DIR)/src/misc/ffsll.c \
426    $(LOCAL_DIR)/src/misc/get_current_dir_name.c \
427    $(LOCAL_DIR)/src/misc/getauxval.c \
428    $(LOCAL_DIR)/src/misc/getdomainname.c \
429    $(LOCAL_DIR)/src/misc/gethostid.c \
430    $(LOCAL_DIR)/src/misc/getopt.c \
431    $(LOCAL_DIR)/src/misc/getopt_long.c \
432    $(LOCAL_DIR)/src/misc/getsubopt.c \
433    $(LOCAL_DIR)/src/misc/initgroups.c \
434    $(LOCAL_DIR)/src/misc/issetugid.c \
435    $(LOCAL_DIR)/src/misc/lockf.c \
436    $(LOCAL_DIR)/src/misc/openpty.c \
437    $(LOCAL_DIR)/src/misc/ptsname.c \
438    $(LOCAL_DIR)/src/misc/pty.c \
439    $(LOCAL_DIR)/src/misc/setdomainname.c \
440    $(LOCAL_DIR)/src/misc/syslog.c \
441    $(LOCAL_DIR)/src/misc/wordexp.c \
442    $(LOCAL_DIR)/src/mman/madvise.c \
443    $(LOCAL_DIR)/src/mman/mlock.c \
444    $(LOCAL_DIR)/src/mman/mlockall.c \
445    $(LOCAL_DIR)/src/mman/mmap.c \
446    $(LOCAL_DIR)/src/mman/mprotect.c \
447    $(LOCAL_DIR)/src/mman/msync.c \
448    $(LOCAL_DIR)/src/mman/munlock.c \
449    $(LOCAL_DIR)/src/mman/munlockall.c \
450    $(LOCAL_DIR)/src/mman/munmap.c \
451    $(LOCAL_DIR)/src/mman/posix_madvise.c \
452    $(LOCAL_DIR)/src/mman/shm_open.c \
453    $(LOCAL_DIR)/src/multibyte/btowc.c \
454    $(LOCAL_DIR)/src/multibyte/c16rtomb.c \
455    $(LOCAL_DIR)/src/multibyte/c32rtomb.c \
456    $(LOCAL_DIR)/src/multibyte/internal.c \
457    $(LOCAL_DIR)/src/multibyte/mblen.c \
458    $(LOCAL_DIR)/src/multibyte/mbrlen.c \
459    $(LOCAL_DIR)/src/multibyte/mbrtoc16.c \
460    $(LOCAL_DIR)/src/multibyte/mbrtoc32.c \
461    $(LOCAL_DIR)/src/multibyte/mbrtowc.c \
462    $(LOCAL_DIR)/src/multibyte/mbsinit.c \
463    $(LOCAL_DIR)/src/multibyte/mbsnrtowcs.c \
464    $(LOCAL_DIR)/src/multibyte/mbsrtowcs.c \
465    $(LOCAL_DIR)/src/multibyte/mbstowcs.c \
466    $(LOCAL_DIR)/src/multibyte/mbtowc.c \
467    $(LOCAL_DIR)/src/multibyte/wcrtomb.c \
468    $(LOCAL_DIR)/src/multibyte/wcsnrtombs.c \
469    $(LOCAL_DIR)/src/multibyte/wcsrtombs.c \
470    $(LOCAL_DIR)/src/multibyte/wcstombs.c \
471    $(LOCAL_DIR)/src/multibyte/wctob.c \
472    $(LOCAL_DIR)/src/multibyte/wctomb.c \
473    $(LOCAL_DIR)/src/network/accept.c \
474    $(LOCAL_DIR)/src/network/dn_comp.c \
475    $(LOCAL_DIR)/src/network/dn_expand.c \
476    $(LOCAL_DIR)/src/network/dn_skipname.c \
477    $(LOCAL_DIR)/src/network/dns_parse.c \
478    $(LOCAL_DIR)/src/network/ent.c \
479    $(LOCAL_DIR)/src/network/ether.c \
480    $(LOCAL_DIR)/src/network/gai_strerror.c \
481    $(LOCAL_DIR)/src/network/gethostbyaddr.c \
482    $(LOCAL_DIR)/src/network/gethostbyaddr_r.c \
483    $(LOCAL_DIR)/src/network/gethostbyname.c \
484    $(LOCAL_DIR)/src/network/gethostbyname2.c \
485    $(LOCAL_DIR)/src/network/gethostbyname2_r.c \
486    $(LOCAL_DIR)/src/network/gethostbyname_r.c \
487    $(LOCAL_DIR)/src/network/getifaddrs.c \
488    $(LOCAL_DIR)/src/network/getnameinfo.c \
489    $(LOCAL_DIR)/src/network/getservbyname.c \
490    $(LOCAL_DIR)/src/network/getservbyname_r.c \
491    $(LOCAL_DIR)/src/network/getservbyport.c \
492    $(LOCAL_DIR)/src/network/getservbyport_r.c \
493    $(LOCAL_DIR)/src/network/h_errno.c \
494    $(LOCAL_DIR)/src/network/herror.c \
495    $(LOCAL_DIR)/src/network/hstrerror.c \
496    $(LOCAL_DIR)/src/network/htonl.c \
497    $(LOCAL_DIR)/src/network/htons.c \
498    $(LOCAL_DIR)/src/network/if_freenameindex.c \
499    $(LOCAL_DIR)/src/network/if_indextoname.c \
500    $(LOCAL_DIR)/src/network/if_nameindex.c \
501    $(LOCAL_DIR)/src/network/if_nametoindex.c \
502    $(LOCAL_DIR)/src/network/in6addr_any.c \
503    $(LOCAL_DIR)/src/network/in6addr_loopback.c \
504    $(LOCAL_DIR)/src/network/inet_addr.c \
505    $(LOCAL_DIR)/src/network/inet_aton.c \
506    $(LOCAL_DIR)/src/network/inet_legacy.c \
507    $(LOCAL_DIR)/src/network/inet_ntoa.c \
508    $(LOCAL_DIR)/src/network/inet_ntop.c \
509    $(LOCAL_DIR)/src/network/inet_pton.c \
510    $(LOCAL_DIR)/src/network/lookup_ipliteral.c \
511    $(LOCAL_DIR)/src/network/lookup_serv.c \
512    $(LOCAL_DIR)/src/network/netlink.c \
513    $(LOCAL_DIR)/src/network/netname.c \
514    $(LOCAL_DIR)/src/network/ns_parse.c \
515    $(LOCAL_DIR)/src/network/ntohl.c \
516    $(LOCAL_DIR)/src/network/ntohs.c \
517    $(LOCAL_DIR)/src/network/proto.c \
518    $(LOCAL_DIR)/src/network/recv.c \
519    $(LOCAL_DIR)/src/network/res_init.c \
520    $(LOCAL_DIR)/src/network/res_mkquery.c \
521    $(LOCAL_DIR)/src/network/res_msend.c \
522    $(LOCAL_DIR)/src/network/res_query.c \
523    $(LOCAL_DIR)/src/network/res_querydomain.c \
524    $(LOCAL_DIR)/src/network/res_send.c \
525    $(LOCAL_DIR)/src/network/res_state.c \
526    $(LOCAL_DIR)/src/network/resolvconf.c \
527    $(LOCAL_DIR)/src/network/send.c \
528    $(LOCAL_DIR)/src/network/serv.c \
529    $(LOCAL_DIR)/src/passwd/fgetgrent.c \
530    $(LOCAL_DIR)/src/passwd/fgetpwent.c \
531    $(LOCAL_DIR)/src/passwd/getgr_a.c \
532    $(LOCAL_DIR)/src/passwd/getgr_r.c \
533    $(LOCAL_DIR)/src/passwd/getgrent.c \
534    $(LOCAL_DIR)/src/passwd/getgrent_a.c \
535    $(LOCAL_DIR)/src/passwd/getgrouplist.c \
536    $(LOCAL_DIR)/src/passwd/getpw_a.c \
537    $(LOCAL_DIR)/src/passwd/getpw_r.c \
538    $(LOCAL_DIR)/src/passwd/getpwent.c \
539    $(LOCAL_DIR)/src/passwd/getpwent_a.c \
540    $(LOCAL_DIR)/src/passwd/nscd_query.c \
541    $(LOCAL_DIR)/src/passwd/putgrent.c \
542    $(LOCAL_DIR)/src/passwd/putpwent.c \
543    $(LOCAL_DIR)/src/prng/__rand48_step.c \
544    $(LOCAL_DIR)/src/prng/__seed48.c \
545    $(LOCAL_DIR)/src/prng/drand48.c \
546    $(LOCAL_DIR)/src/prng/lcong48.c \
547    $(LOCAL_DIR)/src/prng/lrand48.c \
548    $(LOCAL_DIR)/src/prng/mrand48.c \
549    $(LOCAL_DIR)/src/prng/rand.c \
550    $(LOCAL_DIR)/src/prng/rand_r.c \
551    $(LOCAL_DIR)/src/prng/random.c \
552    $(LOCAL_DIR)/src/prng/seed48.c \
553    $(LOCAL_DIR)/src/prng/srand48.c \
554    $(LOCAL_DIR)/src/process/execl.c \
555    $(LOCAL_DIR)/src/process/execle.c \
556    $(LOCAL_DIR)/src/process/execlp.c \
557    $(LOCAL_DIR)/src/process/execv.c \
558    $(LOCAL_DIR)/src/process/execve.c \
559    $(LOCAL_DIR)/src/process/execvp.c \
560    $(LOCAL_DIR)/src/process/fexecve.c \
561    $(LOCAL_DIR)/src/process/fork.c \
562    $(LOCAL_DIR)/src/process/posix_spawn.c \
563    $(LOCAL_DIR)/src/process/posix_spawn_file_actions_addclose.c \
564    $(LOCAL_DIR)/src/process/posix_spawn_file_actions_adddup2.c \
565    $(LOCAL_DIR)/src/process/posix_spawn_file_actions_addopen.c \
566    $(LOCAL_DIR)/src/process/posix_spawn_file_actions_destroy.c \
567    $(LOCAL_DIR)/src/process/posix_spawn_file_actions_init.c \
568    $(LOCAL_DIR)/src/process/posix_spawnattr_destroy.c \
569    $(LOCAL_DIR)/src/process/posix_spawnattr_getflags.c \
570    $(LOCAL_DIR)/src/process/posix_spawnattr_getpgroup.c \
571    $(LOCAL_DIR)/src/process/posix_spawnattr_getsigdefault.c \
572    $(LOCAL_DIR)/src/process/posix_spawnattr_getsigmask.c \
573    $(LOCAL_DIR)/src/process/posix_spawnattr_init.c \
574    $(LOCAL_DIR)/src/process/posix_spawnattr_sched.c \
575    $(LOCAL_DIR)/src/process/posix_spawnattr_setflags.c \
576    $(LOCAL_DIR)/src/process/posix_spawnattr_setpgroup.c \
577    $(LOCAL_DIR)/src/process/posix_spawnattr_setsigdefault.c \
578    $(LOCAL_DIR)/src/process/posix_spawnattr_setsigmask.c \
579    $(LOCAL_DIR)/src/process/posix_spawnp.c \
580    $(LOCAL_DIR)/src/process/system.c \
581    $(LOCAL_DIR)/src/process/wait.c \
582    $(LOCAL_DIR)/src/process/waitid.c \
583    $(LOCAL_DIR)/src/process/waitpid.c \
584    $(LOCAL_DIR)/src/regex/fnmatch.c \
585    $(LOCAL_DIR)/src/regex/glob.c \
586    $(LOCAL_DIR)/src/sched/affinity.c \
587    $(LOCAL_DIR)/src/sched/sched_cpucount.c \
588    $(LOCAL_DIR)/src/sched/sched_get_priority_max.c \
589    $(LOCAL_DIR)/src/sched/sched_getcpu.c \
590    $(LOCAL_DIR)/src/sched/sched_getparam.c \
591    $(LOCAL_DIR)/src/sched/sched_getscheduler.c \
592    $(LOCAL_DIR)/src/sched/sched_rr_get_interval.c \
593    $(LOCAL_DIR)/src/sched/sched_setparam.c \
594    $(LOCAL_DIR)/src/sched/sched_setscheduler.c \
595    $(LOCAL_DIR)/src/sched/sched_yield.c \
596    $(LOCAL_DIR)/src/setjmp/longjmp.c \
597    $(LOCAL_DIR)/src/setjmp/setjmp.c \
598    $(LOCAL_DIR)/src/signal/getitimer.c \
599    $(LOCAL_DIR)/src/signal/kill.c \
600    $(LOCAL_DIR)/src/signal/killpg.c \
601    $(LOCAL_DIR)/src/signal/psiginfo.c \
602    $(LOCAL_DIR)/src/signal/psignal.c \
603    $(LOCAL_DIR)/src/signal/raise.c \
604    $(LOCAL_DIR)/src/signal/setitimer.c \
605    $(LOCAL_DIR)/src/signal/sigaction.c \
606    $(LOCAL_DIR)/src/signal/sigaddset.c \
607    $(LOCAL_DIR)/src/signal/sigaltstack.c \
608    $(LOCAL_DIR)/src/signal/sigandset.c \
609    $(LOCAL_DIR)/src/signal/sigdelset.c \
610    $(LOCAL_DIR)/src/signal/sigemptyset.c \
611    $(LOCAL_DIR)/src/signal/sigfillset.c \
612    $(LOCAL_DIR)/src/signal/siginterrupt.c \
613    $(LOCAL_DIR)/src/signal/sigisemptyset.c \
614    $(LOCAL_DIR)/src/signal/sigismember.c \
615    $(LOCAL_DIR)/src/signal/signal.c \
616    $(LOCAL_DIR)/src/signal/sigorset.c \
617    $(LOCAL_DIR)/src/signal/sigpause.c \
618    $(LOCAL_DIR)/src/signal/sigpending.c \
619    $(LOCAL_DIR)/src/signal/sigprocmask.c \
620    $(LOCAL_DIR)/src/signal/sigqueue.c \
621    $(LOCAL_DIR)/src/signal/sigrtmax.c \
622    $(LOCAL_DIR)/src/signal/sigrtmin.c \
623    $(LOCAL_DIR)/src/signal/sigsuspend.c \
624    $(LOCAL_DIR)/src/signal/sigtimedwait.c \
625    $(LOCAL_DIR)/src/signal/sigwait.c \
626    $(LOCAL_DIR)/src/signal/sigwaitinfo.c \
627    $(LOCAL_DIR)/src/stat/futimesat.c \
628    $(LOCAL_DIR)/src/stat/lchmod.c \
629    $(LOCAL_DIR)/src/stat/mkfifoat.c \
630    $(LOCAL_DIR)/src/stat/mknodat.c \
631    $(LOCAL_DIR)/src/stat/statvfs.c \
632    $(LOCAL_DIR)/src/stdio/__fclose_ca.c \
633    $(LOCAL_DIR)/src/stdio/__fdopen.c \
634    $(LOCAL_DIR)/src/stdio/__fmodeflags.c \
635    $(LOCAL_DIR)/src/stdio/__fopen_rb_ca.c \
636    $(LOCAL_DIR)/src/stdio/__lockfile.c \
637    $(LOCAL_DIR)/src/stdio/__overflow.c \
638    $(LOCAL_DIR)/src/stdio/__stdio_close.c \
639    $(LOCAL_DIR)/src/stdio/__stdio_exit.c \
640    $(LOCAL_DIR)/src/stdio/__stdio_read.c \
641    $(LOCAL_DIR)/src/stdio/__stdio_seek.c \
642    $(LOCAL_DIR)/src/stdio/__stdio_write.c \
643    $(LOCAL_DIR)/src/stdio/__stdout_write.c \
644    $(LOCAL_DIR)/src/stdio/__string_read.c \
645    $(LOCAL_DIR)/src/stdio/__toread.c \
646    $(LOCAL_DIR)/src/stdio/__towrite.c \
647    $(LOCAL_DIR)/src/stdio/__uflow.c \
648    $(LOCAL_DIR)/src/stdio/asprintf.c \
649    $(LOCAL_DIR)/src/stdio/clearerr.c \
650    $(LOCAL_DIR)/src/stdio/dprintf.c \
651    $(LOCAL_DIR)/src/stdio/fclose.c \
652    $(LOCAL_DIR)/src/stdio/feof.c \
653    $(LOCAL_DIR)/src/stdio/ferror.c \
654    $(LOCAL_DIR)/src/stdio/fflush.c \
655    $(LOCAL_DIR)/src/stdio/fgetc.c \
656    $(LOCAL_DIR)/src/stdio/fgetln.c \
657    $(LOCAL_DIR)/src/stdio/fgetpos.c \
658    $(LOCAL_DIR)/src/stdio/fgets.c \
659    $(LOCAL_DIR)/src/stdio/fgetwc.c \
660    $(LOCAL_DIR)/src/stdio/fgetws.c \
661    $(LOCAL_DIR)/src/stdio/fileno.c \
662    $(LOCAL_DIR)/src/stdio/flockfile.c \
663    $(LOCAL_DIR)/src/stdio/fmemopen.c \
664    $(LOCAL_DIR)/src/stdio/fopen.c \
665    $(LOCAL_DIR)/src/stdio/fprintf.c \
666    $(LOCAL_DIR)/src/stdio/fputc.c \
667    $(LOCAL_DIR)/src/stdio/fputs.c \
668    $(LOCAL_DIR)/src/stdio/fputwc.c \
669    $(LOCAL_DIR)/src/stdio/fputws.c \
670    $(LOCAL_DIR)/src/stdio/fread.c \
671    $(LOCAL_DIR)/src/stdio/freopen.c \
672    $(LOCAL_DIR)/src/stdio/fscanf.c \
673    $(LOCAL_DIR)/src/stdio/fseek.c \
674    $(LOCAL_DIR)/src/stdio/fsetpos.c \
675    $(LOCAL_DIR)/src/stdio/ftell.c \
676    $(LOCAL_DIR)/src/stdio/ftrylockfile.c \
677    $(LOCAL_DIR)/src/stdio/funlockfile.c \
678    $(LOCAL_DIR)/src/stdio/fwide.c \
679    $(LOCAL_DIR)/src/stdio/fwprintf.c \
680    $(LOCAL_DIR)/src/stdio/fwrite.c \
681    $(LOCAL_DIR)/src/stdio/fwscanf.c \
682    $(LOCAL_DIR)/src/stdio/getc.c \
683    $(LOCAL_DIR)/src/stdio/getc_unlocked.c \
684    $(LOCAL_DIR)/src/stdio/getchar.c \
685    $(LOCAL_DIR)/src/stdio/getchar_unlocked.c \
686    $(LOCAL_DIR)/src/stdio/getdelim.c \
687    $(LOCAL_DIR)/src/stdio/getline.c \
688    $(LOCAL_DIR)/src/stdio/gets.c \
689    $(LOCAL_DIR)/src/stdio/getw.c \
690    $(LOCAL_DIR)/src/stdio/getwc.c \
691    $(LOCAL_DIR)/src/stdio/getwchar.c \
692    $(LOCAL_DIR)/src/stdio/ofl.c \
693    $(LOCAL_DIR)/src/stdio/ofl_add.c \
694    $(LOCAL_DIR)/src/stdio/open_memstream.c \
695    $(LOCAL_DIR)/src/stdio/open_wmemstream.c \
696    $(LOCAL_DIR)/src/stdio/pclose.c \
697    $(LOCAL_DIR)/src/stdio/perror.c \
698    $(LOCAL_DIR)/src/stdio/popen.c \
699    $(LOCAL_DIR)/src/stdio/printf.c \
700    $(LOCAL_DIR)/src/stdio/putc.c \
701    $(LOCAL_DIR)/src/stdio/putc_unlocked.c \
702    $(LOCAL_DIR)/src/stdio/putchar.c \
703    $(LOCAL_DIR)/src/stdio/putchar_unlocked.c \
704    $(LOCAL_DIR)/src/stdio/puts.c \
705    $(LOCAL_DIR)/src/stdio/putw.c \
706    $(LOCAL_DIR)/src/stdio/putwc.c \
707    $(LOCAL_DIR)/src/stdio/putwchar.c \
708    $(LOCAL_DIR)/src/stdio/remove.c \
709    $(LOCAL_DIR)/src/stdio/rewind.c \
710    $(LOCAL_DIR)/src/stdio/scanf.c \
711    $(LOCAL_DIR)/src/stdio/setbuf.c \
712    $(LOCAL_DIR)/src/stdio/setbuffer.c \
713    $(LOCAL_DIR)/src/stdio/setlinebuf.c \
714    $(LOCAL_DIR)/src/stdio/setvbuf.c \
715    $(LOCAL_DIR)/src/stdio/snprintf.c \
716    $(LOCAL_DIR)/src/stdio/sprintf.c \
717    $(LOCAL_DIR)/src/stdio/sscanf.c \
718    $(LOCAL_DIR)/src/stdio/stderr.c \
719    $(LOCAL_DIR)/src/stdio/stdin.c \
720    $(LOCAL_DIR)/src/stdio/stdout.c \
721    $(LOCAL_DIR)/src/stdio/swprintf.c \
722    $(LOCAL_DIR)/src/stdio/swscanf.c \
723    $(LOCAL_DIR)/src/stdio/tempnam.c \
724    $(LOCAL_DIR)/src/stdio/tmpfile.c \
725    $(LOCAL_DIR)/src/stdio/tmpnam.c \
726    $(LOCAL_DIR)/src/stdio/ungetc.c \
727    $(LOCAL_DIR)/src/stdio/ungetwc.c \
728    $(LOCAL_DIR)/src/stdio/vasprintf.c \
729    $(LOCAL_DIR)/src/stdio/vdprintf.c \
730    $(LOCAL_DIR)/src/stdio/vfprintf.c \
731    $(LOCAL_DIR)/src/stdio/vfscanf.c \
732    $(LOCAL_DIR)/src/stdio/vfwprintf.c \
733    $(LOCAL_DIR)/src/stdio/vfwscanf.c \
734    $(LOCAL_DIR)/src/stdio/vprintf.c \
735    $(LOCAL_DIR)/src/stdio/vscanf.c \
736    $(LOCAL_DIR)/src/stdio/vsnprintf.c \
737    $(LOCAL_DIR)/src/stdio/vsprintf.c \
738    $(LOCAL_DIR)/src/stdio/vsscanf.c \
739    $(LOCAL_DIR)/src/stdio/vswprintf.c \
740    $(LOCAL_DIR)/src/stdio/vswscanf.c \
741    $(LOCAL_DIR)/src/stdio/vwprintf.c \
742    $(LOCAL_DIR)/src/stdio/vwscanf.c \
743    $(LOCAL_DIR)/src/stdio/wprintf.c \
744    $(LOCAL_DIR)/src/stdio/wscanf.c \
745    $(LOCAL_DIR)/src/stdlib/abs.c \
746    $(LOCAL_DIR)/src/stdlib/atof.c \
747    $(LOCAL_DIR)/src/stdlib/atoi.c \
748    $(LOCAL_DIR)/src/stdlib/atol.c \
749    $(LOCAL_DIR)/src/stdlib/atoll.c \
750    $(LOCAL_DIR)/src/stdlib/bsearch.c \
751    $(LOCAL_DIR)/src/stdlib/div.c \
752    $(LOCAL_DIR)/src/stdlib/ecvt.c \
753    $(LOCAL_DIR)/src/stdlib/fcvt.c \
754    $(LOCAL_DIR)/src/stdlib/gcvt.c \
755    $(LOCAL_DIR)/src/stdlib/imaxabs.c \
756    $(LOCAL_DIR)/src/stdlib/imaxdiv.c \
757    $(LOCAL_DIR)/src/stdlib/labs.c \
758    $(LOCAL_DIR)/src/stdlib/ldiv.c \
759    $(LOCAL_DIR)/src/stdlib/llabs.c \
760    $(LOCAL_DIR)/src/stdlib/lldiv.c \
761    $(LOCAL_DIR)/src/stdlib/strtod.c \
762    $(LOCAL_DIR)/src/stdlib/strtol.c \
763    $(LOCAL_DIR)/src/stdlib/wcstod.c \
764    $(LOCAL_DIR)/src/stdlib/wcstol.c \
765    $(LOCAL_DIR)/src/temp/__randname.c \
766    $(LOCAL_DIR)/src/temp/mkdtemp.c \
767    $(LOCAL_DIR)/src/temp/mkostemp.c \
768    $(LOCAL_DIR)/src/temp/mkostemps.c \
769    $(LOCAL_DIR)/src/temp/mkstemp.c \
770    $(LOCAL_DIR)/src/temp/mkstemps.c \
771    $(LOCAL_DIR)/src/temp/mktemp.c \
772    $(LOCAL_DIR)/src/termios/cfgetospeed.c \
773    $(LOCAL_DIR)/src/termios/cfmakeraw.c \
774    $(LOCAL_DIR)/src/termios/cfsetospeed.c \
775    $(LOCAL_DIR)/src/termios/tcdrain.c \
776    $(LOCAL_DIR)/src/termios/tcflow.c \
777    $(LOCAL_DIR)/src/termios/tcflush.c \
778    $(LOCAL_DIR)/src/termios/tcgetattr.c \
779    $(LOCAL_DIR)/src/termios/tcgetsid.c \
780    $(LOCAL_DIR)/src/termios/tcsendbreak.c \
781    $(LOCAL_DIR)/src/termios/tcsetattr.c \
782    $(LOCAL_DIR)/src/thread/__timedwait.c \
783    $(LOCAL_DIR)/src/thread/__tls_get_addr.c \
784    $(LOCAL_DIR)/src/thread/__wait.c \
785    $(LOCAL_DIR)/src/thread/allocate.c \
786    $(LOCAL_DIR)/src/thread/call_once.c \
787    $(LOCAL_DIR)/src/thread/cnd_broadcast.c \
788    $(LOCAL_DIR)/src/thread/cnd_destroy.c \
789    $(LOCAL_DIR)/src/thread/cnd_init.c \
790    $(LOCAL_DIR)/src/thread/cnd_signal.c \
791    $(LOCAL_DIR)/src/thread/cnd_timedwait.c \
792    $(LOCAL_DIR)/src/thread/cnd_wait.c \
793    $(LOCAL_DIR)/src/thread/mtx_destroy.c \
794    $(LOCAL_DIR)/src/thread/mtx_init.c \
795    $(LOCAL_DIR)/src/thread/mtx_lock.c \
796    $(LOCAL_DIR)/src/thread/mtx_timedlock.c \
797    $(LOCAL_DIR)/src/thread/mtx_trylock.c \
798    $(LOCAL_DIR)/src/thread/mtx_unlock.c \
799    $(LOCAL_DIR)/src/thread/safestack.c \
800    $(LOCAL_DIR)/src/thread/thrd_create.c \
801    $(LOCAL_DIR)/src/thread/thrd_detach.c \
802    $(LOCAL_DIR)/src/thread/thrd_exit.c \
803    $(LOCAL_DIR)/src/thread/thrd_join.c \
804    $(LOCAL_DIR)/src/thread/thrd_sleep.c \
805    $(LOCAL_DIR)/src/thread/thrd_yield.c \
806    $(LOCAL_DIR)/src/thread/tss.c \
807    $(LOCAL_DIR)/src/thread/tss_set.c \
808    $(LOCAL_DIR)/src/time/__asctime.c \
809    $(LOCAL_DIR)/src/time/__map_file.c \
810    $(LOCAL_DIR)/src/time/__month_to_secs.c \
811    $(LOCAL_DIR)/src/time/__secs_to_tm.c \
812    $(LOCAL_DIR)/src/time/__tm_to_secs.c \
813    $(LOCAL_DIR)/src/time/__tz.c \
814    $(LOCAL_DIR)/src/time/__year_to_secs.c \
815    $(LOCAL_DIR)/src/time/asctime.c \
816    $(LOCAL_DIR)/src/time/asctime_r.c \
817    $(LOCAL_DIR)/src/time/clock.c \
818    $(LOCAL_DIR)/src/time/clock_getcpuclockid.c \
819    $(LOCAL_DIR)/src/time/clock_getres.c \
820    $(LOCAL_DIR)/src/time/clock_gettime.c \
821    $(LOCAL_DIR)/src/time/clock_nanosleep.c \
822    $(LOCAL_DIR)/src/time/clock_settime.c \
823    $(LOCAL_DIR)/src/time/ctime.c \
824    $(LOCAL_DIR)/src/time/ctime_r.c \
825    $(LOCAL_DIR)/src/time/difftime.c \
826    $(LOCAL_DIR)/src/time/ftime.c \
827    $(LOCAL_DIR)/src/time/getdate.c \
828    $(LOCAL_DIR)/src/time/gettimeofday.c \
829    $(LOCAL_DIR)/src/time/gmtime.c \
830    $(LOCAL_DIR)/src/time/gmtime_r.c \
831    $(LOCAL_DIR)/src/time/localtime.c \
832    $(LOCAL_DIR)/src/time/localtime_r.c \
833    $(LOCAL_DIR)/src/time/mktime.c \
834    $(LOCAL_DIR)/src/time/nanosleep.c \
835    $(LOCAL_DIR)/src/time/strftime.c \
836    $(LOCAL_DIR)/src/time/strptime.c \
837    $(LOCAL_DIR)/src/time/time.c \
838    $(LOCAL_DIR)/src/time/timegm.c \
839    $(LOCAL_DIR)/src/time/times.c \
840    $(LOCAL_DIR)/src/time/timespec_get.c \
841    $(LOCAL_DIR)/src/time/utime.c \
842    $(LOCAL_DIR)/src/time/wcsftime.c \
843    $(LOCAL_DIR)/src/unistd/_exit.c \
844    $(LOCAL_DIR)/src/unistd/acct.c \
845    $(LOCAL_DIR)/src/unistd/alarm.c \
846    $(LOCAL_DIR)/src/unistd/ctermid.c \
847    $(LOCAL_DIR)/src/unistd/gethostname.c \
848    $(LOCAL_DIR)/src/unistd/getlogin.c \
849    $(LOCAL_DIR)/src/unistd/getlogin_r.c \
850    $(LOCAL_DIR)/src/unistd/pause.c \
851    $(LOCAL_DIR)/src/unistd/posix_close.c \
852    $(LOCAL_DIR)/src/unistd/setpgrp.c \
853    $(LOCAL_DIR)/src/unistd/sleep.c \
854    $(LOCAL_DIR)/src/unistd/tcgetpgrp.c \
855    $(LOCAL_DIR)/src/unistd/tcsetpgrp.c \
856    $(LOCAL_DIR)/src/unistd/ttyname.c \
857    $(LOCAL_DIR)/src/unistd/ualarm.c \
858    $(LOCAL_DIR)/src/unistd/usleep.c \
859    $(LOCAL_DIR)/stubs/idstubs.c \
860    $(LOCAL_DIR)/third_party/complex/__cexp.c \
861    $(LOCAL_DIR)/third_party/complex/__cexpf.c \
862    $(LOCAL_DIR)/third_party/complex/catan.c \
863    $(LOCAL_DIR)/third_party/complex/catanf.c \
864    $(LOCAL_DIR)/third_party/complex/catanl.c \
865    $(LOCAL_DIR)/third_party/complex/ccosh.c \
866    $(LOCAL_DIR)/third_party/complex/ccoshf.c \
867    $(LOCAL_DIR)/third_party/complex/cexp.c \
868    $(LOCAL_DIR)/third_party/complex/cexpf.c \
869    $(LOCAL_DIR)/third_party/complex/csinh.c \
870    $(LOCAL_DIR)/third_party/complex/csinhf.c \
871    $(LOCAL_DIR)/third_party/complex/csqrt.c \
872    $(LOCAL_DIR)/third_party/complex/csqrtf.c \
873    $(LOCAL_DIR)/third_party/complex/ctanh.c \
874    $(LOCAL_DIR)/third_party/complex/ctanhf.c \
875    $(LOCAL_DIR)/third_party/math/__cos.c \
876    $(LOCAL_DIR)/third_party/math/__cosdf.c \
877    $(LOCAL_DIR)/third_party/math/__cosl.c \
878    $(LOCAL_DIR)/third_party/math/__polevll.c \
879    $(LOCAL_DIR)/third_party/math/__rem_pio2.c \
880    $(LOCAL_DIR)/third_party/math/__rem_pio2_large.c \
881    $(LOCAL_DIR)/third_party/math/__rem_pio2f.c \
882    $(LOCAL_DIR)/third_party/math/__rem_pio2l.c \
883    $(LOCAL_DIR)/third_party/math/__sin.c \
884    $(LOCAL_DIR)/third_party/math/__sindf.c \
885    $(LOCAL_DIR)/third_party/math/__sinl.c \
886    $(LOCAL_DIR)/third_party/math/__tan.c \
887    $(LOCAL_DIR)/third_party/math/__tandf.c \
888    $(LOCAL_DIR)/third_party/math/__tanl.c \
889    $(LOCAL_DIR)/third_party/math/acos.c \
890    $(LOCAL_DIR)/third_party/math/acosf.c \
891    $(LOCAL_DIR)/third_party/math/asin.c \
892    $(LOCAL_DIR)/third_party/math/asinf.c \
893    $(LOCAL_DIR)/third_party/math/atan.c \
894    $(LOCAL_DIR)/third_party/math/atan2.c \
895    $(LOCAL_DIR)/third_party/math/atan2f.c \
896    $(LOCAL_DIR)/third_party/math/atanf.c \
897    $(LOCAL_DIR)/third_party/math/cbrt.c \
898    $(LOCAL_DIR)/third_party/math/cbrtf.c \
899    $(LOCAL_DIR)/third_party/math/cbrtl.c \
900    $(LOCAL_DIR)/third_party/math/cos.c \
901    $(LOCAL_DIR)/third_party/math/cosf.c \
902    $(LOCAL_DIR)/third_party/math/erf.c \
903    $(LOCAL_DIR)/third_party/math/erff.c \
904    $(LOCAL_DIR)/third_party/math/erfl.c \
905    $(LOCAL_DIR)/third_party/math/exp.c \
906    $(LOCAL_DIR)/third_party/math/exp2.c \
907    $(LOCAL_DIR)/third_party/math/exp2f.c \
908    $(LOCAL_DIR)/third_party/math/expf.c \
909    $(LOCAL_DIR)/third_party/math/expm1.c \
910    $(LOCAL_DIR)/third_party/math/expm1f.c \
911    $(LOCAL_DIR)/third_party/math/fma.c \
912    $(LOCAL_DIR)/third_party/math/fmaf.c \
913    $(LOCAL_DIR)/third_party/math/fmal.c \
914    $(LOCAL_DIR)/third_party/math/j0.c \
915    $(LOCAL_DIR)/third_party/math/j0f.c \
916    $(LOCAL_DIR)/third_party/math/j1.c \
917    $(LOCAL_DIR)/third_party/math/j1f.c \
918    $(LOCAL_DIR)/third_party/math/jn.c \
919    $(LOCAL_DIR)/third_party/math/jnf.c \
920    $(LOCAL_DIR)/third_party/math/lgamma_r.c \
921    $(LOCAL_DIR)/third_party/math/lgammaf_r.c \
922    $(LOCAL_DIR)/third_party/math/lgammal.c \
923    $(LOCAL_DIR)/third_party/math/log.c \
924    $(LOCAL_DIR)/third_party/math/log10.c \
925    $(LOCAL_DIR)/third_party/math/log10f.c \
926    $(LOCAL_DIR)/third_party/math/log1p.c \
927    $(LOCAL_DIR)/third_party/math/log1pf.c \
928    $(LOCAL_DIR)/third_party/math/log2.c \
929    $(LOCAL_DIR)/third_party/math/log2f.c \
930    $(LOCAL_DIR)/third_party/math/logf.c \
931    $(LOCAL_DIR)/third_party/math/pow.c \
932    $(LOCAL_DIR)/third_party/math/powf.c \
933    $(LOCAL_DIR)/third_party/math/powl.c \
934    $(LOCAL_DIR)/third_party/math/scalb.c \
935    $(LOCAL_DIR)/third_party/math/scalbf.c \
936    $(LOCAL_DIR)/third_party/math/sin.c \
937    $(LOCAL_DIR)/third_party/math/sincos.c \
938    $(LOCAL_DIR)/third_party/math/sincosf.c \
939    $(LOCAL_DIR)/third_party/math/sinf.c \
940    $(LOCAL_DIR)/third_party/math/tan.c \
941    $(LOCAL_DIR)/third_party/math/tanf.c \
942    $(LOCAL_DIR)/third_party/math/tgammal.c \
943    $(LOCAL_DIR)/third_party/smoothsort/qsort.c \
944    $(LOCAL_DIR)/third_party/tre/regcomp.c \
945    $(LOCAL_DIR)/third_party/tre/regerror.c \
946    $(LOCAL_DIR)/third_party/tre/regexec.c \
947    $(LOCAL_DIR)/third_party/tre/tre-mem.c \
948    $(LOCAL_DIR)/zircon/getentropy.c \
949    $(LOCAL_DIR)/zircon/internal.c \
950    $(LOCAL_DIR)/zircon/take_startup_handle.c \
951    $(LOCAL_DIR)/zircon/thrd_get_zx_handle.c \
952
953# These refer to access.
954#    $(LOCAL_DIR)/pthread/sem_open.c \
955#    $(LOCAL_DIR)/src/legacy/ftw.c \
956#    $(LOCAL_DIR)/src/misc/nftw.c \
957
958# These refer to __crypt_*, __des_setkey, and __do_des, which we do not have.
959#    $(LOCAL_DIR)/src/crypt/crypt.c \
960#    $(LOCAL_DIR)/src/crypt/crypt_r.c \
961#    $(LOCAL_DIR)/src/crypt/encrypt.c \
962
963ifeq ($(ARCH),arm64)
964LOCAL_SRCS += \
965    $(LOCAL_DIR)/src/fenv/aarch64/fenv.c \
966    $(LOCAL_DIR)/src/ldso/aarch64/tlsdesc.S \
967    $(LOCAL_DIR)/src/math/aarch64/fabs.S \
968    $(LOCAL_DIR)/src/math/aarch64/fabsf.S \
969    $(LOCAL_DIR)/src/math/aarch64/sqrt.S \
970    $(LOCAL_DIR)/src/math/aarch64/sqrtf.S \
971    $(LOCAL_DIR)/src/math/ceill.c \
972    $(LOCAL_DIR)/src/math/fabsl.c \
973    $(LOCAL_DIR)/src/math/floorl.c \
974    $(LOCAL_DIR)/src/math/fmodl.c \
975    $(LOCAL_DIR)/src/math/llrint.c \
976    $(LOCAL_DIR)/src/math/llrintf.c \
977    $(LOCAL_DIR)/src/math/llrintl.c \
978    $(LOCAL_DIR)/src/math/lrint.c \
979    $(LOCAL_DIR)/src/math/lrintf.c \
980    $(LOCAL_DIR)/src/math/lrintl.c \
981    $(LOCAL_DIR)/src/math/remainderl.c \
982    $(LOCAL_DIR)/src/math/rintl.c \
983    $(LOCAL_DIR)/src/math/sqrtl.c \
984    $(LOCAL_DIR)/src/math/truncl.c \
985    $(LOCAL_DIR)/src/setjmp/aarch64/longjmp.S \
986    $(LOCAL_DIR)/src/setjmp/aarch64/setjmp.S \
987    $(LOCAL_DIR)/third_party/math/acosl.c \
988    $(LOCAL_DIR)/third_party/math/asinl.c \
989    $(LOCAL_DIR)/third_party/math/atan2l.c \
990    $(LOCAL_DIR)/third_party/math/atanl.c \
991    $(LOCAL_DIR)/third_party/math/exp2l.c \
992    $(LOCAL_DIR)/third_party/math/expl.c \
993    $(LOCAL_DIR)/third_party/math/expm1l.c \
994    $(LOCAL_DIR)/third_party/math/log10l.c \
995    $(LOCAL_DIR)/third_party/math/log1pl.c \
996    $(LOCAL_DIR)/third_party/math/log2l.c \
997    $(LOCAL_DIR)/third_party/math/logl.c \
998
999else ifeq ($(ARCH),x86)
1000LOCAL_SRCS += \
1001    $(LOCAL_DIR)/src/fenv/x86_64/fenv.c \
1002    $(LOCAL_DIR)/src/ldso/x86_64/tlsdesc.S \
1003    $(LOCAL_DIR)/src/math/x86_64/__invtrigl.S \
1004    $(LOCAL_DIR)/src/math/x86_64/acosl.S \
1005    $(LOCAL_DIR)/src/math/x86_64/asinl.S \
1006    $(LOCAL_DIR)/src/math/x86_64/atan2l.S \
1007    $(LOCAL_DIR)/src/math/x86_64/atanl.S \
1008    $(LOCAL_DIR)/src/math/x86_64/ceill.S \
1009    $(LOCAL_DIR)/src/math/x86_64/exp2l.S \
1010    $(LOCAL_DIR)/src/math/x86_64/expl.S \
1011    $(LOCAL_DIR)/src/math/x86_64/expm1l.S \
1012    $(LOCAL_DIR)/src/math/x86_64/fabs.S \
1013    $(LOCAL_DIR)/src/math/x86_64/fabsf.S \
1014    $(LOCAL_DIR)/src/math/x86_64/fabsl.S \
1015    $(LOCAL_DIR)/src/math/x86_64/floorl.S \
1016    $(LOCAL_DIR)/src/math/x86_64/fmodl.S \
1017    $(LOCAL_DIR)/src/math/x86_64/llrint.S \
1018    $(LOCAL_DIR)/src/math/x86_64/llrintf.S \
1019    $(LOCAL_DIR)/src/math/x86_64/llrintl.S \
1020    $(LOCAL_DIR)/src/math/x86_64/log10l.S \
1021    $(LOCAL_DIR)/src/math/x86_64/log1pl.S \
1022    $(LOCAL_DIR)/src/math/x86_64/log2l.S \
1023    $(LOCAL_DIR)/src/math/x86_64/logl.S \
1024    $(LOCAL_DIR)/src/math/x86_64/lrint.S \
1025    $(LOCAL_DIR)/src/math/x86_64/lrintf.S \
1026    $(LOCAL_DIR)/src/math/x86_64/lrintl.S \
1027    $(LOCAL_DIR)/src/math/x86_64/remainderl.S \
1028    $(LOCAL_DIR)/src/math/x86_64/rintl.S \
1029    $(LOCAL_DIR)/src/math/x86_64/sqrt.S \
1030    $(LOCAL_DIR)/src/math/x86_64/sqrtf.S \
1031    $(LOCAL_DIR)/src/math/x86_64/sqrtl.S \
1032    $(LOCAL_DIR)/src/math/x86_64/truncl.S \
1033    $(LOCAL_DIR)/src/setjmp/x86_64/longjmp.S \
1034    $(LOCAL_DIR)/src/setjmp/x86_64/setjmp.S \
1035
1036else
1037error Unsupported architecture for musl build!
1038
1039endif
1040
1041# Include src/string sources
1042include $(LOCAL_DIR)/src/string/rules.mk
1043
1044# Include jemalloc for our malloc implementation
1045include $(LOCAL_DIR)/../jemalloc/rules.mk
1046
1047
1048# shared library (which is also the dynamic linker)
1049MODULE := system/ulib/c
1050MODULE_TYPE := userlib
1051MODULE_COMPILEFLAGS := $(LOCAL_COMPILEFLAGS)
1052MODULE_CFLAGS := $(LOCAL_CFLAGS)
1053MODULE_SRCS := $(LOCAL_SRCS)
1054
1055MODULE_LIBS := system/ulib/zircon
1056MODULE_STATIC_LIBS := \
1057    system/ulib/ldmsg \
1058    system/ulib/runtime \
1059
1060# At link time and in DT_SONAME, musl is known as libc.so.  But the
1061# (only) place it needs to be installed at runtime is where the
1062# PT_INTERP strings embedded in executables point, which is ld.so.1.
1063MODULE_EXPORT := so
1064MODULE_SO_NAME := c
1065MODULE_SO_INSTALL_NAME := lib/$(USER_SHARED_INTERP)
1066
1067MODULE_SRCS += \
1068    $(LOCAL_DIR)/stubs/iostubs.c \
1069    $(LOCAL_DIR)/stubs/socketstubs.c \
1070    $(LOCAL_DIR)/arch/$(MUSL_ARCH)/dl-entry.S \
1071    $(LOCAL_DIR)/ldso/dlstart.c \
1072    $(LOCAL_DIR)/ldso/dynlink.c \
1073    $(LOCAL_DIR)/ldso/dynlink-sancov.S \
1074
1075MODULE_SRCS += \
1076    $(LOCAL_DIR)/sanitizers/__asan_early_init.c \
1077    $(LOCAL_DIR)/sanitizers/asan-stubs.c \
1078    $(LOCAL_DIR)/sanitizers/hooks.c \
1079    $(LOCAL_DIR)/sanitizers/log.c \
1080
1081# There is no '#if __has_feature(coverage)', so this file has to be
1082# excluded from the build entirely when not in use.
1083ifeq ($(call TOBOOL,$(USE_SANCOV)),true)
1084MODULE_SRCS += $(LOCAL_DIR)/sanitizers/sancov-stubs.S
1085endif
1086
1087include make/module.mk
1088
1089
1090# build a fake library to build crt1.o separately
1091
1092MODULE := system/ulib/c.crt
1093MODULE_TYPE := userlib
1094MODULE_COMPILEFLAGS := $(LOCAL_COMPILEFLAGS)
1095MODULE_CFLAGS := $(LOCAL_CFLAGS)
1096
1097MODULE_SRCS := $(LOCAL_DIR)/arch/$(MUSL_ARCH)/Scrt1.S
1098
1099# where our object files will end up
1100LOCAL_OUT := $(BUILDDIR)/system/ulib/c.crt/$(LOCAL_DIR)
1101LOCAL_SCRT1_OBJ := $(LOCAL_OUT)/arch/$(MUSL_ARCH)/Scrt1.S.o
1102
1103# install it globally
1104$(call copy-dst-src,$(USER_SCRT1_OBJ),$(LOCAL_SCRT1_OBJ))
1105
1106include make/module.mk
1107