Android.mk revision 9d23e04c43dbb8480bea8be28b8a2f37423bec49
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/wcpcpy.c \
1153527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcpncpy.c \
1163527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcscasecmp.c \
1173527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcscat.c \
1183527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcschr.c \
1193527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcscmp.c \
1203527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcscpy.c \
1213527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcscspn.c \
1223527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsdup.c \
1233527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcslcat.c \
1243527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcslcpy.c \
1253527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcslen.c \
1263527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsncasecmp.c \
1273527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsncat.c \
1283527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsncmp.c \
1293527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsncpy.c \
1303527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsnlen.c \
1313527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcspbrk.c \
1323527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsrchr.c \
1333527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsspn.c \
1343527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcsstr.c \
1353527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcstok.c \
1363527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wcswidth.c \
13770465614e14a87f547cdd1b82b0b270b87d215c1Kristian Monsen	wchar/wcsxfrm.c \
1383527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wmemchr.c \
13970465614e14a87f547cdd1b82b0b270b87d215c1Kristian Monsen	wchar/wmemcmp.c \
1403527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wmemcpy.c \
1413527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wmemmove.c \
1423527fd6f0df794207215790321824b7844cc712dDavid 'Digit' Turner	wchar/wmemset.c \
1431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/asctime.c \
1441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/difftime.c \
1451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/localtime.c \
1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/strftime.c \
1471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	tzcode/strptime.c \
1481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/arc4random.c \
149a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/atoi.c \
150a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/atol.c \
151a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/atoll.c \
152a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/bindresvport.c \
153a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/bionic_clone.c \
154fc10b24accd082fb33c8f92ff8b92481c22fe3dcColin Cross	bionic/clearenv.c \
155a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/cpuacct.c \
156a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/daemon.c \
15764ceac3f493e3063a289aec4a12c74787be974e4Colin Cross	bionic/err.c \
158a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ether_aton.c \
159a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ether_ntoa.c \
160a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/fcntl.c \
161fc10b24accd082fb33c8f92ff8b92481c22fe3dcColin Cross	bionic/fdprintf.c \
162a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/flockfile.c \
1631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/fork.c \
164a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/fstatfs.c \
165a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ftime.c \
166a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ftok.c \
16764ceac3f493e3063a289aec4a12c74787be974e4Colin Cross	bionic/fts.c \
168a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getdtablesize.c \
169a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/gethostname.c \
170a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpgrp.c \
171a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpriority.c \
172a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpt.c \
1731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/if_indextoname.c \
174a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/if_nametoindex.c \
175a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/initgroups.c \
1761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ioctl.c \
177a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/isatty.c \
178a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/issetugid.c \
1791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ldexp.c \
1801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/logd_write.c \
181a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/lseek64.c \
1821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/md5.c \
183a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memchr.c \
184a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memmem.c \
185a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memrchr.c \
186a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memswap.c \
187a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/mmap.c \
188a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/openat.c \
189a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/open.c \
190a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pathconf.c \
191a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/perror.c \
192a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pread.c \
193a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pselect.c \
194a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ptsname.c \
195a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ptsname_r.c \
1961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/pututline.c \
197a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pwrite.c \
1981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/realpath.c \
199a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/reboot.c \
200a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/recv.c \
20172e6fd42421dca80fb2776a9185c186d4a04e5f7David 'Digit' Turner	bionic/sched_cpualloc.c \
20272e6fd42421dca80fb2776a9185c186d4a04e5f7David 'Digit' Turner	bionic/sched_cpucount.c \
203a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sched_getaffinity.c \
204a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sched_getcpu.c \
2051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/semaphore.c \
206a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/send.c \
207a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setegid.c \
208a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/seteuid.c \
209a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setpgrp.c \
210a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setresuid.c \
211a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setreuid.c \
212a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setuid.c \
213a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigblock.c \
214a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/siginterrupt.c \
215a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/siglist.c \
216a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/signal.c \
217a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/signame.c \
218a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigsetmask.c \
219a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigsuspend.c \
220a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sleep.c \
221a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/statfs.c \
222a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strndup.c \
223a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strnlen.c \
224a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strntoimax.c \
225a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strntoumax.c \
226a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strtotimeval.c \
2271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/system_properties.c \
228a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/tcgetpgrp.c \
229a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/tcsetpgrp.c \
2301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/thread_atexit.c \
231a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/time64.c \
232a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/umount.c \
233a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/unlockpt.c \
234a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/usleep.c \
2351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/utmp.c \
236a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/wait.c \
237a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/wcscoll.c \
2381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/gethnamaddr.c \
2391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/inet/nsap_addr.c \
2401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__dn_comp.c \
2411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__res_close.c \
2421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__res_send.c \
2431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/herror.c \
2441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_comp.c \
2451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_data.c \
2461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_debug.c \
2471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_init.c \
2481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_mkquery.c \
2491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_query.c \
2501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_send.c \
25110093276e98d26428875480c502a278dffe550c7Shin-ichiro KAWASAKI	netbsd/resolv/res_state.c \
2521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_cache.c \
2531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/nsdispatch.c \
2541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getaddrinfo.c \
2551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getnameinfo.c \
2561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservbyname.c \
2571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservent.c \
2581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/base64.c \
2591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservbyport.c \
2601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_name.c \
2611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_parse.c \
2621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_ttl.c \
2631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_netint.c \
2641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_print.c \
2654fa7b105644222d9b35347c9d226ca8e011072ebColin Cross	netbsd/nameser/ns_samedomain.c \
2661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
26729c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hugheslibc_bionic_src_files := \
268063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/assert.cpp \
269428f5567be25b8090e3dd72e2d3d337c305b514eElliott Hughes    bionic/brk.cpp \
2701e980b6bc8315d00a07312b25486531247abd98cElliott Hughes    bionic/debug_format.cpp \
271c30396f5f225e0b5a83a35432e2d82a7063cfdb9David 'Digit' Turner    bionic/dirent.cpp \
27291a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes    bionic/__errno.c \
273063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/eventfd.cpp \
274063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__fgets_chk.cpp \
2752c5153b043b44e9935a334ae9b2d5a4bc5258b40Nick Kralevich    bionic/getauxval.cpp \
276063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/getcwd.cpp \
27742b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes    bionic/libc_init_common.cpp \
27858b575485c446f9d76ee00f67516ed42cf017769Elliott Hughes    bionic/libgen.cpp \
279063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memcpy_chk.cpp \
280063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memmove_chk.cpp \
281063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memset_chk.cpp \
2823e898476c7230b60a0f76968e64ff25f475b48c0Elliott Hughes    bionic/pthread_attr.cpp \
2839d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_detach.cpp \
2849d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_equal.cpp \
2859d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_getcpuclockid.cpp \
2869d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_getschedparam.cpp \
2879d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_internals.cpp \
2889d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_join.cpp \
2899d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_kill.cpp \
2909d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_self.cpp \
2913e898476c7230b60a0f76968e64ff25f475b48c0Elliott Hughes    bionic/pthread_setname_np.cpp \
2929d23e04c43dbb8480bea8be28b8a2f37423bec49Elliott Hughes    bionic/pthread_setschedparam.cpp \
293c5d028fc913de84a781bd61084bf7ae2182fd48eElliott Hughes    bionic/pthread_sigmask.cpp \
294d8a5a6f513c6fa99229e9c82c5c308c7cd6b3d54Chris Dearman    bionic/raise.cpp \
295428f5567be25b8090e3dd72e2d3d337c305b514eElliott Hughes    bionic/sbrk.cpp \
2964a9e837840fda3aaea48aeba85c7c7a8782d2586Elliott Hughes    bionic/__set_errno.cpp \
297063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/setlocale.cpp \
298a4b2dc016fa62bd172a73c3f8971c805700ffb0fRom Lemarchand    bionic/signalfd.cpp \
299c5d028fc913de84a781bd61084bf7ae2182fd48eElliott Hughes    bionic/sigwait.cpp \
300063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strcat_chk.cpp \
301063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strcpy_chk.cpp \
302063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strerror.cpp \
303063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strerror_r.cpp \
304063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlcat_chk.cpp \
305063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlcpy_chk.cpp \
306063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlen_chk.cpp \
307063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strncat_chk.cpp \
308063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strncpy_chk.cpp \
309063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strsignal.cpp \
310063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/stubs.cpp \
31191a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes    bionic/sysconf.cpp \
312063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/tdestroy.cpp \
313063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/tmpfile.cpp \
314063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__umask_chk.cpp \
315063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__vsnprintf_chk.cpp \
316063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__vsprintf_chk.cpp \
317063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/wchar.cpp \
31829c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
319f8b3a920a895a53b207017249080087d562bd0d2Elliott Hugheslibc_upstream_netbsd_src_files := \
320e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/common/lib/libc/hash/sha1/sha1.c \
321e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/common/lib/libc/inet/inet_addr.c \
322e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/compat-43/creat.c \
323e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/ftw.c \
324e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/nftw.c \
325e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/nice.c \
326e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/psignal.c \
327ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/gen/setjmperr.c \
328e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/utime.c \
329e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_ntoa.c \
330e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_ntop.c \
331e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_pton.c \
332ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/isc/ev_streams.c \
333ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/isc/ev_timers.c \
334e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regcomp.c \
335e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regerror.c \
336e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regexec.c \
337e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regfree.c \
338e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdio/getdelim.c \
339e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdio/getline.c \
340ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/bsearch.c \
341ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/div.c \
342e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/drand48.c \
343e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/erand48.c \
344e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/jrand48.c \
345ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/ldiv.c \
346ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/lldiv.c \
347e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/lrand48.c \
348e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/mrand48.c \
349e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/nrand48.c \
350e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/_rand48.c \
351e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/seed48.c \
352e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/srand48.c \
353e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tdelete.c \
354e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tfind.c \
355e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tsearch.c \
356c51cd764a2d0897234762abd4dbd21420cb9f17dElliott Hughes    upstream-netbsd/libc/string/memccpy.c \
357e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/string/strcasestr.c \
3582b473070126345e323d0694b87f88264cc9a77ccElliott Hughes    upstream-netbsd/libc/string/strcoll.c \
359e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/string/strxfrm.c \
360ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/unistd/killpg.c \
361f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
362ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Architecture specific source files go here
363ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# =========================================================
3641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),arm)
3651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
366017f438534068f48277fe6f7f7234e6f24ae5065Ben Cheng	arch-arm/bionic/abort_arm.S \
3670fec6b9d88ee5a9e359b2208038f9806c0804538David 'Digit' Turner	arch-arm/bionic/atomics_arm.c \
3681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/clone.S \
3696a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner	arch-arm/bionic/eabi.c \
370a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/_exit_with_stack_teardown.S \
3711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/ffs.S \
3720fec6b9d88ee5a9e359b2208038f9806c0804538David 'Digit' Turner	arch-arm/bionic/futex_arm.S \
373a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/__get_sp.S \
3741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/kill.S \
3752a7ad97539313c82e13d36c9c75cefb2982a87d8David 'Digit' Turner	arch-arm/bionic/libgcc_compat.c \
3761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memcmp16.S \
377a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/memcmp.S \
3781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memcpy.S \
3791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memset.S \
380a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/_setjmp.S \
3811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/setjmp.S \
3821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/sigsetjmp.S \
383f50e9be5930a08fa825b0c23353c802e11369b14Jim Huang	arch-arm/bionic/strcmp.S \
384a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/strcpy.S \
385a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/strlen.c.arm \
3861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/syscall.S \
387a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/tgkill.S \
388a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/tkill.S \
389a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memmove.c.arm \
390a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/socketcalls.c \
3918ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	string/bcopy.c \
3928ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	string/strncmp.c \
3931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
3941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# These files need to be arm so that gdbserver
3951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# can set breakpoints in them without messing
3961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# up any thumb code.
3971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
3984f086aeb4aa06e13079b7fec71a8178ceeacf318Matt Fischer	bionic/pthread-atfork.c.arm \
3998a1d2cf1422e35257c160ac5bb12dd3ee481c433David 'Digit' Turner	bionic/pthread-rwlocks.c.arm \
4001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/pthread-timers.c.arm \
4011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ptrace.c.arm
402ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
4036a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turnerlibc_static_common_src_files += \
40444b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread.c.arm \
4054b4a8824289c48c823cd38bc63289d121aae3d67Elliott Hughes    bionic/pthread_create.cpp.arm \
40644b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread_key.cpp.arm \
4076a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner
408ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# these are used by the static and dynamic versions of the libc
409ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# respectively
410ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_static_src_files := \
411ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	arch-arm/bionic/exidx_static.c
412ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
413ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_dynamic_src_files := \
414ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	arch-arm/bionic/exidx_dynamic.c
415a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # arm
4161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
4171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),x86)
4181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
419d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/clone.S \
420d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/_exit_with_stack_teardown.S \
421d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/futex_x86.S \
422d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/__get_sp.S \
423d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/__get_tls.c \
424d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/_setjmp.S \
425d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/setjmp.S \
426d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/__set_tls.c \
427d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/sigsetjmp.S \
428d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/syscall.S \
429d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/bionic/vfork.S \
430d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/bcopy_wrapper.S \
431d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/bzero_wrapper.S \
432d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/ffs.S \
433d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memcmp_wrapper.S \
434d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memcpy_wrapper.S \
435d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memmove_wrapper.S \
436d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/memset_wrapper.S \
437d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/strcmp_wrapper.S \
438d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/strlen_wrapper.S \
439d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    arch-x86/string/strncmp_wrapper.S \
440d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/pthread-atfork.c \
441d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/pthread-rwlocks.c \
442d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/pthread-timers.c \
443d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    bionic/ptrace.c \
444d2547040a13fe1bce31a60df35d4953c596a3db0Elliott Hughes    string/strcpy.c \
4451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
4466a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turnerlibc_static_common_src_files += \
44744b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread.c \
4484b4a8824289c48c823cd38bc63289d121aae3d67Elliott Hughes    bionic/pthread_create.cpp \
44944b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread_key.cpp \
4506a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner
451ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_static_src_files := \
452405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham	bionic/dl_iterate_phdr_static.c
453ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
454ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_dynamic_src_files :=
455a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # x86
45610093276e98d26428875480c502a278dffe550c7Shin-ichiro KAWASAKI
457a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
458a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
459a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__get_sp.S \
460a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__get_tls.c \
461a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__set_tls.c \
462a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/_exit_with_stack_teardown.S \
463a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/_setjmp.S \
464a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/futex_mips.S \
465a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/bzero.S \
466a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/cacheflush.c \
467a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/clone.S \
468a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/ffs.S \
469a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/memcmp16.S \
470a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/memmove.c \
471a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/pipe.S \
472a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/setjmp.S \
473a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/sigsetjmp.S \
474a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/vfork.S
475a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
476a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
477a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/memset.S \
478a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/memcpy.S \
479a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/mips_strlen.c
480a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
481a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
482857fed50cbf2d1a701a5a1a29e124f7e9fb945d5Elliott Hughes	bionic/memcmp.c \
483a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/bcopy.c \
484a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strcmp.c \
485a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strcpy.c \
486a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strncmp.c
487a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
488a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
489a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-atfork.c \
490a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-rwlocks.c \
491a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-timers.c \
492a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/ptrace.c
493a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
494a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_static_common_src_files += \
495ba342c11adbe92aa918d50b0d2a36453510ebf02Elliott Hughes    bionic/pthread.c \
4964b4a8824289c48c823cd38bc63289d121aae3d67Elliott Hughes    bionic/pthread_create.cpp \
49744b53ad6818de344e0b499ad8fdbb21fcb0ff2b6Elliott Hughes    bionic/pthread_key.cpp \
498a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
499a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_arch_static_src_files := \
500a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/dl_iterate_phdr_static.c
501a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
502a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_arch_dynamic_src_files :=
503a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # mips
5041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
505ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define some common cflags
506ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
5071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_cflags := \
508470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DWITH_ERRLIST \
509470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DANDROID_CHANGES \
510470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -D_LIBC=1 \
511470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DFLOATING_POINT \
512470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DINET6 \
513470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -I$(LOCAL_PATH)/private \
514470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DPOSIX_MISTAKE \
515470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DLOG_ON_HEAP_ERROR \
516c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes    -Wall -Wextra
5171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
518d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# these macro definitions are required to implement the
519d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# 'timezone' and 'daylight' global variables, as well as
520d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# properly update the 'tm_gmtoff' field in 'struct tm'.
521d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner#
522d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turnerlibc_common_cflags += \
523d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner    -DTM_GMTOFF=tm_gmtoff \
524d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner    -DUSG_COMPAT=1
525d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner
526d2c9dcc9265e66f6432ec39dcc7378b944449e60Dave Bortifeq ($(strip $(DEBUG_BIONIC_LIBC)),true)
5271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project  libc_common_cflags += -DDEBUG
5281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectendif
5291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
5302fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren# To customize dlmalloc's alignment, set BOARD_MALLOC_ALIGNMENT in
5312fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren# the appropriate BoardConfig.mk file.
5322fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren#
5332fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Renifneq ($(BOARD_MALLOC_ALIGNMENT),)
5342fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren  libc_common_cflags += -DMALLOC_ALIGNMENT=$(BOARD_MALLOC_ALIGNMENT)
5352fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Renendif
5362fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren
5371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),arm)
538a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -DSOFTFLOAT
5391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project  libc_common_cflags += -fstrict-aliasing
540ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin  libc_crt_target_cflags := -mthumb-interwork
5414a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  #
54291a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes  # Define HAVE_32_BYTE_CACHE_LINES to indicate to the C library
54391a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes  # that it should use the 32-byte version of memcpy, not
544fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  # the 64-byte version.
545fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  #
546fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  ifeq ($(ARCH_ARM_HAVE_32_BYTE_CACHE_LINES),true)
547fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding    libc_common_cflags += -DHAVE_32_BYTE_CACHE_LINE
548fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  endif
54908e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe  ifeq ($(ARCH_ARM_USE_NON_NEON_MEMCPY),true)
55008e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe    libc_common_cflags += -DARCH_ARM_USE_NON_NEON_MEMCPY
55108e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe  endif
552ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinendif # !arm
5531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
554a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),x86)
555a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -DSOFTFLOAT
556a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_crt_target_cflags :=
557a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifeq ($(ARCH_X86_HAVE_SSE2),true)
558a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham      libc_crt_target_cflags += -DUSE_SSE2=1
559a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
560a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifeq ($(ARCH_X86_HAVE_SSSE3),true)
561a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham      libc_crt_target_cflags += -DUSE_SSSE3=1
562a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
563a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # x86
564a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
565a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
566a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifneq ($(ARCH_MIPS_HAS_FPU),true)
567a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_common_cflags += -DSOFTFLOAT
568a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
569a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -fstrict-aliasing
570a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_crt_target_cflags := $(TARGET_GLOBAL_CFLAGS)
571a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # mips
572a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
573fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden# Define ANDROID_SMP appropriately.
574fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenifeq ($(TARGET_CPU_SMP),true)
575fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden    libc_common_cflags += -DANDROID_SMP=1
576fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenelse
577fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden    libc_common_cflags += -DANDROID_SMP=0
578fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenendif
579fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden
58076be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes# crtbrand.c needs <stdint.h> and a #define for the platform SDK version.
58176be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hugheslibc_crt_target_cflags += \
58276be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/include  \
58376be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
584fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden
585ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define some common includes
586ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
5871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_c_includes := \
5881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project		$(LOCAL_PATH)/stdlib  \
5891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project		$(LOCAL_PATH)/string  \
59076656afc6dd069fcfda5768e6e54bb85e4e99942Nick Kralevich		$(LOCAL_PATH)/stdio   \
59176656afc6dd069fcfda5768e6e54bb85e4e99942Nick Kralevich		external/safe-iop/include
5921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
5939d40326830c2bd407427889c554adeb915ee6b4aNick Kralevich# Needed to access private/__dso_handle.h from
5943b43f87d2949a340e2c19cb735af7727157d8274David 'Digit' Turner# crtbegin_xxx.S and crtend_xxx.S
59576be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hugheslibc_crt_target_cflags += \
59676be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/private \
59776be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include
5981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
599ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define the libc run-time (crt) support object files that must be built,
600ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# which are needed to build all other objects (shared/static libs and
601ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# executables)
602ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ==========================================================================
603a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham# ARM, MIPS, and x86 all need crtbegin_so/crtend_so.
6046a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
6056a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# For x86, the .init section must point to a function that calls all
6066a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# entries in the .ctors section. (on ARM this is done through the
6076a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# .init_array section instead).
6086a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
609a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham# For all the platforms, the .fini_array section must point to a function
6106a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# that will call __cxa_finalize(&__dso_handle) in order to ensure that
6116a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# static C++ destructors are properly called on dlclose().
6126a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
613a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),arm)
61412949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes    libc_crtbegin_extension := c
615a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags :=
616a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
617a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
61812949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes    libc_crtbegin_extension := S
619a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags := -fPIC
620a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
6212d2dbd30243f4ffd1e0a10ade989e25d29f7f45cDavid 'Digit' Turnerifeq ($(TARGET_ARCH),x86)
62220c4a3a8eee5ca8c87ae377732f541baffce1fdaPavel Chupin    libc_crtbegin_extension := c
623a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags := -fPIC
624a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
62512949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughesifeq ($(libc_crtbegin_extension),)
626a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    $(error $(TARGET_ARCH) not supported)
6272d2dbd30243f4ffd1e0a10ade989e25d29f7f45cDavid 'Digit' Turnerendif
628a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_crt_target_so_cflags += $(libc_crt_target_cflags)
62912949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hugheslibc_crt_target_crtbegin_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin.$(libc_crtbegin_extension)
63012949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hugheslibc_crt_target_crtbegin_so_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.$(libc_crtbegin_extension)
631ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
632ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope# See the comment in crtbrand.c for the reason why we need to generate
633ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope# crtbrand.s before generating crtbrand.o.
634ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
635ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(LOCAL_PATH)/bionic/crtbrand.c
636ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
637cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) -S \
638cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.s=%.d) -o $@ $<
639cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) sed -i -e '/\.note\.ABI-tag/s/progbits/note/' $@
640cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(call transform-d-to-p-args,$(@:%.s=%.d),$(@:%.s=%.P))
641cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.s=%.P)
642ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
643ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
644ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
645ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
646ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
647cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) -o $@ -c $<
648ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
649ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
650fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
65112949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_so_file)
6521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
653cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \
654cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
655cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
656cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
6571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
6581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
659fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
660ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
661ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	@mkdir -p $(dir $@)
662cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \
663cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
664cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
665cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
666ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinALL_GENERATED_SOURCES += $(GEN)
667fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei Liao
668cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang# The following two are installed to device
669fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoGEN := $(TARGET_OUT_SHARED_LIBRARIES)/crtbegin_so.o
670cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
671cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) mkdir -p $(dir $@) && cp -f $< $@
672fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoALL_GENERATED_SOURCES += $(GEN)
673fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei Liao
674fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoGEN := $(TARGET_OUT_SHARED_LIBRARIES)/crtend_so.o
675cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
676cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) mkdir -p $(dir $@) && cp -f $< $@
677fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoALL_GENERATED_SOURCES += $(GEN)
6781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
6791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
680ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o
68112949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_file)
682ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	@mkdir -p $(dir $@)
683cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
684cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
685cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
686cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
687ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinALL_GENERATED_SOURCES += $(GEN)
6881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
689ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o
690ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
691ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
692cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_LD) -r -o $@ $^
693ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
694ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
695ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o
69612949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_file)
6971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
698cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
699cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
700cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
701cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
7021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
7031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
704ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic.o
705ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
706ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
707cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_LD) -r -o $@ $^
708ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
709ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
710ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# We rename crtend.o to crtend_android.o to avoid a
711ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# name clash between gcc and bionic.
712fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o
713ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend.S
7141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
715cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
716cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
717cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
718cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
7191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
7201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
7211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
722ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# To enable malloc leak check for statically linked programs, add
723ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# "WITH_MALLOC_CHECK_LIBC_A := true" to buildspec.mk
724ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinWITH_MALLOC_CHECK_LIBC_A := $(strip $(WITH_MALLOC_CHECK_LIBC_A))
7251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
726ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
7276334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# libbionic_ssp.a - stack protector code
7286334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# ========================================================
7296334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich#
7306334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# The stack protector code needs to be compiled
7316334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# with -fno-stack-protector, since it modifies the
7326334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# stack canary.
7336334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7346334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevichinclude $(CLEAR_VARS)
7356334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
736fb7eb5e07f43587c2bedf2aaa53b21fa002417bbElliott HughesLOCAL_SRC_FILES := bionic/__stack_chk_fail.cpp bionic/__stack_chk_guard.cpp
737dc5ec07158079b39f758ed41eca5b937e52c3729Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -fno-stack-protector -Werror
7386334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_C_INCLUDES := $(libc_common_c_includes)
7396334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_MODULE := libbionic_ssp
740ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
7416334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_SYSTEM_SHARED_LIBRARIES :=
7426334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7436334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevichinclude $(BUILD_STATIC_LIBRARY)
7446334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7456334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7466334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# ========================================================
747f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# libc_netbsd.a - upstream NetBSD C library code
748f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# ========================================================
749f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes#
750f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# These files are built with the netbsd-compat.h header file
751f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# automatically included.
752f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
753f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughesinclude $(CLEAR_VARS)
754f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
755f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files)
756f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_CFLAGS := \
757f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes    $(libc_common_cflags) \
7583d2d448af1b16923f5a329b49bb8e658dbad8a06Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd \
759ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd/libc/include \
760f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes    -include upstream-netbsd/netbsd-compat.h
761f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_C_INCLUDES := $(libc_common_c_includes)
762f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_MODULE := libc_netbsd
763ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
764f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_SYSTEM_SHARED_LIBRARIES :=
765f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
766f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughesinclude $(BUILD_STATIC_LIBRARY)
767f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
768f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
769f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# ========================================================
77029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# libc_bionic.a - home-grown C library code
77129c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# ========================================================
77229c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes#
77329c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughesinclude $(CLEAR_VARS)
77429c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
77529c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_SRC_FILES := $(libc_bionic_src_files)
77629c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -Werror
77729c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_C_INCLUDES := $(libc_common_c_includes)
77829c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_MODULE := libc_bionic
77929c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
78029c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_SYSTEM_SHARED_LIBRARIES :=
78129c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
78229c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughesinclude $(BUILD_STATIC_LIBRARY)
78329c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
78429c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
78529c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# ========================================================
786ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# libc_common.a
787ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
788f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
789ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavininclude $(CLEAR_VARS)
7901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
791ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_SRC_FILES := $(libc_common_src_files)
792ab44f52202878cdf2bf22457aeae33ec24089556Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) \
793ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -std=gnu99 \
794ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd/libc/include # for netbsd private headers
795ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_C_INCLUDES := $(libc_common_c_includes)
7961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_MODULE := libc_common
797ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
79829c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_WHOLE_STATIC_LIBRARIES := libbionic_ssp libc_bionic libc_netbsd
7991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
8001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_STATIC_LIBRARY)
8021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
804ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
80549e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# libc_nomalloc.a
80649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# ========================================================
80749e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin#
80849e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# This is a version of the static C library that does not
80991a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# include malloc. It's useful in situations when the user wants
81091a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# to provide their own malloc implementation, or wants to
81191a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# explicitly disallow the use of the use of malloc,
81291a9925998f2b878f0245ce03aab22cc412a4d8bElliott Hughes# such as in the dynamic loader.
81349e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
81449e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavininclude $(CLEAR_VARS)
81549e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
81649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_SRC_FILES := \
81749e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin	$(libc_arch_static_src_files) \
8186a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
81942b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes	bionic/libc_init_static.cpp
82049e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
82149e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_C_INCLUDES := $(libc_common_c_includes)
8226a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' TurnerLOCAL_CFLAGS := $(libc_common_cflags) \
82329c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -DLIBC_STATIC \
82429c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -std=gnu99
82549e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
82649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_MODULE := libc_nomalloc
827ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
82849e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
82949e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_SYSTEM_SHARED_LIBRARIES :=
83049e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
83149e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavininclude $(BUILD_STATIC_LIBRARY)
83249e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
83349e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
83449e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# ========================================================
8351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# libc.a
8361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
8371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
8381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
840ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_arch_static_src_files) \
8416a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
8421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dlmalloc.c \
843c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_common.cpp \
84442b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes	bionic/libc_init_static.cpp
8451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
846b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_CFLAGS := $(libc_common_cflags) \
84729c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -DLIBC_STATIC \
84829c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -std=gnu99
8491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
850ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_MODULE := libc
851ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
8521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
8531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
8541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_STATIC_LIBRARY)
8561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
858ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
8591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# libc.so
8601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
8611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
8621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8637c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# pthread deadlock prediction:
8647c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# set -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=1 to enable support for
8657c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# pthread deadlock prediction.
8667c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# Since this code is experimental it is disabled by default.
8677c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# see libc/bionic/pthread_debug.c for details
8687c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian
86929c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -std=gnu99 -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=0
8701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
8711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
873ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_arch_dynamic_src_files) \
8746a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
8751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dlmalloc.c \
876c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_common.cpp \
8771e980b6bc8315d00a07312b25486531247abd98cElliott Hughes	bionic/pthread_debug.cpp \
87842b2c6a5eed5e4ef35315b8cd32d1355f12a69b6Elliott Hughes	bionic/libc_init_dynamic.cpp
8791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
880f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvelifeq ($(TARGET_ARCH),arm)
881f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_NO_CRT := true
882f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_CFLAGS += -DCRT_LEGACY_WORKAROUND
883f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel
884f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_SRC_FILES := \
885f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/crtbegin_so.c \
886f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/atexit_legacy.c \
887f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		$(LOCAL_SRC_FILES) \
888f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/crtend_so.S
889f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvelendif
890f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel
8911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_MODULE:= libc
892ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
893914d8d4cff10f023ccd382fb43b2c7833dd34f72Elliott HughesLOCAL_REQUIRED_MODULES := tzdata
8941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# WARNING: The only library libc.so should depend on is libdl.so!  If you add other libraries,
8961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# make sure to add -Wl,--exclude-libs=libgcc.a to the LOCAL_LDFLAGS for those libraries.  This
8971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ensures that symbols that are pulled into those new libraries from libgcc.a are not declared
8981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# external; if that were the case, then libc would not pull those symbols from libgcc.a as it
8991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# should, instead relying on the external symbols from the dependent libraries.  That would
9001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# create an "cloaked" dependency on libgcc.a in libc though the libraries, which is not what
9011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# you wanted!
9021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SHARED_LIBRARIES := libdl
9041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
9051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
9061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
9081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
910b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# For all builds, except for the -user build we will enable memory
911b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# allocation checking (including memory leaks, buffer overwrites, etc.)
912b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# Note that all these checks are also controlled by env. settings
913b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# that can enable, or disable specific checks. Note also that some of
914b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# the checks are available only in emulator and are implemeted in
915b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_qemu_instrumented.so.
916b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineifneq ($(TARGET_BUILD_VARIANT),user)
917b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
918ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
919b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_debug_leak.so
9201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
9211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
9221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
923ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_CFLAGS := \
924ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_common_cflags) \
925ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	-DMALLOC_LEAK_CHECK
9261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
9281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
9301e980b6bc8315d00a07312b25486531247abd98cElliott Hughes	bionic/debug_mapinfo.cpp \
9311e980b6bc8315d00a07312b25486531247abd98cElliott Hughes	bionic/debug_stacktrace.cpp \
932c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_leak.cpp \
933c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_check.cpp \
9341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
935b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE:= libc_malloc_debug_leak
936ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
9371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
938e007775f4b21f6b94078ed1d34b753435ba28fdaPavel ChupinLOCAL_SHARED_LIBRARIES := libc libdl
939b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
940b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_SYSTEM_SHARED_LIBRARIES :=
941aa46fa24035f3ab020f9a7abd86c25ae2196bb32Bruce BeareLOCAL_ALLOW_UNDEFINED_SYMBOLS := true
942368070454b1349d1fcf29a5d1eb51c869fb538f6Iliyan Malchev
943b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# Don't install on release build
944b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE_TAGS := eng debug
9451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
946b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineinclude $(BUILD_SHARED_LIBRARY)
947b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
948b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
949b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# ========================================================
950b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_debug_qemu.so
951b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# ========================================================
952b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineinclude $(CLEAR_VARS)
953b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
954b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_CFLAGS := \
955b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine	$(libc_common_cflags) \
956b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine	-DMALLOC_QEMU_INSTRUMENT
957b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
958b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_C_INCLUDES := $(libc_common_c_includes)
959b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
960b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_SRC_FILES := \
961c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_qemu.cpp
962b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
963b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE:= libc_malloc_debug_qemu
964ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
965b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
9667c0c3793722aea293c45921ef50e4adcdf9645ceMathias AgopianLOCAL_SHARED_LIBRARIES := libc libdl
9671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
9681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
969368070454b1349d1fcf29a5d1eb51c869fb538f6Iliyan Malchev
9701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# Don't install on release build
971b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE_TAGS := eng debug
9721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
9741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
975b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineendif	#!user
976b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
977b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
9781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
9791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(call all-makefiles-under,$(LOCAL_PATH))
980