Android.mk revision 642331b5dd5647e7d196ac4f44406fd435478a56
11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_PATH:= $(call my-dir)
21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(LOCAL_PATH)/arch-$(TARGET_ARCH)/syscalls.mk
4ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
5ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define the common source files for all the libc instances
6ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# =========================================================
71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files := \
81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	$(syscall_src) \
91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/abort.c \
101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/alarm.c \
111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/exec.c \
121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/fnmatch.c \
131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/getopt_long.c \
141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/popen.c \
151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/syslog.c \
161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/system.c \
171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unistd/time.c \
181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/asprintf.c \
191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/clrerr.c \
201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fclose.c \
211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fdopen.c \
221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/feof.c \
231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/ferror.c \
241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fflush.c \
251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fgetc.c \
261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fgetln.c \
271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fgetpos.c \
281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fgets.c \
291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fileno.c \
301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/findfp.c \
311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/flags.c \
321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fopen.c \
331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fprintf.c \
341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fpurge.c \
351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fputc.c \
361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fputs.c \
371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fread.c \
381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/freopen.c \
391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fscanf.c \
401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fseek.c \
411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fsetpos.c \
421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/ftell.c \
431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/funopen.c \
441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fvwrite.c \
451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fwalk.c \
461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/fwrite.c \
471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/getc.c \
481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/getchar.c \
491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/gets.c \
501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/makebuf.c \
511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/mktemp.c \
521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/printf.c \
531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/putc.c \
541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/putchar.c \
551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/puts.c \
561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/putw.c \
571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/refill.c \
581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/remove.c \
591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/rewind.c \
601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/rget.c \
611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/scanf.c \
621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/setbuf.c \
631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/setbuffer.c \
641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/setvbuf.c \
651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/snprintf.c\
661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/sprintf.c \
671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/sscanf.c \
681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/stdio.c \
691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/tempnam.c \
701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/tmpnam.c \
711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/ungetc.c \
721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vasprintf.c \
731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vfprintf.c \
741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vfscanf.c \
751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vprintf.c \
761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vsnprintf.c \
771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vsprintf.c \
781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vscanf.c \
791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/vsscanf.c \
801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/wbuf.c \
811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdio/wsetup.c \
821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/atexit.c \
831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/ctype_.c \
841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/exit.c \
851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/getenv.c \
861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/putenv.c \
871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/qsort.c \
881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/setenv.c \
891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/strtod.c \
901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/strtoimax.c \
911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/strtol.c \
921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/strtoll.c \
931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/strtoul.c \
941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/strtoull.c \
951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/strtoumax.c \
961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/tolower_.c \
971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	stdlib/toupper_.c \
981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/index.c \
991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strcasecmp.c \
1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strcat.c \
1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strchr.c \
1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strcspn.c \
1031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strdup.c \
1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strlcat.c \
1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strlcpy.c \
1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strncat.c \
1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strncpy.c \
1081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strpbrk.c \
1091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strrchr.c \
1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strsep.c \
1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strspn.c \
1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strstr.c \
1131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	string/strtok.c \
1143527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcswidth.c \
11570465614e14a87f547cdd1b82b0b270b87d215c1Kristian Monsen	wchar/wcsxfrm.c \
1161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/asctime.c \
1171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/difftime.c \
1181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/localtime.c \
1191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/strftime.c \
1201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/strptime.c \
1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/arc4random.c \
122a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/atoi.c \
123a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/atol.c \
124a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/atoll.c \
125a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/bindresvport.c \
126a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/bionic_clone.c \
127fc10b24accd082fb33c8f92ff8b92481c22fe3dcColin Cross	bionic/clearenv.c \
128a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/cpuacct.c \
129a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/daemon.c \
13064ceac3f493e3063a289aec4a12c74787be974e4Colin Cross	bionic/err.c \
131a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ether_aton.c \
132a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ether_ntoa.c \
133a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/fcntl.c \
134fc10b24accd082fb33c8f92ff8b92481c22fe3dcColin Cross	bionic/fdprintf.c \
135a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/flockfile.c \
1361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/fork.c \
137a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/fstatfs.c \
138a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ftime.c \
139a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ftok.c \
14064ceac3f493e3063a289aec4a12c74787be974e4Colin Cross	bionic/fts.c \
141a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getdtablesize.c \
142a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/gethostname.c \
143a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpgrp.c \
144a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpriority.c \
145a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpt.c \
1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/if_indextoname.c \
147a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/if_nametoindex.c \
148a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/initgroups.c \
1491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ioctl.c \
150a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/isatty.c \
151a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/issetugid.c \
1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ldexp.c \
1531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/logd_write.c \
154a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/lseek64.c \
1551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/md5.c \
156a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memchr.c \
157a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memmem.c \
158a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memrchr.c \
159a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memswap.c \
160a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/mmap.c \
161a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/openat.c \
162a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/open.c \
163a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pathconf.c \
164a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/perror.c \
165a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pread.c \
166a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pselect.c \
167a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ptsname.c \
168a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ptsname_r.c \
1691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/pututline.c \
170a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pwrite.c \
171a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/reboot.c \
172a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/recv.c \
17372e6fd42421dca80fb2776a9185c186d4a04e5f7David 'Digit' Turner	bionic/sched_cpualloc.c \
17472e6fd42421dca80fb2776a9185c186d4a04e5f7David 'Digit' Turner	bionic/sched_cpucount.c \
175a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sched_getaffinity.c \
176a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sched_getcpu.c \
1771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/semaphore.c \
178a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/send.c \
179a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setegid.c \
180a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/seteuid.c \
181a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setpgrp.c \
182a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setresuid.c \
183a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setreuid.c \
184a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setuid.c \
185a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigblock.c \
186a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/siginterrupt.c \
187a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/siglist.c \
188a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/signal.c \
189a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/signame.c \
190a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigsetmask.c \
191a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigsuspend.c \
192a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sleep.c \
193a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/statfs.c \
194a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strndup.c \
195a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strnlen.c \
196a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strntoimax.c \
197a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strntoumax.c \
198a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strtotimeval.c \
1991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/system_properties.c \
200a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/tcgetpgrp.c \
201a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/tcsetpgrp.c \
2021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/thread_atexit.c \
203a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/time64.c \
204a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/umount.c \
205a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/unlockpt.c \
206a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/usleep.c \
2071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/utmp.c \
208a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/wait.c \
209a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/wcscoll.c \
2101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/gethnamaddr.c \
2111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/inet/nsap_addr.c \
2121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__dn_comp.c \
2131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__res_close.c \
2141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__res_send.c \
2151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/herror.c \
2161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_comp.c \
2171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_data.c \
2181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_debug.c \
2191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_init.c \
2201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_mkquery.c \
2211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_query.c \
2221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_send.c \
22310093276e98d26428875480c502a278dffe550c7Shin-ichiro KAWASAKI	netbsd/resolv/res_state.c \
2241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_cache.c \
2251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/nsdispatch.c \
2261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getaddrinfo.c \
2271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getnameinfo.c \
2281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservbyname.c \
2291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservent.c \
2301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/base64.c \
2311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservbyport.c \
2321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_name.c \
2331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_parse.c \
2341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_ttl.c \
2351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_netint.c \
2361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_print.c \
2374fa7b105644222d9b35347c9d226ca8e011072ebColin Cross	netbsd/nameser/ns_samedomain.c \
2381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
23929c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hugheslibc_bionic_src_files := \
240063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/assert.cpp \
241428f5567be25b8090e3dd72e2d3d337c305b514eElliott Hughes    bionic/brk.cpp \
2421e980b6bc8315d00a07312b25486531247abd98cElliott Hughes    bionic/debug_format.cpp \
243c30396f5f225e0b5a83a35432e2d82a7063cfdb9David 'Digit' Turner    bionic/dirent.cpp \
24491a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes    bionic/__errno.c \
245063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/eventfd.cpp \
246063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__fgets_chk.cpp \
2472c5153b043b44e9935a334ae9b2d5a4bc5258b40Nick Kralevich    bionic/getauxval.cpp \
248063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/getcwd.cpp \
24942b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes    bionic/libc_init_common.cpp \
25058b575485c446f9d76ee00f67516ed42cf017769Elliott Hughes    bionic/libgen.cpp \
251063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memcpy_chk.cpp \
252063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memmove_chk.cpp \
253063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memset_chk.cpp \
2543e898476c7230b60a0f76968e64ff25f475b48c0Elliott Hughes    bionic/pthread_attr.cpp \
2559d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_detach.cpp \
2569d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_equal.cpp \
2579d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_getcpuclockid.cpp \
2589d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_getschedparam.cpp \
2599d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_internals.cpp \
2609d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_join.cpp \
2619d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_kill.cpp \
2629d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_self.cpp \
2633e898476c7230b60a0f76968e64ff25f475b48c0Elliott Hughes    bionic/pthread_setname_np.cpp \
2649d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_setschedparam.cpp \
265c5d028fc913de84a781bd61084bf7ae2182fd48eElliott Hughes    bionic/pthread_sigmask.cpp \
266d8a5a6f513c6fa99229e9c82c5c308c7cd6b3d54Chris Dearman    bionic/raise.cpp \
267428f5567be25b8090e3dd72e2d3d337c305b514eElliott Hughes    bionic/sbrk.cpp \
268701bec2af33feaa9dddf12ccf8e4c714441b7f2eElliott Hughes    bionic/scandir.cpp \
2694a9e837840fda3aaea48aeba85c7c7a8782d2586Elliott Hughes    bionic/__set_errno.cpp \
270063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/setlocale.cpp \
271a4b2dc016fa62bd172a73c3f8971c805700ffb0fRom Lemarchand    bionic/signalfd.cpp \
272c5d028fc913de84a781bd61084bf7ae2182fd48eElliott Hughes    bionic/sigwait.cpp \
273063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strcat_chk.cpp \
274063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strcpy_chk.cpp \
275063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strerror.cpp \
276063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strerror_r.cpp \
277063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlcat_chk.cpp \
278063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlcpy_chk.cpp \
279063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlen_chk.cpp \
280063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strncat_chk.cpp \
281063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strncpy_chk.cpp \
282063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strsignal.cpp \
283063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/stubs.cpp \
28491a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes    bionic/sysconf.cpp \
285063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/tdestroy.cpp \
286063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/tmpfile.cpp \
287063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__umask_chk.cpp \
288063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__vsnprintf_chk.cpp \
289063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__vsprintf_chk.cpp \
290063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/wchar.cpp \
29129c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
292f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hugheslibc_upstream_freebsd_src_files := \
293f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes    upstream-freebsd/lib/libc/stdlib/realpath.c \
294eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcpcpy.c \
295eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcpncpy.c \
296eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcscasecmp.c \
297eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcscat.c \
298eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcschr.c \
299eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcscmp.c \
300eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcscpy.c \
301eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcscspn.c \
302eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsdup.c \
303eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcslcat.c \
304eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcslcpy.c \
305eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcslen.c \
306eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsncasecmp.c \
307eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsncat.c \
308eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsncmp.c \
309eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsncpy.c \
310eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsnlen.c \
311eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcspbrk.c \
312eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsrchr.c \
313eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsspn.c \
314eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcsstr.c \
315eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wcstok.c \
316eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wmemchr.c \
317eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wmemcmp.c \
318eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wmemcpy.c \
319eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wmemmove.c \
320eb93ebffba21e2c9b8a12bb86db60d38c7750270Elliott Hughes    upstream-freebsd/lib/libc/string/wmemset.c \
321f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes
322f8b3a920a895a53b207017249080087d562bd0d2Elliott Hugheslibc_upstream_netbsd_src_files := \
323e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/common/lib/libc/hash/sha1/sha1.c \
324e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/common/lib/libc/inet/inet_addr.c \
325e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/compat-43/creat.c \
326e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/ftw.c \
327e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/nftw.c \
328e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/nice.c \
329e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/psignal.c \
330ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/gen/setjmperr.c \
331e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/utime.c \
332e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_ntoa.c \
333e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_ntop.c \
334e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_pton.c \
335ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/isc/ev_streams.c \
336ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/isc/ev_timers.c \
337e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regcomp.c \
338e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regerror.c \
339e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regexec.c \
340e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regfree.c \
341e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdio/getdelim.c \
342e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdio/getline.c \
343ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/bsearch.c \
344ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/div.c \
345e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/drand48.c \
346e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/erand48.c \
347e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/jrand48.c \
348ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/ldiv.c \
349ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/lldiv.c \
350e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/lrand48.c \
351e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/mrand48.c \
352e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/nrand48.c \
353e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/_rand48.c \
354e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/seed48.c \
355e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/srand48.c \
356e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tdelete.c \
357e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tfind.c \
358e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tsearch.c \
359c51cd764a2d0897234762abd4dbd21420cb9f17dElliott Hughes    upstream-netbsd/libc/string/memccpy.c \
360e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/string/strcasestr.c \
3612b473070126345e323d0694b87f88264cc9a77ccElliott Hughes    upstream-netbsd/libc/string/strcoll.c \
362e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/string/strxfrm.c \
363ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/unistd/killpg.c \
364f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
365ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Architecture specific source files go here
366ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# =========================================================
3671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),arm)
3681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
369017f438534068f48277fe6f7f7234e6f24ae5065Ben Cheng	arch-arm/bionic/abort_arm.S \
3700fec6b9d88ee5a9e359b2208038f9806c0804538David 'Digit' Turner	arch-arm/bionic/atomics_arm.c \
3711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/clone.S \
3726a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner	arch-arm/bionic/eabi.c \
373a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/_exit_with_stack_teardown.S \
3741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/ffs.S \
3750fec6b9d88ee5a9e359b2208038f9806c0804538David 'Digit' Turner	arch-arm/bionic/futex_arm.S \
376a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/__get_sp.S \
3771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/kill.S \
3782a7ad97539313c82e13d36c9c75cefb2982a87d8David 'Digit' Turner	arch-arm/bionic/libgcc_compat.c \
3791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memcmp16.S \
380a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/memcmp.S \
3811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memcpy.S \
3821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memset.S \
383a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/_setjmp.S \
3841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/setjmp.S \
3851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/sigsetjmp.S \
386f50e9be5930a08fa825b0c23353c802e11369b14Jim Huang	arch-arm/bionic/strcmp.S \
387a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/strcpy.S \
388a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/strlen.c.arm \
3891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/syscall.S \
390a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/tgkill.S \
391a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/tkill.S \
392a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memmove.c.arm \
393a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/socketcalls.c \
3948ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	string/bcopy.c \
3958ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	string/strncmp.c \
3961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
3971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# These files need to be arm so that gdbserver
3981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# can set breakpoints in them without messing
3991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# up any thumb code.
4001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
4014f086aeb4aa06e13079b7fec71a8178ceeacf318Matt Fischer	bionic/pthread-atfork.c.arm \
4028a1d2cf1422e35257c160ac5bb12dd3ee481c433David 'Digit' Turner	bionic/pthread-rwlocks.c.arm \
4031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/pthread-timers.c.arm \
4041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ptrace.c.arm
405ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
4066a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turnerlibc_static_common_src_files += \
40744b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread.c.arm \
4084b4a8824289c48c823cd38bc63289d121aae3d67Elliott Hughes    bionic/pthread_create.cpp.arm \
40944b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread_key.cpp.arm \
4106a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner
411ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# these are used by the static and dynamic versions of the libc
412ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# respectively
413ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_static_src_files := \
414ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	arch-arm/bionic/exidx_static.c
415ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
416ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_dynamic_src_files := \
417ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	arch-arm/bionic/exidx_dynamic.c
418a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # arm
4191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
4201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),x86)
4211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
422d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/clone.S \
423d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/_exit_with_stack_teardown.S \
424d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/futex_x86.S \
425d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/__get_sp.S \
426d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/__get_tls.c \
427d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/_setjmp.S \
428d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/setjmp.S \
429d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/__set_tls.c \
430d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/sigsetjmp.S \
431d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/syscall.S \
432d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/vfork.S \
433d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/bcopy_wrapper.S \
434d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/bzero_wrapper.S \
435d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/ffs.S \
436d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memcmp_wrapper.S \
437d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memcpy_wrapper.S \
438d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memmove_wrapper.S \
439d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memset_wrapper.S \
440d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/strcmp_wrapper.S \
441d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/strlen_wrapper.S \
442d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/strncmp_wrapper.S \
443d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/pthread-atfork.c \
444d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/pthread-rwlocks.c \
445d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/pthread-timers.c \
446d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/ptrace.c \
447d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    string/strcpy.c \
4481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
4496a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turnerlibc_static_common_src_files += \
45044b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread.c \
4514b4a8824289c48c823cd38bc63289d121aae3d67Elliott Hughes    bionic/pthread_create.cpp \
45244b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread_key.cpp \
4536a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner
454ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_static_src_files := \
455405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham	bionic/dl_iterate_phdr_static.c
456ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
457ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_dynamic_src_files :=
458a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # x86
45910093276e98d26428875480c502a278dffe550c7Shin-ichiro KAWASAKI
460a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
461a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
462a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__get_sp.S \
463a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__get_tls.c \
464a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__set_tls.c \
465a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/_exit_with_stack_teardown.S \
466a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/_setjmp.S \
467a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/futex_mips.S \
468a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/bzero.S \
469a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/cacheflush.c \
470a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/clone.S \
471a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/ffs.S \
472a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/memcmp16.S \
473a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/memmove.c \
474a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/pipe.S \
475a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/setjmp.S \
476a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/sigsetjmp.S \
477a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/vfork.S
478a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
479a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
480a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/memset.S \
481a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/memcpy.S \
482a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/mips_strlen.c
483a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
484a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
485857fed50cbf2d1a701a5a1a29e124f7e9fb945d5Elliott Hughes	bionic/memcmp.c \
486a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/bcopy.c \
487a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strcmp.c \
488a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strcpy.c \
489a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strncmp.c
490a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
491a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
492a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-atfork.c \
493a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-rwlocks.c \
494a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-timers.c \
495a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/ptrace.c
496a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
497a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_static_common_src_files += \
498ba342c11adbe92aa918d50b0d2a36453510ebf02Elliott Hughes    bionic/pthread.c \
4994b4a8824289c48c823cd38bc63289d121aae3d67Elliott Hughes    bionic/pthread_create.cpp \
50044b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread_key.cpp \
501a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
502a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_arch_static_src_files := \
503a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/dl_iterate_phdr_static.c
504a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
505a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_arch_dynamic_src_files :=
506a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # mips
5071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
508ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define some common cflags
509ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
5101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_cflags := \
511470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DWITH_ERRLIST \
512470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DANDROID_CHANGES \
513470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -D_LIBC=1 \
514470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DFLOATING_POINT \
515470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DINET6 \
516470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -I$(LOCAL_PATH)/private \
517470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DPOSIX_MISTAKE \
518470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DLOG_ON_HEAP_ERROR \
519c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes    -Wall -Wextra
5201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
521d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# these macro definitions are required to implement the
522d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# 'timezone' and 'daylight' global variables, as well as
523d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# properly update the 'tm_gmtoff' field in 'struct tm'.
524d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner#
525d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turnerlibc_common_cflags += \
526d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner    -DTM_GMTOFF=tm_gmtoff \
527d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner    -DUSG_COMPAT=1
528d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner
529d2c9dcc9265e66f6432ec39dcc7378b944449e60Dave Bortifeq ($(strip $(DEBUG_BIONIC_LIBC)),true)
5301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project  libc_common_cflags += -DDEBUG
5311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectendif
5321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
5332fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren# To customize dlmalloc's alignment, set BOARD_MALLOC_ALIGNMENT in
5342fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren# the appropriate BoardConfig.mk file.
5352fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren#
5362fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Renifneq ($(BOARD_MALLOC_ALIGNMENT),)
5372fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren  libc_common_cflags += -DMALLOC_ALIGNMENT=$(BOARD_MALLOC_ALIGNMENT)
5382fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Renendif
5392fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren
5401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),arm)
541a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -DSOFTFLOAT
5421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project  libc_common_cflags += -fstrict-aliasing
543ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin  libc_crt_target_cflags := -mthumb-interwork
5444a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  #
54591a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes  # Define HAVE_32_BYTE_CACHE_LINES to indicate to the C library
54691a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes  # that it should use the 32-byte version of memcpy, not
547fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  # the 64-byte version.
548fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  #
549fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  ifeq ($(ARCH_ARM_HAVE_32_BYTE_CACHE_LINES),true)
550fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding    libc_common_cflags += -DHAVE_32_BYTE_CACHE_LINE
551fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  endif
55208e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe  ifeq ($(ARCH_ARM_USE_NON_NEON_MEMCPY),true)
55308e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe    libc_common_cflags += -DARCH_ARM_USE_NON_NEON_MEMCPY
55408e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe  endif
555ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinendif # !arm
5561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
557a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),x86)
558a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -DSOFTFLOAT
559a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_crt_target_cflags :=
560a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifeq ($(ARCH_X86_HAVE_SSE2),true)
561a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham      libc_crt_target_cflags += -DUSE_SSE2=1
562a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
563a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifeq ($(ARCH_X86_HAVE_SSSE3),true)
564a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham      libc_crt_target_cflags += -DUSE_SSSE3=1
565a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
566a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # x86
567a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
568a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
569a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifneq ($(ARCH_MIPS_HAS_FPU),true)
570a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_common_cflags += -DSOFTFLOAT
571a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
572a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -fstrict-aliasing
573a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_crt_target_cflags := $(TARGET_GLOBAL_CFLAGS)
574a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # mips
575a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
576fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden# Define ANDROID_SMP appropriately.
577fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenifeq ($(TARGET_CPU_SMP),true)
578fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden    libc_common_cflags += -DANDROID_SMP=1
579fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenelse
580fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden    libc_common_cflags += -DANDROID_SMP=0
581fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenendif
582fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden
58376be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes# crtbrand.c needs <stdint.h> and a #define for the platform SDK version.
58476be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hugheslibc_crt_target_cflags += \
58576be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/include  \
58676be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
587fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden
588ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define some common includes
589ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
5901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_c_includes := \
5911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project		$(LOCAL_PATH)/stdlib  \
5921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project		$(LOCAL_PATH)/string  \
59376656afc6dd069fcfda5768e6e54bb85e4e99942Nick Kralevich		$(LOCAL_PATH)/stdio   \
59476656afc6dd069fcfda5768e6e54bb85e4e99942Nick Kralevich		external/safe-iop/include
5951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
5969d40326830c2bd407427889c554adeb915ee6b4aNick Kralevich# Needed to access private/__dso_handle.h from
5973b43f87d2949a340e2c19cb735af7727157d8274David 'Digit' Turner# crtbegin_xxx.S and crtend_xxx.S
59876be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hugheslibc_crt_target_cflags += \
59976be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/private \
60076be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include
6011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
602ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define the libc run-time (crt) support object files that must be built,
603ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# which are needed to build all other objects (shared/static libs and
604ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# executables)
605ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ==========================================================================
606a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham# ARM, MIPS, and x86 all need crtbegin_so/crtend_so.
6076a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
6086a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# For x86, the .init section must point to a function that calls all
6096a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# entries in the .ctors section. (on ARM this is done through the
6106a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# .init_array section instead).
6116a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
612a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham# For all the platforms, the .fini_array section must point to a function
6136a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# that will call __cxa_finalize(&__dso_handle) in order to ensure that
6146a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# static C++ destructors are properly called on dlclose().
6156a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
616a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),arm)
61712949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes    libc_crtbegin_extension := c
618a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags :=
619a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
620a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
62112949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes    libc_crtbegin_extension := S
622a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags := -fPIC
623a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
6242d2dbd30243f4ffd1e0a10ade989e25d29f7f45cDavid 'Digit' Turnerifeq ($(TARGET_ARCH),x86)
62520c4a3a8eee5ca8c87ae377732f541baffce1fdaPavel Chupin    libc_crtbegin_extension := c
626a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags := -fPIC
627a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
62812949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughesifeq ($(libc_crtbegin_extension),)
629a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    $(error $(TARGET_ARCH) not supported)
6302d2dbd30243f4ffd1e0a10ade989e25d29f7f45cDavid 'Digit' Turnerendif
631a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_crt_target_so_cflags += $(libc_crt_target_cflags)
63212949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hugheslibc_crt_target_crtbegin_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin.$(libc_crtbegin_extension)
63312949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hugheslibc_crt_target_crtbegin_so_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.$(libc_crtbegin_extension)
634ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
635ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope# See the comment in crtbrand.c for the reason why we need to generate
636ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope# crtbrand.s before generating crtbrand.o.
637ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
638ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(LOCAL_PATH)/bionic/crtbrand.c
639ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
640cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) -S \
641cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.s=%.d) -o $@ $<
642cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) sed -i -e '/\.note\.ABI-tag/s/progbits/note/' $@
643cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(call transform-d-to-p-args,$(@:%.s=%.d),$(@:%.s=%.P))
644cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.s=%.P)
645ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
646ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
647ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
648ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
649ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
650cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) -o $@ -c $<
651ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
652ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
653fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
65412949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_so_file)
6551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
656cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \
657cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
658cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
659cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
6601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
6611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
662fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
663ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
664ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	@mkdir -p $(dir $@)
665cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \
666cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
667cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
668cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
669ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinALL_GENERATED_SOURCES += $(GEN)
670fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei Liao
671cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang# The following two are installed to device
672fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoGEN := $(TARGET_OUT_SHARED_LIBRARIES)/crtbegin_so.o
673cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
674cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) mkdir -p $(dir $@) && cp -f $< $@
675fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoALL_GENERATED_SOURCES += $(GEN)
676fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei Liao
677fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoGEN := $(TARGET_OUT_SHARED_LIBRARIES)/crtend_so.o
678cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
679cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) mkdir -p $(dir $@) && cp -f $< $@
680fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoALL_GENERATED_SOURCES += $(GEN)
6811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
6821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
683ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o
68412949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_file)
685ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	@mkdir -p $(dir $@)
686cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
687cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
688cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
689cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
690ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinALL_GENERATED_SOURCES += $(GEN)
6911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
692ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o
693ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
694ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
695cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_LD) -r -o $@ $^
696ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
697ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
698ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o
69912949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_file)
7001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
701cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
702cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
703cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
704cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
7051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
7061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
707ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic.o
708ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
709ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
710cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_LD) -r -o $@ $^
711ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
712ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
713ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# We rename crtend.o to crtend_android.o to avoid a
714ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# name clash between gcc and bionic.
715fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o
716ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend.S
7171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
718cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
719cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
720cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
721cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
7221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
7231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
7241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
725ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# To enable malloc leak check for statically linked programs, add
726ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# "WITH_MALLOC_CHECK_LIBC_A := true" to buildspec.mk
727ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinWITH_MALLOC_CHECK_LIBC_A := $(strip $(WITH_MALLOC_CHECK_LIBC_A))
7281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
729ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
7306334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# libbionic_ssp.a - stack protector code
7316334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# ========================================================
7326334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich#
7336334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# The stack protector code needs to be compiled
7346334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# with -fno-stack-protector, since it modifies the
7356334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# stack canary.
7366334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7376334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevichinclude $(CLEAR_VARS)
7386334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
739642331b5dd5647e7d196ac4f44406fd435478a56Elliott HughesLOCAL_SRC_FILES := bionic/__stack_chk_fail.cpp
740dc5ec07158079b39f758ed41eca5b937e52c3729Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -fno-stack-protector -Werror
7416334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_C_INCLUDES := $(libc_common_c_includes)
7426334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_MODULE := libbionic_ssp
743ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
7446334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_SYSTEM_SHARED_LIBRARIES :=
7456334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7466334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevichinclude $(BUILD_STATIC_LIBRARY)
7476334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7486334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7496334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# ========================================================
750f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes# libc_freebsd.a - upstream FreeBSD C library code
751f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes# ========================================================
752f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes#
753f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes# These files are built with the freebsd-compat.h header file
754f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes# automatically included.
755f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes
756f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughesinclude $(CLEAR_VARS)
757f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes
758f0777843c03deb26b1f78c8edd17c557041696e9Elliott HughesLOCAL_SRC_FILES := $(libc_upstream_freebsd_src_files)
759f0777843c03deb26b1f78c8edd17c557041696e9Elliott HughesLOCAL_CFLAGS := \
760f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes    $(libc_common_cflags) \
761f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes    -I$(LOCAL_PATH)/upstream-freebsd \
762f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes    -I$(LOCAL_PATH)/upstream-freebsd/libc/include \
763f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes    -include upstream-freebsd/freebsd-compat.h
764f0777843c03deb26b1f78c8edd17c557041696e9Elliott HughesLOCAL_C_INCLUDES := $(libc_common_c_includes)
765f0777843c03deb26b1f78c8edd17c557041696e9Elliott HughesLOCAL_MODULE := libc_freebsd
766f0777843c03deb26b1f78c8edd17c557041696e9Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
767f0777843c03deb26b1f78c8edd17c557041696e9Elliott HughesLOCAL_SYSTEM_SHARED_LIBRARIES :=
768f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes
769f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughesinclude $(BUILD_STATIC_LIBRARY)
770f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes
771f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes
772f0777843c03deb26b1f78c8edd17c557041696e9Elliott Hughes# ========================================================
773f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# libc_netbsd.a - upstream NetBSD C library code
774f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# ========================================================
775f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes#
776f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# These files are built with the netbsd-compat.h header file
777f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# automatically included.
778f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
779f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughesinclude $(CLEAR_VARS)
780f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
781f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files)
782f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_CFLAGS := \
783f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes    $(libc_common_cflags) \
7843d2d448af1b16923f5a329b49bb8e658dbad8a06Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd \
785ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd/libc/include \
786f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes    -include upstream-netbsd/netbsd-compat.h
787f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_C_INCLUDES := $(libc_common_c_includes)
788f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_MODULE := libc_netbsd
789ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
790f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_SYSTEM_SHARED_LIBRARIES :=
791f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
792f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughesinclude $(BUILD_STATIC_LIBRARY)
793f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
794f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
795f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# ========================================================
79629c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# libc_bionic.a - home-grown C library code
79729c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# ========================================================
79829c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes#
79929c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughesinclude $(CLEAR_VARS)
80029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
80129c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_SRC_FILES := $(libc_bionic_src_files)
80229c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -Werror
80329c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_C_INCLUDES := $(libc_common_c_includes)
80429c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_MODULE := libc_bionic
80529c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
80629c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_SYSTEM_SHARED_LIBRARIES :=
80729c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
80829c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughesinclude $(BUILD_STATIC_LIBRARY)
80929c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
81029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
81129c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# ========================================================
812ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# libc_common.a
813ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
814f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
815ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavininclude $(CLEAR_VARS)
8161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
817ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_SRC_FILES := $(libc_common_src_files)
818ab44f52202878cdf2bf22457aeae33ec24089556Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) \
819ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -std=gnu99 \
820ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd/libc/include # for netbsd private headers
821ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_C_INCLUDES := $(libc_common_c_includes)
8221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_MODULE := libc_common
823ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
824f0777843c03deb26b1f78c8edd17c557041696e9Elliott HughesLOCAL_WHOLE_STATIC_LIBRARIES := libbionic_ssp libc_bionic libc_freebsd libc_netbsd
8251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
8261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_STATIC_LIBRARY)
8281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
830ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
83149e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# libc_nomalloc.a
83249e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# ========================================================
83349e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin#
83449e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# This is a version of the static C library that does not
83591a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# include malloc. It's useful in situations when the user wants
83691a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# to provide their own malloc implementation, or wants to
83791a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# explicitly disallow the use of the use of malloc,
83891a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# such as in the dynamic loader.
83949e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
84049e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavininclude $(CLEAR_VARS)
84149e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
84249e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_SRC_FILES := \
84349e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin	$(libc_arch_static_src_files) \
8446a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
84542b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes	bionic/libc_init_static.cpp
84649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
84749e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_C_INCLUDES := $(libc_common_c_includes)
8486a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' TurnerLOCAL_CFLAGS := $(libc_common_cflags) \
84929c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -DLIBC_STATIC \
85029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -std=gnu99
85149e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
85249e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_MODULE := libc_nomalloc
853ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
85449e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
85549e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_SYSTEM_SHARED_LIBRARIES :=
85649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
85749e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavininclude $(BUILD_STATIC_LIBRARY)
85849e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
85949e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
86049e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# ========================================================
8611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# libc.a
8621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
8631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
8641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
866ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_arch_static_src_files) \
8676a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
8681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dlmalloc.c \
869c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_common.cpp \
87042b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes	bionic/libc_init_static.cpp
8711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
872b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_CFLAGS := $(libc_common_cflags) \
87329c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -DLIBC_STATIC \
87429c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -std=gnu99
8751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
876ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_MODULE := libc
877ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
8781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
8791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
8801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_STATIC_LIBRARY)
8821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
884ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
8851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# libc.so
8861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
8871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
8881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8897c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# pthread deadlock prediction:
8907c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# set -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=1 to enable support for
8917c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# pthread deadlock prediction.
8927c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# Since this code is experimental it is disabled by default.
8937c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# see libc/bionic/pthread_debug.c for details
8947c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian
89529c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -std=gnu99 -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=0
8961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
8971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
899ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_arch_dynamic_src_files) \
9006a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
9011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dlmalloc.c \
902c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_common.cpp \
9031e980b6bc8315d00a07312b25486531247abd98cElliott Hughes	bionic/pthread_debug.cpp \
90442b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes	bionic/libc_init_dynamic.cpp
9051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
906f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvelifeq ($(TARGET_ARCH),arm)
907f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_NO_CRT := true
908f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_CFLAGS += -DCRT_LEGACY_WORKAROUND
909f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel
910f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_SRC_FILES := \
911f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/crtbegin_so.c \
912f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/atexit_legacy.c \
913f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		$(LOCAL_SRC_FILES) \
914f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/crtend_so.S
915f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvelendif
916f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel
9171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_MODULE:= libc
918ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
919914d8d4cff10f023ccd382fb43b2c7833dd34f72Elliott HughesLOCAL_REQUIRED_MODULES := tzdata
9201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# WARNING: The only library libc.so should depend on is libdl.so!  If you add other libraries,
9221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# make sure to add -Wl,--exclude-libs=libgcc.a to the LOCAL_LDFLAGS for those libraries.  This
9231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ensures that symbols that are pulled into those new libraries from libgcc.a are not declared
9241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# external; if that were the case, then libc would not pull those symbols from libgcc.a as it
9251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# should, instead relying on the external symbols from the dependent libraries.  That would
9261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# create an "cloaked" dependency on libgcc.a in libc though the libraries, which is not what
9271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# you wanted!
9281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SHARED_LIBRARIES := libdl
9301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
9311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
9321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
9341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
936b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# For all builds, except for the -user build we will enable memory
937b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# allocation checking (including memory leaks, buffer overwrites, etc.)
938b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# Note that all these checks are also controlled by env. settings
939b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# that can enable, or disable specific checks. Note also that some of
940b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# the checks are available only in emulator and are implemeted in
941b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_qemu_instrumented.so.
942b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineifneq ($(TARGET_BUILD_VARIANT),user)
943b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
944ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
945b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_debug_leak.so
9461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
9471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
9481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
949ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_CFLAGS := \
950ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_common_cflags) \
951ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	-DMALLOC_LEAK_CHECK
9521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
9541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
9561e980b6bc8315d00a07312b25486531247abd98cElliott Hughes	bionic/debug_mapinfo.cpp \
9571e980b6bc8315d00a07312b25486531247abd98cElliott Hughes	bionic/debug_stacktrace.cpp \
958c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_leak.cpp \
959c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_check.cpp \
9601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
961b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE:= libc_malloc_debug_leak
962ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
9631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
964e007775f4b21f6b94078ed1d34b753435ba28fdaPavel ChupinLOCAL_SHARED_LIBRARIES := libc libdl
965b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
966b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_SYSTEM_SHARED_LIBRARIES :=
967aa46fa24035f3ab020f9a7abd86c25ae2196bb32Bruce BeareLOCAL_ALLOW_UNDEFINED_SYMBOLS := true
968368070454b1349d1fcf29a5d1eb51c869fb538f6Iliyan Malchev
969b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# Don't install on release build
970b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE_TAGS := eng debug
9711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
972b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineinclude $(BUILD_SHARED_LIBRARY)
973b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
974b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
975b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# ========================================================
976b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_debug_qemu.so
977b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# ========================================================
978b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineinclude $(CLEAR_VARS)
979b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
980b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_CFLAGS := \
981b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine	$(libc_common_cflags) \
982b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine	-DMALLOC_QEMU_INSTRUMENT
983b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
984b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_C_INCLUDES := $(libc_common_c_includes)
985b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
986b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_SRC_FILES := \
987c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_qemu.cpp
988b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
989b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE:= libc_malloc_debug_qemu
990ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
991b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
9927c0c3793722aea293c45921ef50e4adcdf9645ceMathias AgopianLOCAL_SHARED_LIBRARIES := libc libdl
9931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
9941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
995368070454b1349d1fcf29a5d1eb51c869fb538f6Iliyan Malchev
9961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# Don't install on release build
997b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE_TAGS := eng debug
9981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
10001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1001b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineendif	#!user
1002b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
1003b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
10041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
10051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(call all-makefiles-under,$(LOCAL_PATH))
1006