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