Android.mk revision c30396f5f225e0b5a83a35432e2d82a7063cfdb9
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 \
1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/basename.c \
1531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/basename_r.c \
154a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/bindresvport.c \
155a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/bionic_clone.c \
156a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/brk.c \
157fc10b24accd082fb33c8f92ff8b92481c22fe3dcColin Cross	bionic/clearenv.c \
158a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/cpuacct.c \
159a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/daemon.c \
1601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dirname.c \
1611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dirname_r.c \
16264ceac3f493e3063a289aec4a12c74787be974e4Colin Cross	bionic/err.c \
163a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ether_aton.c \
164a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ether_ntoa.c \
165a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/fcntl.c \
166fc10b24accd082fb33c8f92ff8b92481c22fe3dcColin Cross	bionic/fdprintf.c \
167a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/flockfile.c \
1681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/fork.c \
169a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/fstatfs.c \
170a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ftime.c \
171a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ftok.c \
17264ceac3f493e3063a289aec4a12c74787be974e4Colin Cross	bionic/fts.c \
173a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getdtablesize.c \
174a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/gethostname.c \
175a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpgrp.c \
176a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpriority.c \
177a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/getpt.c \
1781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/if_indextoname.c \
179a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/if_nametoindex.c \
180a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/initgroups.c \
1811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ioctl.c \
182a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/isatty.c \
183a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/issetugid.c \
1841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ldexp.c \
1851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/libc_init_common.c \
1861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/logd_write.c \
187a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/lseek64.c \
1881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/md5.c \
189a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memccpy.c \
190a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memchr.c \
191a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memmem.c \
1924ce737f5df6bda362b45ca2a9d72d0aad2d5a58fAndy McFadden	bionic/memmove_words.c \
193a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memrchr.c \
194a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memswap.c \
195a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/mmap.c \
196a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/openat.c \
197a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/open.c \
198a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pathconf.c \
199a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/perror.c \
200a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pread.c \
201a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pselect.c \
202a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ptsname.c \
203a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/ptsname_r.c \
2041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/pututline.c \
205a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/pwrite.c \
206a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/raise.c \
2071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/realpath.c \
208a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/reboot.c \
209a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/recv.c \
210a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sbrk.c \
21172e6fd42421dca80fb2776a9185c186d4a04e5f7David 'Digit' Turner	bionic/sched_cpualloc.c \
21272e6fd42421dca80fb2776a9185c186d4a04e5f7David 'Digit' Turner	bionic/sched_cpucount.c \
213a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sched_getaffinity.c \
214a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sched_getcpu.c \
2151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/semaphore.c \
216a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/send.c \
217a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setegid.c \
218a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/__set_errno.c \
219a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/seteuid.c \
220a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setpgrp.c \
221a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setresuid.c \
222a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setreuid.c \
223a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/setuid.c \
224a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigblock.c \
225a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/siginterrupt.c \
226a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/siglist.c \
227a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/signal.c \
228a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/signame.c \
229a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigsetmask.c \
230a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigsuspend.c \
231a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sigwait.c \
232a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/sleep.c \
233a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/statfs.c \
234a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strcoll.c \
235a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strndup.c \
236a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strnlen.c \
237a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strntoimax.c \
238a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strntoumax.c \
239a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/strtotimeval.c \
2401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/system_properties.c \
241a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/tcgetpgrp.c \
242a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/tcsetpgrp.c \
2431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/thread_atexit.c \
244a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/time64.c \
245a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/umount.c \
246a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/unlockpt.c \
247a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/usleep.c \
2481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/utmp.c \
249a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/wait.c \
250a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/wcscoll.c \
2511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/gethnamaddr.c \
2521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/inet/nsap_addr.c \
2531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__dn_comp.c \
2541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__res_close.c \
2551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/__res_send.c \
2561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/herror.c \
2571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_comp.c \
2581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_data.c \
2591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_debug.c \
2601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_init.c \
2611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_mkquery.c \
2621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_query.c \
2631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_send.c \
26410093276e98d26428875480c502a278dffe550c7Shin-ichiro KAWASAKI	netbsd/resolv/res_state.c \
2651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/resolv/res_cache.c \
2661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/nsdispatch.c \
2671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getaddrinfo.c \
2681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getnameinfo.c \
2691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservbyname.c \
2701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservent.c \
2711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/base64.c \
2721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/net/getservbyport.c \
2731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_name.c \
2741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_parse.c \
2751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_ttl.c \
2761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_netint.c \
2771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	netbsd/nameser/ns_print.c \
2784fa7b105644222d9b35347c9d226ca8e011072ebColin Cross	netbsd/nameser/ns_samedomain.c \
2791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
28029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hugheslibc_bionic_src_files := \
281063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/assert.cpp \
282c30396f5f225e0b5a83a35432e2d82a7063cfdb9David 'Digit' Turner    bionic/dirent.cpp \
283063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/eventfd.cpp \
284063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__fgets_chk.cpp \
285063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/getcwd.cpp \
286063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memcpy_chk.cpp \
287063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memmove_chk.cpp \
288063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__memset_chk.cpp \
289063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/setlocale.cpp \
290063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strcat_chk.cpp \
291063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strcpy_chk.cpp \
292063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strerror.cpp \
293063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strerror_r.cpp \
294063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlcat_chk.cpp \
295063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlcpy_chk.cpp \
296063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strlen_chk.cpp \
297063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strncat_chk.cpp \
298063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__strncpy_chk.cpp \
299063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/strsignal.cpp \
300063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/stubs.cpp \
301063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/tdestroy.cpp \
302063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/tmpfile.cpp \
303063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__umask_chk.cpp \
304063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__vsnprintf_chk.cpp \
305063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/__vsprintf_chk.cpp \
306063cfb2084ea4b12d3c85b2d2c44e888f0857eb4Elliott Hughes    bionic/wchar.cpp \
30729c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
308f8b3a920a895a53b207017249080087d562bd0d2Elliott Hugheslibc_upstream_netbsd_src_files := \
309e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/common/lib/libc/hash/sha1/sha1.c \
310e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/common/lib/libc/inet/inet_addr.c \
311e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/compat-43/creat.c \
312e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/ftw.c \
313e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/nftw.c \
314e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/nice.c \
315e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/psignal.c \
316ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/gen/setjmperr.c \
317e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/gen/utime.c \
318e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_ntoa.c \
319e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_ntop.c \
320e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/inet/inet_pton.c \
321ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/isc/ev_streams.c \
322ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/isc/ev_timers.c \
323e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regcomp.c \
324e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regerror.c \
325e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regexec.c \
326e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/regex/regfree.c \
327e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdio/getdelim.c \
328e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdio/getline.c \
329ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/bsearch.c \
330ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/div.c \
331e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/drand48.c \
332e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/erand48.c \
333e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/jrand48.c \
334ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/ldiv.c \
335ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/stdlib/lldiv.c \
336e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/lrand48.c \
337e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/mrand48.c \
338e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/nrand48.c \
339e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/_rand48.c \
340e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/seed48.c \
341e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/srand48.c \
342e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tdelete.c \
343e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tfind.c \
344e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/stdlib/tsearch.c \
345e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/string/strcasestr.c \
346e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes    upstream-netbsd/libc/string/strxfrm.c \
347ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    upstream-netbsd/libc/unistd/killpg.c \
348f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
3496a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner# The following files are common, but must be compiled
3506a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner# with different C flags when building a static C library.
3516a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner#
3526a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner# The reason for this is the implementation of __get_tls()
3536a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner# that will differ between the shared and static versions
3546a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner# of the library.
3556a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner#
3566a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner# See comments in private/bionic_tls.h for more details.
3576a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner#
3586a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner# NOTE: bionic/pthread.c is added later to this list
3596a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner#       because it needs special handling on ARM, see
3606a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner#       below.
3616a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner#
3626a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turnerlibc_static_common_src_files := \
3636a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner        bionic/__errno.c \
364a89864a20b818621a1da10e88fda815334062f9fElliott Hughes        bionic/sysconf.c \
3656a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner
366ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Architecture specific source files go here
367ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# =========================================================
3681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),arm)
3691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
370017f438534068f48277fe6f7f7234e6f24ae5065Ben Cheng	arch-arm/bionic/abort_arm.S \
3710fec6b9d88ee5a9e359b2208038f9806c0804538David 'Digit' Turner	arch-arm/bionic/atomics_arm.c \
3721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/clone.S \
3736a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner	arch-arm/bionic/eabi.c \
374a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/_exit_with_stack_teardown.S \
3751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/ffs.S \
3760fec6b9d88ee5a9e359b2208038f9806c0804538David 'Digit' Turner	arch-arm/bionic/futex_arm.S \
377a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/__get_sp.S \
3781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/kill.S \
3792a7ad97539313c82e13d36c9c75cefb2982a87d8David 'Digit' Turner	arch-arm/bionic/libgcc_compat.c \
3801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memcmp16.S \
381a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/memcmp.S \
3821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memcpy.S \
3831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/memset.S \
384a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/_setjmp.S \
3851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/setjmp.S \
3861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/sigsetjmp.S \
387f50e9be5930a08fa825b0c23353c802e11369b14Jim Huang	arch-arm/bionic/strcmp.S \
388a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/strcpy.S \
389a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/strlen.c.arm \
3901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-arm/bionic/syscall.S \
391a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/tgkill.S \
392a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	arch-arm/bionic/tkill.S \
393a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/memmove.c.arm \
394a89864a20b818621a1da10e88fda815334062f9fElliott Hughes	bionic/socketcalls.c \
3958ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	string/bcopy.c \
3968ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	string/strncmp.c \
3971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
3981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# These files need to be arm so that gdbserver
3991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# can set breakpoints in them without messing
4001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# up any thumb code.
4011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
4024f086aeb4aa06e13079b7fec71a8178ceeacf318Matt Fischer	bionic/pthread-atfork.c.arm \
4038a1d2cf1422e35257c160ac5bb12dd3ee481c433David 'Digit' Turner	bionic/pthread-rwlocks.c.arm \
4041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/pthread-timers.c.arm \
4051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ptrace.c.arm
406ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
4076a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turnerlibc_static_common_src_files += \
4086a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner        bionic/pthread.c.arm \
4096a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner
410ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# these are used by the static and dynamic versions of the libc
411ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# respectively
412ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_static_src_files := \
413ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	arch-arm/bionic/exidx_static.c
414ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
415ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_dynamic_src_files := \
416ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	arch-arm/bionic/exidx_dynamic.c
417a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # arm
4181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
4191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),x86)
4201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_src_files += \
4211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/__get_sp.S \
4221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/__get_tls.c \
4231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/__set_tls.c \
4241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/clone.S \
4251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/_exit_with_stack_teardown.S \
4260fec6b9d88ee5a9e359b2208038f9806c0804538David 'Digit' Turner	arch-x86/bionic/futex_x86.S \
4271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/setjmp.S \
4281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/_setjmp.S \
42918635d9c173120f6f97dd9b035b6f9a1ebfcd1a3Chih-Wei Huang	arch-x86/bionic/sigsetjmp.S \
4301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	arch-x86/bionic/vfork.S \
4313c543e1da9a2780a70b25299f39734bf0a18c4a0Bruce Beare	arch-x86/bionic/syscall.S \
4328ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/bcopy_wrapper.S \
4338ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/memcpy_wrapper.S \
4348ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/memmove_wrapper.S \
4358ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/bzero_wrapper.S \
4368ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/memcmp_wrapper.S \
4378ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/memset_wrapper.S \
4388ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/strcmp_wrapper.S \
4398ff1a2759a6389bed30d7862d0beb76077032c99Bruce Beare	arch-x86/string/strncmp_wrapper.S \
440124a542aa4d78040176f65b28f4958540b5d89aaBruce Beare	arch-x86/string/strlen_wrapper.S \
44173c04b32691cb344cb60289a646ded8fc551d09eJim Huang	string/strcpy.c \
4424f086aeb4aa06e13079b7fec71a8178ceeacf318Matt Fischer	bionic/pthread-atfork.c \
4438a1d2cf1422e35257c160ac5bb12dd3ee481c433David 'Digit' Turner	bionic/pthread-rwlocks.c \
4441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/pthread-timers.c \
4451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/ptrace.c
4461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
4476a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turnerlibc_static_common_src_files += \
4486a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner        bionic/pthread.c \
4496a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner
450ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_static_src_files := \
451405b8029a6888f386adf3512113a33546141d1c8Raghu Gandham	bionic/dl_iterate_phdr_static.c
452ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
453ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinlibc_arch_dynamic_src_files :=
454a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # x86
45510093276e98d26428875480c502a278dffe550c7Shin-ichiro KAWASAKI
456a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
457a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
458a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__get_sp.S \
459a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__get_tls.c \
460a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/__set_tls.c \
461a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/_exit_with_stack_teardown.S \
462a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/_setjmp.S \
463a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/futex_mips.S \
464a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/bzero.S \
465a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/cacheflush.c \
466a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/clone.S \
467a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/ffs.S \
468a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/memcmp16.S \
469a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/memmove.c \
470a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/pipe.S \
471a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/setjmp.S \
472a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/sigsetjmp.S \
473a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/bionic/vfork.S
474a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
475a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
476a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/memset.S \
477a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/memcpy.S \
478a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	arch-mips/string/mips_strlen.c
479a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
480a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
481857fed50cbf2d1a701a5a1a29e124f7e9fb945d5Elliott Hughes	bionic/memcmp.c \
482a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/bcopy.c \
483a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strcmp.c \
484a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strcpy.c \
485a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	string/strncmp.c
486a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
487a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_common_src_files += \
488a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-atfork.c \
489a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-rwlocks.c \
490a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread-timers.c \
491a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/ptrace.c
492a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
493a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_static_common_src_files += \
494a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/pthread.c
495a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
496a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_arch_static_src_files := \
497a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham	bionic/dl_iterate_phdr_static.c
498a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
499a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_arch_dynamic_src_files :=
500a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # mips
5011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
502ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define some common cflags
503ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
5041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_cflags := \
505470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DWITH_ERRLIST \
506470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DANDROID_CHANGES \
507470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -D_LIBC=1 \
508470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DFLOATING_POINT \
509470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DINET6 \
510470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -I$(LOCAL_PATH)/private \
511470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DPOSIX_MISTAKE \
512470631ed79538ce912edb94505dee3e24af8db89Elliott Hughes    -DLOG_ON_HEAP_ERROR \
513c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes    -Wall -Wextra
5141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
515d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# these macro definitions are required to implement the
516d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# 'timezone' and 'daylight' global variables, as well as
517d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner# properly update the 'tm_gmtoff' field in 'struct tm'.
518d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner#
519d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turnerlibc_common_cflags += \
520d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner    -DTM_GMTOFF=tm_gmtoff \
521d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner    -DUSG_COMPAT=1
522d7ed1ae98249af8a58ce97784a29f048d77789a9David 'Digit' Turner
523d2c9dcc9265e66f6432ec39dcc7378b944449e60Dave Bortifeq ($(strip $(DEBUG_BIONIC_LIBC)),true)
5241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project  libc_common_cflags += -DDEBUG
5251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectendif
5261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
5272fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren# To customize dlmalloc's alignment, set BOARD_MALLOC_ALIGNMENT in
5282fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren# the appropriate BoardConfig.mk file.
5292fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren#
5302fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Renifneq ($(BOARD_MALLOC_ALIGNMENT),)
5312fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren  libc_common_cflags += -DMALLOC_ALIGNMENT=$(BOARD_MALLOC_ALIGNMENT)
5322fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Renendif
5332fd81ef71c10aecf6583facdd79f8f60f3eed678Jack Ren
5341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectifeq ($(TARGET_ARCH),arm)
535a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -DSOFTFLOAT
5361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project  libc_common_cflags += -fstrict-aliasing
537ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin  libc_crt_target_cflags := -mthumb-interwork
5384a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  #
5394a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  # Define HAVE_ARM_TLS_REGISTER macro to indicate to the C library
5404a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  # that it should access the hardware TLS register directly in
5414a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  # private/bionic_tls.h
5424a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  #
5434a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  # The value must match your kernel configuration
5444a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  #
5454a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  ifeq ($(ARCH_ARM_HAVE_TLS_REGISTER),true)
5464a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner    libc_common_cflags += -DHAVE_ARM_TLS_REGISTER
5474a05d12cf52a9a40759f11f28543bd75715c8f00David 'Digit' Turner  endif
548fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  #
549fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  # Define HAVE_32_BYTE_CACHE_LINES to indicate to C
550fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  # library it should use to 32-byte version of memcpy, and not
551fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  # the 64-byte version.
552fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  #
553fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  ifeq ($(ARCH_ARM_HAVE_32_BYTE_CACHE_LINES),true)
554fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding    libc_common_cflags += -DHAVE_32_BYTE_CACHE_LINE
555fe6338da9168330d44b409b2ee36103e8bfe6697Henrik Smiding  endif
55608e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe  ifeq ($(ARCH_ARM_USE_NON_NEON_MEMCPY),true)
55708e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe    libc_common_cflags += -DARCH_ARM_USE_NON_NEON_MEMCPY
55808e72d0161e39e99ff1003bf1ce894f37d7b7eb4Prajakta Gudadhe  endif
559ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavinendif # !arm
5601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
561a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),x86)
562a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -DSOFTFLOAT
563a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_crt_target_cflags :=
564a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifeq ($(ARCH_X86_HAVE_SSE2),true)
565a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham      libc_crt_target_cflags += -DUSE_SSE2=1
566a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
567a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifeq ($(ARCH_X86_HAVE_SSSE3),true)
568a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham      libc_crt_target_cflags += -DUSE_SSSE3=1
569a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
570a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # x86
571a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
572a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
573a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  ifneq ($(ARCH_MIPS_HAS_FPU),true)
574a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_common_cflags += -DSOFTFLOAT
575a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  endif
576a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_common_cflags += -fstrict-aliasing
577a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham  libc_crt_target_cflags := $(TARGET_GLOBAL_CFLAGS)
578a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif # mips
579a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham
580fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden# Define ANDROID_SMP appropriately.
581fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenifeq ($(TARGET_CPU_SMP),true)
582fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden    libc_common_cflags += -DANDROID_SMP=1
583fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenelse
584fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden    libc_common_cflags += -DANDROID_SMP=0
585fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFaddenendif
586fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden
58776be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes# crtbrand.c needs <stdint.h> and a #define for the platform SDK version.
58876be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hugheslibc_crt_target_cflags += \
58976be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/include  \
59076be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION)
591fcd00ebbdf3e7f4e1e7782a65ae10fb0fc03a1aaAndy McFadden
592ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define some common includes
593ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
5941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectlibc_common_c_includes := \
5951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project		$(LOCAL_PATH)/stdlib  \
5961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project		$(LOCAL_PATH)/string  \
59776656afc6dd069fcfda5768e6e54bb85e4e99942Nick Kralevich		$(LOCAL_PATH)/stdio   \
59876656afc6dd069fcfda5768e6e54bb85e4e99942Nick Kralevich		external/safe-iop/include
5991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
6009d40326830c2bd407427889c554adeb915ee6b4aNick Kralevich# Needed to access private/__dso_handle.h from
6013b43f87d2949a340e2c19cb735af7727157d8274David 'Digit' Turner# crtbegin_xxx.S and crtend_xxx.S
60276be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hugheslibc_crt_target_cflags += \
60376be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/private \
60476be660aae0911467c51dc3f86a4f8d7fed5b332Elliott Hughes    -I$(LOCAL_PATH)/arch-$(TARGET_ARCH)/include
6051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
606ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# Define the libc run-time (crt) support object files that must be built,
607ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# which are needed to build all other objects (shared/static libs and
608ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# executables)
609ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ==========================================================================
610a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham# ARM, MIPS, and x86 all need crtbegin_so/crtend_so.
6116a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
6126a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# For x86, the .init section must point to a function that calls all
6136a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# entries in the .ctors section. (on ARM this is done through the
6146a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# .init_array section instead).
6156a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
616a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham# For all the platforms, the .fini_array section must point to a function
6176a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# that will call __cxa_finalize(&__dso_handle) in order to ensure that
6186a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner# static C++ destructors are properly called on dlclose().
6196a9b888d7c4b246f6f66360789c72b754ff85021David 'Digit' Turner#
620a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),arm)
62112949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes    libc_crtbegin_extension := c
622a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags :=
623a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
624a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamifeq ($(TARGET_ARCH),mips)
62512949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes    libc_crtbegin_extension := S
626a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags := -fPIC
627a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
6282d2dbd30243f4ffd1e0a10ade989e25d29f7f45cDavid 'Digit' Turnerifeq ($(TARGET_ARCH),x86)
62912949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes    libc_crtbegin_extension := S
630a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    libc_crt_target_so_cflags := -fPIC
631a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamendif
63212949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughesifeq ($(libc_crtbegin_extension),)
633a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandham    $(error $(TARGET_ARCH) not supported)
6342d2dbd30243f4ffd1e0a10ade989e25d29f7f45cDavid 'Digit' Turnerendif
635a4c7933b49f1d43579f184167e79a5fb237bd206Raghu Gandhamlibc_crt_target_so_cflags += $(libc_crt_target_cflags)
63612949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hugheslibc_crt_target_crtbegin_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin.$(libc_crtbegin_extension)
63712949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hugheslibc_crt_target_crtbegin_so_file := $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.$(libc_crtbegin_extension)
638ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
639ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope# See the comment in crtbrand.c for the reason why we need to generate
640ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope# crtbrand.s before generating crtbrand.o.
641ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
642ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(LOCAL_PATH)/bionic/crtbrand.c
643ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
644cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) -S \
645cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.s=%.d) -o $@ $<
646cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) sed -i -e '/\.note\.ABI-tag/s/progbits/note/' $@
647cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(call transform-d-to-p-args,$(@:%.s=%.d),$(@:%.s=%.P))
648cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.s=%.P)
649ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
650ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
651ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
652ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.s
653ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
654cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) -o $@ -c $<
655ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
656ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
657fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
65812949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_so_file)
6591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
660cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \
661cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
662cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
663cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
6641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
6651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
666fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
667ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
668ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	@mkdir -p $(dir $@)
669cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_so_cflags) \
670cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
671cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
672cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
673ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinALL_GENERATED_SOURCES += $(GEN)
674fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei Liao
675cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang# The following two are installed to device
676fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoGEN := $(TARGET_OUT_SHARED_LIBRARIES)/crtbegin_so.o
677cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
678cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) mkdir -p $(dir $@) && cp -f $< $@
679fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoALL_GENERATED_SOURCES += $(GEN)
680fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei Liao
681fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoGEN := $(TARGET_OUT_SHARED_LIBRARIES)/crtend_so.o
682cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
683cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) mkdir -p $(dir $@) && cp -f $< $@
684fc0725ec5cc51053c06bf2c67755a5a57a5da621Shih-wei LiaoALL_GENERATED_SOURCES += $(GEN)
6851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
6861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
687ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o
68812949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_file)
689ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	@mkdir -p $(dir $@)
690cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
691cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
692cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
693cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
694ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinALL_GENERATED_SOURCES += $(GEN)
6951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
696ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o
697ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
698ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
699cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_LD) -r -o $@ $^
700ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
701ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope
702ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o
70312949e5d3946cc5d5b53d52adf5a3b925bfca2c6Elliott Hughes$(GEN): $(libc_crt_target_crtbegin_file)
7041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
705cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
706cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
707cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
708cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
7091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
7101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
711ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic.o
712ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope$(GEN): $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic1.o $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbrand.o
713ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael Hope	@mkdir -p $(dir $@)
714cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_LD) -r -o $@ $^
715ea8fad11d980d55ebd2bcf2302f3f1f742b6351cMichael HopeALL_GENERATED_SOURCES += $(GEN)
716ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin
717ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# We rename crtend.o to crtend_android.o to avoid a
718ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# name clash between gcc and bionic.
719fc9e525fe07846c1efa23235a59575f8dad69c53Ying WangGEN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o
720ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend.S
7211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	@mkdir -p $(dir $@)
722cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(hide) $(TARGET_CC) $(libc_crt_target_cflags) \
723cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang		-MD -MF $(@:%.o=%.d) -o $@ -c $<
724cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang	$(transform-d-to-p)
725cf464878efda7652b0a7eb636e45944eda6b6f2fYing Wang-include $(GEN:%.o=%.P)
7261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectALL_GENERATED_SOURCES += $(GEN)
7271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
7281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
729ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# To enable malloc leak check for statically linked programs, add
730ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# "WITH_MALLOC_CHECK_LIBC_A := true" to buildspec.mk
731ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinWITH_MALLOC_CHECK_LIBC_A := $(strip $(WITH_MALLOC_CHECK_LIBC_A))
7321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
733ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
7346334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# libbionic_ssp.a - stack protector code
7356334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# ========================================================
7366334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich#
7376334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# The stack protector code needs to be compiled
7386334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# with -fno-stack-protector, since it modifies the
7396334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# stack canary.
7406334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7416334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevichinclude $(CLEAR_VARS)
7426334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
743ad88a0863110798cef5169dcf917e18b967a7cf6Elliott HughesLOCAL_SRC_FILES := bionic/ssp.cpp
7446334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_CFLAGS := $(libc_common_cflags) -fno-stack-protector
7456334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_C_INCLUDES := $(libc_common_c_includes)
7466334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_MODULE := libbionic_ssp
747ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
7486334c662cae4cd9b61f5f3185048b0cd3633dad7Nick KralevichLOCAL_SYSTEM_SHARED_LIBRARIES :=
7496334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7506334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevichinclude $(BUILD_STATIC_LIBRARY)
7516334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7526334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich
7536334c662cae4cd9b61f5f3185048b0cd3633dad7Nick Kralevich# ========================================================
754f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# libc_netbsd.a - upstream NetBSD C library code
755f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# ========================================================
756f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes#
757f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# These files are built with the netbsd-compat.h header file
758f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# automatically included.
759f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
760f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughesinclude $(CLEAR_VARS)
761f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
762f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files)
763f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_CFLAGS := \
764f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes    $(libc_common_cflags) \
7653d2d448af1b16923f5a329b49bb8e658dbad8a06Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd \
766ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd/libc/include \
767f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes    -include upstream-netbsd/netbsd-compat.h
768f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_C_INCLUDES := $(libc_common_c_includes)
769f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_MODULE := libc_netbsd
770ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
771f8b3a920a895a53b207017249080087d562bd0d2Elliott HughesLOCAL_SYSTEM_SHARED_LIBRARIES :=
772f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
773f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughesinclude $(BUILD_STATIC_LIBRARY)
774f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
775f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
776f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes# ========================================================
77729c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# libc_bionic.a - home-grown C library code
77829c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# ========================================================
77929c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes#
78029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughesinclude $(CLEAR_VARS)
78129c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
78229c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_SRC_FILES := $(libc_bionic_src_files)
78329c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -Werror
78429c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_C_INCLUDES := $(libc_common_c_includes)
78529c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_MODULE := libc_bionic
78629c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
78729c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_SYSTEM_SHARED_LIBRARIES :=
78829c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
78929c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughesinclude $(BUILD_STATIC_LIBRARY)
79029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
79129c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes
79229c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes# ========================================================
793ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# libc_common.a
794ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
795f8b3a920a895a53b207017249080087d562bd0d2Elliott Hughes
796ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavininclude $(CLEAR_VARS)
7971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
798ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_SRC_FILES := $(libc_common_src_files)
799ab44f52202878cdf2bf22457aeae33ec24089556Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) \
800ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -std=gnu99 \
801ab44f52202878cdf2bf22457aeae33ec24089556Elliott Hughes    -I$(LOCAL_PATH)/upstream-netbsd/libc/include # for netbsd private headers
802ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_C_INCLUDES := $(libc_common_c_includes)
8031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_MODULE := libc_common
804ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
80529c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_WHOLE_STATIC_LIBRARIES := libbionic_ssp libc_bionic libc_netbsd
8061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
8071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_STATIC_LIBRARY)
8091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
811ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
81249e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# libc_nomalloc.a
81349e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# ========================================================
81449e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin#
81549e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# This is a version of the static C library that does not
81649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# include malloc. It's useful in situations when calling
81749e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# the user wants to provide their own malloc implementation,
81849e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# or wants to explicitly disallow the use of the use of malloc,
81949e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# like the dynamic loader.
82049e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
82149e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavininclude $(CLEAR_VARS)
82249e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
82349e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_SRC_FILES := \
82449e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin	$(libc_arch_static_src_files) \
8256a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
82649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin	bionic/libc_init_static.c
82749e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
82849e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_C_INCLUDES := $(libc_common_c_includes)
8296a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' TurnerLOCAL_CFLAGS := $(libc_common_cflags) \
83029c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -DLIBC_STATIC \
83129c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -std=gnu99
83249e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
83349e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_MODULE := libc_nomalloc
834ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
83549e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
83649e55332784b82f7112ee7c1ea3c176c9dc32d7aDima ZavinLOCAL_SYSTEM_SHARED_LIBRARIES :=
83749e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
83849e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavininclude $(BUILD_STATIC_LIBRARY)
83949e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
84049e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin
84149e55332784b82f7112ee7c1ea3c176c9dc32d7aDima Zavin# ========================================================
8421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# libc.a
8431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
8441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
8451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
847ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_arch_static_src_files) \
8486a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
8491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dlmalloc.c \
850c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_common.cpp \
8511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/libc_init_static.c
8521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
853b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_CFLAGS := $(libc_common_cflags) \
85429c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -DLIBC_STATIC \
85529c7f0b4d18f812267c2194b85204e19e41d0387Elliott Hughes                -std=gnu99
8561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
857ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_MODULE := libc
858ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
8591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
8601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
8611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_STATIC_LIBRARY)
8631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
865ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
8661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# libc.so
8671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
8681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
8691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8707c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# pthread deadlock prediction:
8717c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# set -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=1 to enable support for
8727c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# pthread deadlock prediction.
8737c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# Since this code is experimental it is disabled by default.
8747c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian# see libc/bionic/pthread_debug.c for details
8757c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian
87629c7f0b4d18f812267c2194b85204e19e41d0387Elliott HughesLOCAL_CFLAGS := $(libc_common_cflags) -std=gnu99 -DPTHREAD_DEBUG -DPTHREAD_DEBUG_ENABLED=0
8771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
8781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
8791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
880ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_arch_dynamic_src_files) \
8816a51defa034a1c033ed01f7de444c0a4fc615249David 'Digit' Turner	$(libc_static_common_src_files) \
8821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/dlmalloc.c \
883c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_common.cpp \
8847c0c3793722aea293c45921ef50e4adcdf9645ceMathias Agopian	bionic/pthread_debug.c \
8851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	bionic/libc_init_dynamic.c
8861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
887f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvelifeq ($(TARGET_ARCH),arm)
888f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_NO_CRT := true
889f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_CFLAGS += -DCRT_LEGACY_WORKAROUND
890f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel
891f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel	LOCAL_SRC_FILES := \
892f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/crtbegin_so.c \
893f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/atexit_legacy.c \
894f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		$(LOCAL_SRC_FILES) \
895f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel		arch-arm/bionic/crtend_so.S
896f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvelendif
897f3cfcd869ded41d25c1f4f4e48e7c374a64f9583Ard Biesheuvel
8981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_MODULE:= libc
899ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
900914d8d4cff10f023ccd382fb43b2c7833dd34f72Elliott HughesLOCAL_REQUIRED_MODULES := tzdata
9011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# WARNING: The only library libc.so should depend on is libdl.so!  If you add other libraries,
9031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# make sure to add -Wl,--exclude-libs=libgcc.a to the LOCAL_LDFLAGS for those libraries.  This
9041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ensures that symbols that are pulled into those new libraries from libgcc.a are not declared
9051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# external; if that were the case, then libc would not pull those symbols from libgcc.a as it
9061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# should, instead relying on the external symbols from the dependent libraries.  That would
9071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# create an "cloaked" dependency on libgcc.a in libc though the libraries, which is not what
9081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# you wanted!
9091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SHARED_LIBRARIES := libdl
9111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
9121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
9131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
9151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
917b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# For all builds, except for the -user build we will enable memory
918b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# allocation checking (including memory leaks, buffer overwrites, etc.)
919b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# Note that all these checks are also controlled by env. settings
920b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# that can enable, or disable specific checks. Note also that some of
921b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# the checks are available only in emulator and are implemeted in
922b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_qemu_instrumented.so.
923b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineifneq ($(TARGET_BUILD_VARIANT),user)
924b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
925ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin# ========================================================
926b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_debug_leak.so
9271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
9281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(CLEAR_VARS)
9291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
930ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima ZavinLOCAL_CFLAGS := \
931ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	$(libc_common_cflags) \
932ca122b0e34df0e8c485be0d3ab1b80f728b76276Dima Zavin	-DMALLOC_LEAK_CHECK
9331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_C_INCLUDES := $(libc_common_c_includes)
9351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SRC_FILES := \
937c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_leak.cpp \
938c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_check.cpp \
939c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_check_mapinfo.cpp \
940c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_stacktrace.cpp
9411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
942b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE:= libc_malloc_debug_leak
943ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
9441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
945e007775f4b21f6b94078ed1d34b753435ba28fdaPavel ChupinLOCAL_SHARED_LIBRARIES := libc libdl
946b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
947b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_SYSTEM_SHARED_LIBRARIES :=
948aa46fa24035f3ab020f9a7abd86c25ae2196bb32Bruce BeareLOCAL_ALLOW_UNDEFINED_SYMBOLS := true
949368070454b1349d1fcf29a5d1eb51c869fb538f6Iliyan Malchev
950b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# Don't install on release build
951b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE_TAGS := eng debug
9521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
953b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineinclude $(BUILD_SHARED_LIBRARY)
954b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
955b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
956b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# ========================================================
957b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# libc_malloc_debug_qemu.so
958b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine# ========================================================
959b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineinclude $(CLEAR_VARS)
960b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
961b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_CFLAGS := \
962b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine	$(libc_common_cflags) \
963b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine	-DMALLOC_QEMU_INSTRUMENT
964b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
965b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_C_INCLUDES := $(libc_common_c_includes)
966b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
967b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_SRC_FILES := \
968c4d1fecc105063e68a5090a6900b63d1b9a24287Elliott Hughes	bionic/malloc_debug_qemu.cpp
969b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
970b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE:= libc_malloc_debug_qemu
971ae5c64413bf72bc18d7fc81e1f5761824bc01f49Elliott HughesLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
972b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
9737c0c3793722aea293c45921ef50e4adcdf9645ceMathias AgopianLOCAL_SHARED_LIBRARIES := libc libdl
9741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_WHOLE_STATIC_LIBRARIES := libc_common
9751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source ProjectLOCAL_SYSTEM_SHARED_LIBRARIES :=
976368070454b1349d1fcf29a5d1eb51c869fb538f6Iliyan Malchev
9771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# Don't install on release build
978b74ceb25aae555570df64fa4d4076272733a9a20Vladimir ChtchetkineLOCAL_MODULE_TAGS := eng debug
9791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
9801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
9811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
982b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkineendif	#!user
983b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
984b74ceb25aae555570df64fa4d4076272733a9a20Vladimir Chtchetkine
9851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project# ========================================================
9861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectinclude $(call all-makefiles-under,$(LOCAL_PATH))
987