Add fopen64/freopen64/tmpfile64 aliases.

Our fopen/freopen/tmpfile are already always O_LARGEFILE, but let's add
the aliases for _LARGEFILE_SOURCE compatibility.

Bug: http://b/24807045
Change-Id: I5d99b3ef3c9f27ce70f13313f6a92e96c7f21f80
diff --git a/libc/bionic/tmpfile.cpp b/libc/bionic/tmpfile.cpp
index 602d407..dc142a9 100644
--- a/libc/bionic/tmpfile.cpp
+++ b/libc/bionic/tmpfile.cpp
@@ -112,3 +112,4 @@
   }
   return fp;
 }
+__strong_alias(tmpfile64, tmpfile);
diff --git a/libc/include/stdio.h b/libc/include/stdio.h
index b618091..623995b 100644
--- a/libc/include/stdio.h
+++ b/libc/include/stdio.h
@@ -109,14 +109,11 @@
 int	 fflush(FILE *);
 int	 fgetc(FILE *);
 char	*fgets(char * __restrict, int, FILE * __restrict);
-FILE	*fopen(const char * __restrict , const char * __restrict);
 int	 fprintf(FILE * __restrict , const char * __restrict, ...)
 		__printflike(2, 3);
 int	 fputc(int, FILE *);
 int	 fputs(const char * __restrict, FILE * __restrict);
 size_t	 fread(void * __restrict, size_t, size_t, FILE * __restrict);
-FILE	*freopen(const char * __restrict, const char * __restrict,
-	    FILE * __restrict);
 int	 fscanf(FILE * __restrict, const char * __restrict, ...)
 		__scanflike(2, 3);
 size_t	 fwrite(const void * __restrict, size_t, size_t, FILE * __restrict);
@@ -140,7 +137,6 @@
 int	 setvbuf(FILE * __restrict, char * __restrict, int, size_t);
 int	 sscanf(const char * __restrict, const char * __restrict, ...)
 		__scanflike(2, 3);
-FILE	*tmpfile(void);
 int	 ungetc(int, FILE *);
 int	 vfprintf(FILE * __restrict, const char * __restrict, __va_list)
 		__printflike(2, 0);
@@ -208,6 +204,13 @@
                 int (*)(void*));
 #endif
 
+FILE* fopen(const char* __restrict, const char* __restrict);
+FILE* fopen64(const char* __restrict, const char* __restrict);
+FILE* freopen(const char* __restrict, const char* __restrict, FILE* __restrict);
+FILE* freopen64(const char* __restrict, const char* __restrict, FILE* __restrict);
+FILE* tmpfile(void);
+FILE* tmpfile64(void);
+
 #if __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE
 int	 snprintf(char * __restrict, size_t, const char * __restrict, ...)
 		__printflike(3, 4);
diff --git a/libc/libc.arm.brillo.map b/libc/libc.arm.brillo.map
index 84cd9d1..9251de2 100644
--- a/libc/libc.arm.brillo.map
+++ b/libc/libc.arm.brillo.map
@@ -1226,7 +1226,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1258,6 +1260,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.arm.map b/libc/libc.arm.map
index 001476e..f5ddfd3 100644
--- a/libc/libc.arm.map
+++ b/libc/libc.arm.map
@@ -1226,7 +1226,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1258,6 +1260,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.arm64.map b/libc/libc.arm64.map
index 14f90ad..271460f 100644
--- a/libc/libc.arm64.map
+++ b/libc/libc.arm64.map
@@ -1149,7 +1149,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1180,6 +1182,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index e2aede5..c859d81 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1252,7 +1252,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1284,6 +1286,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.mips.brillo.map b/libc/libc.mips.brillo.map
index ee33d0e..e5376be 100644
--- a/libc/libc.mips.brillo.map
+++ b/libc/libc.mips.brillo.map
@@ -1210,7 +1210,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1242,6 +1244,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.mips.map b/libc/libc.mips.map
index c658460..4902f57 100644
--- a/libc/libc.mips.map
+++ b/libc/libc.mips.map
@@ -1210,7 +1210,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1242,6 +1244,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.mips64.map b/libc/libc.mips64.map
index 14f90ad..271460f 100644
--- a/libc/libc.mips64.map
+++ b/libc/libc.mips64.map
@@ -1149,7 +1149,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1180,6 +1182,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.x86.brillo.map b/libc/libc.x86.brillo.map
index a72fa61..bbf9d57 100644
--- a/libc/libc.x86.brillo.map
+++ b/libc/libc.x86.brillo.map
@@ -1209,7 +1209,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1241,6 +1243,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.x86.map b/libc/libc.x86.map
index 5a7a504..fb0f109 100644
--- a/libc/libc.x86.map
+++ b/libc/libc.x86.map
@@ -1209,7 +1209,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1241,6 +1243,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.x86_64.map b/libc/libc.x86_64.map
index 14f90ad..271460f 100644
--- a/libc/libc.x86_64.map
+++ b/libc/libc.x86_64.map
@@ -1149,7 +1149,9 @@
     __write_chk;
     fgetpos64;
     fileno_unlocked;
+    fopen64;
     freeifaddrs;
+    freopen64;
     fseeko64;
     fsetpos64;
     ftello64;
@@ -1180,6 +1182,7 @@
     scandirat;
     scandirat64;
     strchrnul;
+    tmpfile64;
 } LIBC;
 
 LIBC_PRIVATE {
diff --git a/libc/stdio/stdio.cpp b/libc/stdio/stdio.cpp
index 16cbd55..1c31a27 100644
--- a/libc/stdio/stdio.cpp
+++ b/libc/stdio/stdio.cpp
@@ -222,6 +222,7 @@
 
   return fp;
 }
+__strong_alias(fopen64, fopen);
 
 FILE* fdopen(int fd, const char* mode) {
   int oflags;
@@ -358,6 +359,7 @@
   if (oflags & O_APPEND) __sseek64(fp, 0, SEEK_END);
   return fp;
 }
+__strong_alias(freopen64, freopen);
 
 int fclose(FILE* fp) {
   if (fp->_flags == 0) {
diff --git a/libc/tools/check-symbols-glibc.py b/libc/tools/check-symbols-glibc.py
index 27b92c4..c5dbdcf 100755
--- a/libc/tools/check-symbols-glibc.py
+++ b/libc/tools/check-symbols-glibc.py
@@ -79,6 +79,7 @@
   'fgetln',
   'fpurge',
   'funopen',
+  'funopen64',
   'gamma_r',
   'gammaf_r',
   'getprogname',