Remove unnecessary 'extern's.
Change-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03
diff --git a/libc/include/android/dlext.h b/libc/include/android/dlext.h
index 37e4cde..ca3bd25 100644
--- a/libc/include/android/dlext.h
+++ b/libc/include/android/dlext.h
@@ -129,7 +129,7 @@
struct android_namespace_t* library_namespace;
} android_dlextinfo;
-extern void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo)
+void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo)
__INTRODUCED_IN(21);
__END_DECLS
diff --git a/libc/include/android/legacy_signal_inlines.h b/libc/include/android/legacy_signal_inlines.h
index edc6259..8ba7894 100644
--- a/libc/include/android/legacy_signal_inlines.h
+++ b/libc/include/android/legacy_signal_inlines.h
@@ -37,7 +37,7 @@
__BEGIN_DECLS
-extern sighandler_t bsd_signal(int signum, sighandler_t handler) __REMOVED_IN(21);
+sighandler_t bsd_signal(int signum, sighandler_t handler) __REMOVED_IN(21);
#if __ANDROID_API__ < 21
diff --git a/libc/include/bits/fcntl.h b/libc/include/bits/fcntl.h
index 90f933c..604d35a 100644
--- a/libc/include/bits/fcntl.h
+++ b/libc/include/bits/fcntl.h
@@ -33,7 +33,7 @@
__BEGIN_DECLS
-extern int fcntl(int, int, ...);
+int fcntl(int, int, ...);
__END_DECLS
diff --git a/libc/include/bits/ioctl.h b/libc/include/bits/ioctl.h
index 788a4f7..53116ca 100644
--- a/libc/include/bits/ioctl.h
+++ b/libc/include/bits/ioctl.h
@@ -33,7 +33,7 @@
__BEGIN_DECLS
-extern int ioctl(int, int, ...);
+int ioctl(int, int, ...);
__END_DECLS
diff --git a/libc/include/dirent.h b/libc/include/dirent.h
index db8a520..3f9ad18 100644
--- a/libc/include/dirent.h
+++ b/libc/include/dirent.h
@@ -68,22 +68,22 @@
typedef struct DIR DIR;
-extern DIR* opendir(const char*);
-extern DIR* fdopendir(int);
-extern struct dirent* readdir(DIR*);
-extern struct dirent64* readdir64(DIR*) __INTRODUCED_IN(21);
-extern int readdir_r(DIR*, struct dirent*, struct dirent**);
-extern int readdir64_r(DIR*, struct dirent64*, struct dirent64**) __INTRODUCED_IN(21);
-extern int closedir(DIR*);
-extern void rewinddir(DIR*);
-extern void seekdir(DIR*, long) __INTRODUCED_IN(23);
-extern long telldir(DIR*) __INTRODUCED_IN(23);
-extern int dirfd(DIR*);
-extern int alphasort(const struct dirent**, const struct dirent**);
-extern int alphasort64(const struct dirent64**, const struct dirent64**) __INTRODUCED_IN(21);
-extern int scandir64(const char*, struct dirent64***, int (*)(const struct dirent64*),
- int (*)(const struct dirent64**, const struct dirent64**)) __INTRODUCED_IN(21);
-extern int scandir(const char*, struct dirent***, int (*)(const struct dirent*), int (*)(const struct dirent**, const struct dirent**));
+DIR* opendir(const char*);
+DIR* fdopendir(int);
+struct dirent* readdir(DIR*);
+struct dirent64* readdir64(DIR*) __INTRODUCED_IN(21);
+int readdir_r(DIR*, struct dirent*, struct dirent**);
+int readdir64_r(DIR*, struct dirent64*, struct dirent64**) __INTRODUCED_IN(21);
+int closedir(DIR*);
+void rewinddir(DIR*);
+void seekdir(DIR*, long) __INTRODUCED_IN(23);
+long telldir(DIR*) __INTRODUCED_IN(23);
+int dirfd(DIR*);
+int alphasort(const struct dirent**, const struct dirent**);
+int alphasort64(const struct dirent64**, const struct dirent64**) __INTRODUCED_IN(21);
+int scandir64(const char*, struct dirent64***, int (*)(const struct dirent64*),
+ int (*)(const struct dirent64**, const struct dirent64**)) __INTRODUCED_IN(21);
+int scandir(const char*, struct dirent***, int (*)(const struct dirent*), int (*)(const struct dirent**, const struct dirent**));
#if defined(__USE_GNU)
int scandirat64(int, const char*, struct dirent64***, int (*)(const struct dirent64*),
diff --git a/libc/include/errno.h b/libc/include/errno.h
index 2ff1369..8b2e8ed 100644
--- a/libc/include/errno.h
+++ b/libc/include/errno.h
@@ -41,7 +41,7 @@
#endif
/* internal function returning the address of the thread-specific errno */
-extern volatile int* __errno(void) __pure2;
+volatile int* __errno(void) __pure2;
/* a macro expanding to the errno l-value */
#define errno (*__errno())
diff --git a/libc/include/fcntl.h b/libc/include/fcntl.h
index 4aa2ea0..872a727 100644
--- a/libc/include/fcntl.h
+++ b/libc/include/fcntl.h
@@ -63,38 +63,38 @@
#define SYNC_FILE_RANGE_WRITE 2
#define SYNC_FILE_RANGE_WAIT_AFTER 4
-extern int creat(const char*, mode_t);
-extern int creat64(const char*, mode_t) __INTRODUCED_IN(21);
-extern int openat(int, const char*, int, ...);
-extern int openat64(int, const char*, int, ...) __INTRODUCED_IN(21);
-extern int open(const char*, int, ...);
-extern int open64(const char*, int, ...) __INTRODUCED_IN(21);
-extern ssize_t splice(int, off64_t*, int, off64_t*, size_t, unsigned int) __INTRODUCED_IN(21);
-extern ssize_t tee(int, int, size_t, unsigned int) __INTRODUCED_IN(21);
-extern ssize_t vmsplice(int, const struct iovec*, size_t, unsigned int) __INTRODUCED_IN(21);
+int creat(const char*, mode_t);
+int creat64(const char*, mode_t) __INTRODUCED_IN(21);
+int openat(int, const char*, int, ...);
+int openat64(int, const char*, int, ...) __INTRODUCED_IN(21);
+int open(const char*, int, ...);
+int open64(const char*, int, ...) __INTRODUCED_IN(21);
+ssize_t splice(int, off64_t*, int, off64_t*, size_t, unsigned int) __INTRODUCED_IN(21);
+ssize_t tee(int, int, size_t, unsigned int) __INTRODUCED_IN(21);
+ssize_t vmsplice(int, const struct iovec*, size_t, unsigned int) __INTRODUCED_IN(21);
#if defined(__USE_FILE_OFFSET64)
-extern int fallocate(int, int, off_t, off_t) __RENAME(fallocate64) __INTRODUCED_IN(21);
-extern int posix_fadvise(int, off_t, off_t, int) __RENAME(posix_fadvise64) __INTRODUCED_IN(21);
-extern int posix_fallocate(int, off_t, off_t) __RENAME(posix_fallocate) __INTRODUCED_IN(21);
+int fallocate(int, int, off_t, off_t) __RENAME(fallocate64) __INTRODUCED_IN(21);
+int posix_fadvise(int, off_t, off_t, int) __RENAME(posix_fadvise64) __INTRODUCED_IN(21);
+int posix_fallocate(int, off_t, off_t) __RENAME(posix_fallocate) __INTRODUCED_IN(21);
#else
-extern int fallocate(int, int, off_t, off_t) __INTRODUCED_IN(21);
-extern int posix_fadvise(int, off_t, off_t, int) __INTRODUCED_IN(21);
-extern int posix_fallocate(int, off_t, off_t) __INTRODUCED_IN(21);
+int fallocate(int, int, off_t, off_t) __INTRODUCED_IN(21);
+int posix_fadvise(int, off_t, off_t, int) __INTRODUCED_IN(21);
+int posix_fallocate(int, off_t, off_t) __INTRODUCED_IN(21);
#endif
-extern int fallocate64(int, int, off64_t, off64_t) __INTRODUCED_IN(21);
-extern int posix_fadvise64(int, off64_t, off64_t, int) __INTRODUCED_IN(21);
-extern int posix_fallocate64(int, off64_t, off64_t) __INTRODUCED_IN(21);
+int fallocate64(int, int, off64_t, off64_t) __INTRODUCED_IN(21);
+int posix_fadvise64(int, off64_t, off64_t, int) __INTRODUCED_IN(21);
+int posix_fallocate64(int, off64_t, off64_t) __INTRODUCED_IN(21);
#if defined(__USE_GNU)
ssize_t readahead(int, off64_t, size_t) __INTRODUCED_IN(16);
int sync_file_range(int, off64_t, off64_t, unsigned int) __INTRODUCED_IN_FUTURE;
#endif
-extern int __open_2(const char*, int) __INTRODUCED_IN(17);
-extern int __open_real(const char*, int, ...) __RENAME(open);
-extern int __openat_2(int, const char*, int) __INTRODUCED_IN(17);
-extern int __openat_real(int, const char*, int, ...) __RENAME(openat);
+int __open_2(const char*, int) __INTRODUCED_IN(17);
+int __open_real(const char*, int, ...) __RENAME(open);
+int __openat_2(int, const char*, int) __INTRODUCED_IN(17);
+int __openat_real(int, const char*, int, ...) __RENAME(openat);
__errordecl(__creat_missing_mode, "called with O_CREAT, but missing mode");
__errordecl(__creat_too_many_args, "too many arguments");
diff --git a/libc/include/fnmatch.h b/libc/include/fnmatch.h
index 772b4ef..1a5348b 100644
--- a/libc/include/fnmatch.h
+++ b/libc/include/fnmatch.h
@@ -44,9 +44,8 @@
#define FNM_IGNORECASE FNM_CASEFOLD
#define FNM_FILE_NAME FNM_PATHNAME
-extern int fnmatch(const char *pattern, const char *string, int flags);
+int fnmatch(const char* pattern, const char* string, int flags);
__END_DECLS
#endif /* _FNMATCH_H */
-
diff --git a/libc/include/libgen.h b/libc/include/libgen.h
index 4d22d15..f864ee1 100644
--- a/libc/include/libgen.h
+++ b/libc/include/libgen.h
@@ -42,17 +42,17 @@
* Note that this has the wrong argument cv-qualifiers, but doesn't modify its
* input and uses thread-local storage for the result if necessary.
*/
-extern char* __posix_basename(const char*) __RENAME(basename);
+char* __posix_basename(const char*) __RENAME(basename);
#define basename __posix_basename
/* This has the wrong argument cv-qualifiers, but doesn't modify its input and uses thread-local storage for the result if necessary. */
-extern char* dirname(const char*);
+char* dirname(const char*);
#if !defined(__LP64__)
/* These non-standard functions are not needed on Android; basename and dirname use thread-local storage. */
-extern int dirname_r(const char*, char*, size_t);
-extern int basename_r(const char*, char*, size_t);
+int dirname_r(const char*, char*, size_t);
+int basename_r(const char*, char*, size_t);
#endif
__END_DECLS
diff --git a/libc/include/malloc.h b/libc/include/malloc.h
index d9bb315..07d7896 100644
--- a/libc/include/malloc.h
+++ b/libc/include/malloc.h
@@ -23,13 +23,13 @@
__BEGIN_DECLS
-extern void* malloc(size_t byte_count) __mallocfunc __wur;
-extern void* calloc(size_t item_count, size_t item_size) __mallocfunc __wur;
-extern void* realloc(void* p, size_t byte_count) __wur;
-extern void free(void* p);
+void* malloc(size_t byte_count) __mallocfunc __wur;
+void* calloc(size_t item_count, size_t item_size) __mallocfunc __wur;
+void* realloc(void* p, size_t byte_count) __wur;
+void free(void* p);
-extern void* memalign(size_t alignment, size_t byte_count) __mallocfunc __wur;
-extern size_t malloc_usable_size(const void* p) __INTRODUCED_IN(17);
+void* memalign(size_t alignment, size_t byte_count) __mallocfunc __wur;
+size_t malloc_usable_size(const void* p) __INTRODUCED_IN(17);
#ifndef STRUCT_MALLINFO_DECLARED
#define STRUCT_MALLINFO_DECLARED 1
@@ -47,7 +47,7 @@
};
#endif /* STRUCT_MALLINFO_DECLARED */
-extern struct mallinfo mallinfo(void);
+struct mallinfo mallinfo(void);
/*
* XML structure for malloc_info(3) is in the following format:
@@ -68,7 +68,7 @@
* <!-- more heaps -->
* </malloc>
*/
-extern int malloc_info(int, FILE*) __INTRODUCED_IN(23);
+int malloc_info(int, FILE*) __INTRODUCED_IN(23);
__END_DECLS
diff --git a/libc/include/sched.h b/libc/include/sched.h
index 7cb11a7..d407202 100644
--- a/libc/include/sched.h
+++ b/libc/include/sched.h
@@ -41,22 +41,22 @@
int sched_priority;
};
-extern int sched_setscheduler(pid_t, int, const struct sched_param*);
-extern int sched_getscheduler(pid_t);
-extern int sched_yield(void);
-extern int sched_get_priority_max(int);
-extern int sched_get_priority_min(int);
-extern int sched_setparam(pid_t, const struct sched_param*);
-extern int sched_getparam(pid_t, struct sched_param*);
-extern int sched_rr_get_interval(pid_t, struct timespec*);
+int sched_setscheduler(pid_t, int, const struct sched_param*);
+int sched_getscheduler(pid_t);
+int sched_yield(void);
+int sched_get_priority_max(int);
+int sched_get_priority_min(int);
+int sched_setparam(pid_t, const struct sched_param*);
+int sched_getparam(pid_t, struct sched_param*);
+int sched_rr_get_interval(pid_t, struct timespec*);
#if defined(__USE_GNU)
-extern int clone(int (*)(void*), void*, int, void*, ...) __INTRODUCED_IN_ARM(9)
+int clone(int (*)(void*), void*, int, void*, ...) __INTRODUCED_IN_ARM(9)
__INTRODUCED_IN_MIPS(12) __INTRODUCED_IN_X86(17);
-extern int unshare(int) __INTRODUCED_IN(17);
-extern int sched_getcpu(void) __INTRODUCED_IN(12);
-extern int setns(int, int) __INTRODUCED_IN(21);
+int unshare(int) __INTRODUCED_IN(17);
+int sched_getcpu(void) __INTRODUCED_IN(12);
+int setns(int, int) __INTRODUCED_IN(21);
#ifdef __LP64__
#define CPU_SETSIZE 1024
@@ -73,8 +73,8 @@
__CPU_BITTYPE __bits[ CPU_SETSIZE / __CPU_BITS ];
} cpu_set_t;
-extern int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set) __INTRODUCED_IN(12);
-extern int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set) __INTRODUCED_IN(12);
+int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set) __INTRODUCED_IN(12);
+int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set) __INTRODUCED_IN(12);
#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t), set)
#define CPU_SET(cpu, set) CPU_SET_S(cpu, sizeof(cpu_set_t), set)
@@ -97,8 +97,8 @@
#define CPU_ALLOC(count) __sched_cpualloc((count))
#define CPU_FREE(set) __sched_cpufree((set))
-extern cpu_set_t* __sched_cpualloc(size_t count) __INTRODUCED_IN(12);
-extern void __sched_cpufree(cpu_set_t* set) __INTRODUCED_IN(12);
+cpu_set_t* __sched_cpualloc(size_t count) __INTRODUCED_IN(12);
+void __sched_cpufree(cpu_set_t* set) __INTRODUCED_IN(12);
#define CPU_ZERO_S(setsize, set) __builtin_memset(set, 0, setsize)
@@ -142,7 +142,7 @@
#define CPU_COUNT_S(setsize, set) __sched_cpucount((setsize), (set))
-extern int __sched_cpucount(size_t setsize, cpu_set_t* set) __INTRODUCED_IN(12);
+int __sched_cpucount(size_t setsize, cpu_set_t* set) __INTRODUCED_IN(12);
#endif /* __USE_GNU */
diff --git a/libc/include/stdlib.h b/libc/include/stdlib.h
index 28c2132..f6c3baf 100644
--- a/libc/include/stdlib.h
+++ b/libc/include/stdlib.h
@@ -41,58 +41,57 @@
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
-extern __noreturn void abort(void);
-extern __noreturn void exit(int);
-extern __noreturn void _Exit(int) __INTRODUCED_IN(21);
-extern int atexit(void (*)(void));
+__noreturn void abort(void);
+__noreturn void exit(int);
+__noreturn void _Exit(int) __INTRODUCED_IN(21);
+int atexit(void (*)(void));
int at_quick_exit(void (*)(void)) __INTRODUCED_IN(21);
void quick_exit(int) __noreturn __INTRODUCED_IN(21);
-extern char* getenv(const char*);
-extern int putenv(char*);
-extern int setenv(const char*, const char*, int);
-extern int unsetenv(const char*);
-extern int clearenv(void);
+char* getenv(const char*);
+int putenv(char*);
+int setenv(const char*, const char*, int);
+int unsetenv(const char*);
+int clearenv(void);
-extern char* mkdtemp(char*);
-extern char* mktemp(char*) __attribute__((deprecated("mktemp is unsafe, use mkstemp or tmpfile instead")));
+char* mkdtemp(char*);
+char* mktemp(char*) __attribute__((deprecated("mktemp is unsafe, use mkstemp or tmpfile instead")));
-extern int mkostemp64(char*, int) __INTRODUCED_IN(23);
-extern int mkostemp(char*, int) __INTRODUCED_IN(23);
-extern int mkostemps64(char*, int, int) __INTRODUCED_IN(23);
-extern int mkostemps(char*, int, int) __INTRODUCED_IN(23);
-extern int mkstemp64(char*) __INTRODUCED_IN(21);
-extern int mkstemp(char*);
-extern int mkstemps64(char*, int) __INTRODUCED_IN(23);
-extern int mkstemps(char*, int);
+int mkostemp64(char*, int) __INTRODUCED_IN(23);
+int mkostemp(char*, int) __INTRODUCED_IN(23);
+int mkostemps64(char*, int, int) __INTRODUCED_IN(23);
+int mkostemps(char*, int, int) __INTRODUCED_IN(23);
+int mkstemp64(char*) __INTRODUCED_IN(21);
+int mkstemp(char*);
+int mkstemps64(char*, int) __INTRODUCED_IN(23);
+int mkstemps(char*, int);
-extern long strtol(const char *, char **, int);
-extern long long strtoll(const char *, char **, int);
-extern unsigned long strtoul(const char *, char **, int);
-extern unsigned long long strtoull(const char *, char **, int);
+long strtol(const char *, char **, int);
+long long strtoll(const char *, char **, int);
+unsigned long strtoul(const char *, char **, int);
+unsigned long long strtoull(const char *, char **, int);
-extern int posix_memalign(void** memptr, size_t alignment, size_t size) __INTRODUCED_IN(16);
+int posix_memalign(void** memptr, size_t alignment, size_t size) __INTRODUCED_IN(16);
-extern double strtod(const char*, char**);
-extern long double strtold(const char*, char**) __INTRODUCED_IN(21);
+double strtod(const char*, char**);
+long double strtold(const char*, char**) __INTRODUCED_IN(21);
-extern long double strtold_l(const char*, char**, locale_t) __INTRODUCED_IN(21);
-extern long long strtoll_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
-extern unsigned long long strtoull_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
+long double strtold_l(const char*, char**, locale_t) __INTRODUCED_IN(21);
+long long strtoll_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
+unsigned long long strtoull_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
-extern int atoi(const char*) __purefunc;
-extern long atol(const char*) __purefunc;
-extern long long atoll(const char*) __purefunc;
+int atoi(const char*) __purefunc;
+long atol(const char*) __purefunc;
+long long atoll(const char*) __purefunc;
-extern char * realpath(const char *path, char *resolved);
-extern int system(const char *string);
+char* realpath(const char* path, char* resolved);
+int system(const char* string);
-extern void * bsearch(const void *key, const void *base0,
- size_t nmemb, size_t size,
- int (*compar)(const void *, const void *));
+void* bsearch(const void* key, const void* base0, size_t nmemb, size_t size,
+ int (*compar)(const void*, const void*));
-extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
+void qsort(void*, size_t, size_t, int (*)(const void*, const void*));
uint32_t arc4random(void);
uint32_t arc4random_uniform(uint32_t);
@@ -128,25 +127,25 @@
int rem;
} div_t;
-extern div_t div(int, int) __pure2;
+div_t div(int, int) __pure2;
typedef struct {
long int quot;
long int rem;
} ldiv_t;
-extern ldiv_t ldiv(long, long) __pure2;
+ldiv_t ldiv(long, long) __pure2;
typedef struct {
long long int quot;
long long int rem;
} lldiv_t;
-extern lldiv_t lldiv(long long, long long) __pure2;
+lldiv_t lldiv(long long, long long) __pure2;
/* BSD compatibility. */
-extern const char* getprogname(void) __INTRODUCED_IN(21);
-extern void setprogname(const char*) __INTRODUCED_IN(21);
+const char* getprogname(void) __INTRODUCED_IN(21);
+void setprogname(const char*) __INTRODUCED_IN(21);
int mblen(const char*, size_t) __INTRODUCED_IN_FUTURE;
size_t mbstowcs(wchar_t*, const char*, size_t);
@@ -154,12 +153,12 @@
int wctomb(char*, wchar_t) __INTRODUCED_IN(21);
size_t wcstombs(char*, const wchar_t*, size_t);
-extern size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
+size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
#define MB_CUR_MAX __ctype_get_mb_cur_max()
#if defined(__BIONIC_FORTIFY)
-extern char* __realpath_real(const char*, char*) __RENAME(realpath);
+char* __realpath_real(const char*, char*) __RENAME(realpath);
__errordecl(__realpath_size_error, "realpath output parameter must be NULL or a >= PATH_MAX bytes buffer");
#if !defined(__clang__)
diff --git a/libc/include/sys/capability.h b/libc/include/sys/capability.h
index 7718a6c..b9a40b3 100644
--- a/libc/include/sys/capability.h
+++ b/libc/include/sys/capability.h
@@ -34,8 +34,8 @@
__BEGIN_DECLS
-extern int capget(cap_user_header_t hdrp, cap_user_data_t datap);
-extern int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
+int capget(cap_user_header_t hdrp, cap_user_data_t datap);
+int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
__END_DECLS
diff --git a/libc/include/sys/eventfd.h b/libc/include/sys/eventfd.h
index 4c8da0c..6b9749a 100644
--- a/libc/include/sys/eventfd.h
+++ b/libc/include/sys/eventfd.h
@@ -40,10 +40,10 @@
/* type of event counter */
typedef uint64_t eventfd_t;
-extern int eventfd(unsigned int initial_value, int flags);
+int eventfd(unsigned int initial_value, int flags);
-extern int eventfd_read(int fd, eventfd_t* value);
-extern int eventfd_write(int fd, eventfd_t value);
+int eventfd_read(int fd, eventfd_t* value);
+int eventfd_write(int fd, eventfd_t value);
__END_DECLS
diff --git a/libc/include/sys/fsuid.h b/libc/include/sys/fsuid.h
index 223db90..e4d9ebc 100644
--- a/libc/include/sys/fsuid.h
+++ b/libc/include/sys/fsuid.h
@@ -34,8 +34,8 @@
__BEGIN_DECLS
-extern int setfsuid(uid_t) __INTRODUCED_IN(21);
-extern int setfsgid(gid_t) __INTRODUCED_IN(21);
+int setfsuid(uid_t) __INTRODUCED_IN(21);
+int setfsgid(gid_t) __INTRODUCED_IN(21);
__END_DECLS
diff --git a/libc/include/sys/inotify.h b/libc/include/sys/inotify.h
index dcf0e1d..2e99144 100644
--- a/libc/include/sys/inotify.h
+++ b/libc/include/sys/inotify.h
@@ -40,10 +40,10 @@
#define IN_CLOEXEC O_CLOEXEC
#define IN_NONBLOCK O_NONBLOCK
-extern int inotify_init(void);
-extern int inotify_init1(int) __INTRODUCED_IN(21);
-extern int inotify_add_watch(int, const char*, uint32_t);
-extern int inotify_rm_watch(int, uint32_t);
+int inotify_init(void);
+int inotify_init1(int) __INTRODUCED_IN(21);
+int inotify_add_watch(int, const char*, uint32_t);
+int inotify_rm_watch(int, uint32_t);
__END_DECLS
diff --git a/libc/include/sys/ipc.h b/libc/include/sys/ipc.h
index c0ae0ba..99bc5db 100644
--- a/libc/include/sys/ipc.h
+++ b/libc/include/sys/ipc.h
@@ -25,6 +25,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#ifndef _SYS_IPC_H
#define _SYS_IPC_H
@@ -34,7 +35,7 @@
__BEGIN_DECLS
-extern key_t ftok(const char* path, int id);
+key_t ftok(const char* path, int id);
__END_DECLS
diff --git a/libc/include/sys/klog.h b/libc/include/sys/klog.h
index acfaa20..47eb3a4 100644
--- a/libc/include/sys/klog.h
+++ b/libc/include/sys/klog.h
@@ -46,7 +46,7 @@
#define KLOG_SIZE_UNREAD 9
#define KLOG_SIZE_BUFFER 10
-extern int klogctl(int, char *, int);
+int klogctl(int, char *, int);
__END_DECLS
diff --git a/libc/include/sys/mount.h b/libc/include/sys/mount.h
index fd7cf17..26c0e0f 100644
--- a/libc/include/sys/mount.h
+++ b/libc/include/sys/mount.h
@@ -41,9 +41,9 @@
#define MNT_EXPIRE 4
#define UMOUNT_NOFOLLOW 8
-extern int mount(const char*, const char*, const char*, unsigned long, const void*);
-extern int umount(const char*);
-extern int umount2(const char*, int);
+int mount(const char*, const char*, const char*, unsigned long, const void*);
+int umount(const char*);
+int umount2(const char*, int);
__END_DECLS
diff --git a/libc/include/sys/personality.h b/libc/include/sys/personality.h
index 15a5e68..6f3a3c9 100644
--- a/libc/include/sys/personality.h
+++ b/libc/include/sys/personality.h
@@ -34,7 +34,7 @@
__BEGIN_DECLS
-extern int personality(unsigned int persona) __INTRODUCED_IN(15);
+int personality(unsigned int persona) __INTRODUCED_IN(15);
__END_DECLS
diff --git a/libc/include/sys/prctl.h b/libc/include/sys/prctl.h
index d96b8b6..742ed57 100644
--- a/libc/include/sys/prctl.h
+++ b/libc/include/sys/prctl.h
@@ -35,7 +35,7 @@
__BEGIN_DECLS
-extern int prctl(int option, ...);
+int prctl(int option, ...);
__END_DECLS
diff --git a/libc/include/sys/reboot.h b/libc/include/sys/reboot.h
index 7d202f7..df4739e 100644
--- a/libc/include/sys/reboot.h
+++ b/libc/include/sys/reboot.h
@@ -25,6 +25,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#ifndef _SYS_REBOOT_H_
#define _SYS_REBOOT_H_
@@ -41,7 +42,7 @@
#define RB_DISABLE_CAD LINUX_REBOOT_CMD_CAD_OFF
#define RB_POWER_OFF LINUX_REBOOT_CMD_POWER_OFF
-extern int reboot(int reboot_type);
+int reboot(int reboot_type);
__END_DECLS
diff --git a/libc/include/sys/resource.h b/libc/include/sys/resource.h
index 3187420..248310e 100644
--- a/libc/include/sys/resource.h
+++ b/libc/include/sys/resource.h
@@ -42,20 +42,20 @@
typedef unsigned long rlim_t;
-extern int getrlimit(int, struct rlimit*);
-extern int setrlimit(int, const struct rlimit*);
+int getrlimit(int, struct rlimit*);
+int setrlimit(int, const struct rlimit*);
-extern int getrlimit64(int, struct rlimit64*) __INTRODUCED_IN(21);
-extern int setrlimit64(int, const struct rlimit64*) __INTRODUCED_IN(21);
+int getrlimit64(int, struct rlimit64*) __INTRODUCED_IN(21);
+int setrlimit64(int, const struct rlimit64*) __INTRODUCED_IN(21);
-extern int getpriority(int, int);
-extern int setpriority(int, int, int);
+int getpriority(int, int);
+int setpriority(int, int, int);
-extern int getrusage(int, struct rusage*);
+int getrusage(int, struct rusage*);
-extern int prlimit(pid_t, int, const struct rlimit*, struct rlimit*) __INTRODUCED_IN_32(24)
+int prlimit(pid_t, int, const struct rlimit*, struct rlimit*) __INTRODUCED_IN_32(24)
__INTRODUCED_IN_64(21);
-extern int prlimit64(pid_t, int, const struct rlimit64*, struct rlimit64*) __INTRODUCED_IN(21);
+int prlimit64(pid_t, int, const struct rlimit64*, struct rlimit64*) __INTRODUCED_IN(21);
__END_DECLS
diff --git a/libc/include/sys/select.h b/libc/include/sys/select.h
index 96d735e..0f454b0 100644
--- a/libc/include/sys/select.h
+++ b/libc/include/sys/select.h
@@ -57,9 +57,9 @@
} \
} while (0)
-extern void __FD_CLR_chk(int, fd_set*, size_t) __INTRODUCED_IN(21);
-extern void __FD_SET_chk(int, fd_set*, size_t) __INTRODUCED_IN(21);
-extern int __FD_ISSET_chk(int, fd_set*, size_t) __INTRODUCED_IN(21);
+void __FD_CLR_chk(int, fd_set*, size_t) __INTRODUCED_IN(21);
+void __FD_SET_chk(int, fd_set*, size_t) __INTRODUCED_IN(21);
+int __FD_ISSET_chk(int, fd_set*, size_t) __INTRODUCED_IN(21);
#if defined(__BIONIC_FORTIFY)
#define FD_CLR(fd, set) __FD_CLR_chk(fd, set, __bos(set))
@@ -71,8 +71,8 @@
#define FD_ISSET(fd, set) ((__FDS_BITS(set)[__FDELT(fd)] & __FDMASK(fd)) != 0)
#endif /* defined(__BIONIC_FORTIFY) */
-extern int select(int, fd_set*, fd_set*, fd_set*, struct timeval*);
-extern int pselect(int, fd_set*, fd_set*, fd_set*, const struct timespec*, const sigset_t*);
+int select(int, fd_set*, fd_set*, fd_set*, struct timeval*);
+int pselect(int, fd_set*, fd_set*, fd_set*, const struct timespec*, const sigset_t*);
__END_DECLS
diff --git a/libc/include/sys/sendfile.h b/libc/include/sys/sendfile.h
index f90498a..3ac8fdf 100644
--- a/libc/include/sys/sendfile.h
+++ b/libc/include/sys/sendfile.h
@@ -35,12 +35,12 @@
__BEGIN_DECLS
#if defined(__USE_FILE_OFFSET64)
-extern ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count) __RENAME(sendfile64)
+ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count) __RENAME(sendfile64)
__INTRODUCED_IN(21);
#else
-extern ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count);
+ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count);
#endif
-extern ssize_t sendfile64(int out_fd, int in_fd, off64_t* offset, size_t count) __INTRODUCED_IN(21);
+ssize_t sendfile64(int out_fd, int in_fd, off64_t* offset, size_t count) __INTRODUCED_IN(21);
__END_DECLS
diff --git a/libc/include/sys/signalfd.h b/libc/include/sys/signalfd.h
index 41036b0..a21c57b 100644
--- a/libc/include/sys/signalfd.h
+++ b/libc/include/sys/signalfd.h
@@ -35,7 +35,7 @@
__BEGIN_DECLS
-extern int signalfd(int fd, const sigset_t* _Nonnull mask, int flags) __INTRODUCED_IN(18);
+int signalfd(int fd, const sigset_t* _Nonnull mask, int flags) __INTRODUCED_IN(18);
__END_DECLS
diff --git a/libc/include/sys/socket.h b/libc/include/sys/socket.h
index 9736ba8..40b9d37 100644
--- a/libc/include/sys/socket.h
+++ b/libc/include/sys/socket.h
@@ -287,16 +287,16 @@
__socketcall int socket(int, int, int);
__socketcall int socketpair(int, int, int, int*);
-extern ssize_t send(int, const void*, size_t, int);
-extern ssize_t recv(int, void*, size_t, int);
+ssize_t send(int, const void*, size_t, int);
+ssize_t recv(int, void*, size_t, int);
__socketcall ssize_t sendto(int, const void*, size_t, int, const struct sockaddr*, socklen_t);
__socketcall ssize_t recvfrom(int, void*, size_t, int, const struct sockaddr*, socklen_t*);
__errordecl(__recvfrom_error, "recvfrom called with size bigger than buffer");
-extern ssize_t __recvfrom_chk(int, void*, size_t, size_t, int, const struct sockaddr*, socklen_t*)
+ssize_t __recvfrom_chk(int, void*, size_t, size_t, int, const struct sockaddr*, socklen_t*)
__INTRODUCED_IN(21);
-extern ssize_t __recvfrom_real(int, void*, size_t, int, const struct sockaddr*, socklen_t*) __RENAME(recvfrom);
+ssize_t __recvfrom_real(int, void*, size_t, int, const struct sockaddr*, socklen_t*) __RENAME(recvfrom);
#if defined(__BIONIC_FORTIFY)
diff --git a/libc/include/sys/stat.h b/libc/include/sys/stat.h
index a65f27a..4397a0d 100644
--- a/libc/include/sys/stat.h
+++ b/libc/include/sys/stat.h
@@ -141,24 +141,24 @@
#define S_IEXEC S_IXUSR
#endif
-extern int chmod(const char*, mode_t);
-extern int fchmod(int, mode_t);
-extern int mkdir(const char*, mode_t);
+int chmod(const char*, mode_t);
+int fchmod(int, mode_t);
+int mkdir(const char*, mode_t);
-extern int fstat(int, struct stat*);
-extern int fstat64(int, struct stat64*) __INTRODUCED_IN(21);
-extern int fstatat(int, const char*, struct stat*, int);
-extern int fstatat64(int, const char*, struct stat64*, int) __INTRODUCED_IN(21);
-extern int lstat(const char*, struct stat*);
-extern int lstat64(const char*, struct stat64*) __INTRODUCED_IN(21);
-extern int stat(const char*, struct stat*);
-extern int stat64(const char*, struct stat64*) __INTRODUCED_IN(21);
+int fstat(int, struct stat*);
+int fstat64(int, struct stat64*) __INTRODUCED_IN(21);
+int fstatat(int, const char*, struct stat*, int);
+int fstatat64(int, const char*, struct stat64*, int) __INTRODUCED_IN(21);
+int lstat(const char*, struct stat*);
+int lstat64(const char*, struct stat64*) __INTRODUCED_IN(21);
+int stat(const char*, struct stat*);
+int stat64(const char*, struct stat64*) __INTRODUCED_IN(21);
-extern int mknod(const char*, mode_t, dev_t);
-extern mode_t umask(mode_t);
+int mknod(const char*, mode_t, dev_t);
+mode_t umask(mode_t);
-extern mode_t __umask_chk(mode_t) __INTRODUCED_IN(18);
-extern mode_t __umask_real(mode_t) __RENAME(umask);
+mode_t __umask_chk(mode_t) __INTRODUCED_IN(18);
+mode_t __umask_real(mode_t) __RENAME(umask);
__errordecl(__umask_invalid_mode, "umask called with invalid mode");
#if defined(__BIONIC_FORTIFY)
@@ -183,17 +183,17 @@
// Implemented as a static inline before 21.
#endif
-extern int mkfifoat(int, const char*, mode_t) __INTRODUCED_IN(23);
+int mkfifoat(int, const char*, mode_t) __INTRODUCED_IN(23);
-extern int fchmodat(int, const char*, mode_t, int);
-extern int mkdirat(int, const char*, mode_t);
-extern int mknodat(int, const char*, mode_t, dev_t) __INTRODUCED_IN(21);
+int fchmodat(int, const char*, mode_t, int);
+int mkdirat(int, const char*, mode_t);
+int mknodat(int, const char*, mode_t, dev_t) __INTRODUCED_IN(21);
#define UTIME_NOW ((1L << 30) - 1L)
#define UTIME_OMIT ((1L << 30) - 2L)
-extern int utimensat(int fd, const char* path, const struct timespec times[2], int flags)
+int utimensat(int fd, const char* path, const struct timespec times[2], int flags)
__INTRODUCED_IN(12);
-extern int futimens(int fd, const struct timespec times[2]) __INTRODUCED_IN(19);
+int futimens(int fd, const struct timespec times[2]) __INTRODUCED_IN(19);
__END_DECLS
diff --git a/libc/include/sys/statvfs.h b/libc/include/sys/statvfs.h
index f6b9803..af1b9c0 100644
--- a/libc/include/sys/statvfs.h
+++ b/libc/include/sys/statvfs.h
@@ -59,12 +59,12 @@
#define ST_NODIRATIME 0x0800
#define ST_RELATIME 0x1000
-extern int statvfs(const char* __restrict _Nonnull, struct statvfs* __restrict _Nonnull)
+int statvfs(const char* __restrict _Nonnull, struct statvfs* __restrict _Nonnull)
__INTRODUCED_IN(19);
-extern int statvfs64(const char* __restrict _Nonnull, struct statvfs64* __restrict _Nonnull)
+int statvfs64(const char* __restrict _Nonnull, struct statvfs64* __restrict _Nonnull)
__INTRODUCED_IN(21);
-extern int fstatvfs(int, struct statvfs* _Nonnull) __INTRODUCED_IN(19);
-extern int fstatvfs64(int, struct statvfs64* _Nonnull) __INTRODUCED_IN(21);
+int fstatvfs(int, struct statvfs* _Nonnull) __INTRODUCED_IN(19);
+int fstatvfs64(int, struct statvfs64* _Nonnull) __INTRODUCED_IN(21);
__END_DECLS
diff --git a/libc/include/sys/swap.h b/libc/include/sys/swap.h
index 2d99df8..3444736 100644
--- a/libc/include/sys/swap.h
+++ b/libc/include/sys/swap.h
@@ -38,8 +38,8 @@
#define SWAP_FLAG_PRIO_MASK 0x7fff
#define SWAP_FLAG_PRIO_SHIFT 0
-extern int swapon(const char* _Nonnull, int) __INTRODUCED_IN(19);
-extern int swapoff(const char* _Nonnull) __INTRODUCED_IN(19);
+int swapon(const char* _Nonnull, int) __INTRODUCED_IN(19);
+int swapoff(const char* _Nonnull) __INTRODUCED_IN(19);
__END_DECLS
diff --git a/libc/include/sys/timerfd.h b/libc/include/sys/timerfd.h
index 0090233..a500060 100644
--- a/libc/include/sys/timerfd.h
+++ b/libc/include/sys/timerfd.h
@@ -42,10 +42,9 @@
#define TFD_CLOEXEC O_CLOEXEC
#define TFD_NONBLOCK O_NONBLOCK
-extern int timerfd_create(clockid_t, int) __INTRODUCED_IN(19);
-extern int timerfd_settime(int, int, const struct itimerspec*, struct itimerspec*)
- __INTRODUCED_IN(19);
-extern int timerfd_gettime(int, struct itimerspec*) __INTRODUCED_IN(19);
+int timerfd_create(clockid_t, int) __INTRODUCED_IN(19);
+int timerfd_settime(int, int, const struct itimerspec*, struct itimerspec*) __INTRODUCED_IN(19);
+int timerfd_gettime(int, struct itimerspec*) __INTRODUCED_IN(19);
__END_DECLS
diff --git a/libc/include/sys/times.h b/libc/include/sys/times.h
index 6ce5b55..f52db1f 100644
--- a/libc/include/sys/times.h
+++ b/libc/include/sys/times.h
@@ -35,7 +35,7 @@
__BEGIN_DECLS
-extern clock_t times(struct tms*);
+clock_t times(struct tms*);
__END_DECLS
diff --git a/libc/include/sys/utsname.h b/libc/include/sys/utsname.h
index d54a994..b3856a7 100644
--- a/libc/include/sys/utsname.h
+++ b/libc/include/sys/utsname.h
@@ -25,6 +25,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#ifndef _SYS_UTSNAME_H_
#define _SYS_UTSNAME_H_
@@ -43,7 +44,7 @@
char domainname[SYS_NMLN];
};
-extern int uname(struct utsname *);
+int uname(struct utsname*);
__END_DECLS
diff --git a/libc/include/sys/vfs.h b/libc/include/sys/vfs.h
index bf094dc..1231eb1 100644
--- a/libc/include/sys/vfs.h
+++ b/libc/include/sys/vfs.h
@@ -137,10 +137,10 @@
#define XENIX_SUPER_MAGIC 0x012FF7B4
#define XFS_SUPER_MAGIC 0x58465342
-extern int statfs(const char* _Nonnull, struct statfs* _Nonnull);
-extern int statfs64(const char* _Nonnull, struct statfs64* _Nonnull) __INTRODUCED_IN(21);
-extern int fstatfs(int, struct statfs* _Nonnull);
-extern int fstatfs64(int, struct statfs64* _Nonnull) __INTRODUCED_IN(21);
+int statfs(const char* _Nonnull, struct statfs* _Nonnull);
+int statfs64(const char* _Nonnull, struct statfs64* _Nonnull) __INTRODUCED_IN(21);
+int fstatfs(int, struct statfs* _Nonnull);
+int fstatfs64(int, struct statfs64* _Nonnull) __INTRODUCED_IN(21);
__END_DECLS
diff --git a/libc/include/sys/wait.h b/libc/include/sys/wait.h
index e0afabc..90eb35b 100644
--- a/libc/include/sys/wait.h
+++ b/libc/include/sys/wait.h
@@ -49,9 +49,9 @@
#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
-extern pid_t wait(int *);
-extern pid_t waitpid(pid_t, int *, int);
-extern pid_t wait4(pid_t, int*, int, struct rusage*) __INTRODUCED_IN(18);
+pid_t wait(int*);
+pid_t waitpid(pid_t, int*, int);
+pid_t wait4(pid_t, int*, int, struct rusage*) __INTRODUCED_IN(18);
/* Posix states that idtype_t should be an enumeration type, but
* the kernel headers define P_ALL, P_PID and P_PGID as constant macros
@@ -59,7 +59,7 @@
*/
typedef int idtype_t;
-extern int waitid(idtype_t which, id_t id, siginfo_t *info, int options);
+int waitid(idtype_t which, id_t id, siginfo_t* info, int options);
__END_DECLS
diff --git a/libc/include/time.h b/libc/include/time.h
index ca4c708..888ce12 100644
--- a/libc/include/time.h
+++ b/libc/include/time.h
@@ -59,48 +59,48 @@
#define TM_ZONE tm_zone
-extern time_t time(time_t*);
-extern int nanosleep(const struct timespec*, struct timespec*);
+time_t time(time_t*);
+int nanosleep(const struct timespec*, struct timespec*);
-extern char* asctime(const struct tm*);
-extern char* asctime_r(const struct tm*, char*);
+char* asctime(const struct tm*);
+char* asctime_r(const struct tm*, char*);
-extern double difftime(time_t, time_t);
-extern time_t mktime(struct tm*);
+double difftime(time_t, time_t);
+time_t mktime(struct tm*);
-extern struct tm* localtime(const time_t*);
-extern struct tm* localtime_r(const time_t*, struct tm*);
+struct tm* localtime(const time_t*);
+struct tm* localtime_r(const time_t*, struct tm*);
-extern struct tm* gmtime(const time_t*);
-extern struct tm* gmtime_r(const time_t*, struct tm*);
+struct tm* gmtime(const time_t*);
+struct tm* gmtime_r(const time_t*, struct tm*);
-extern char* strptime(const char*, const char*, struct tm*);
-extern size_t strftime(char*, size_t, const char*, const struct tm*);
-extern size_t strftime_l(char*, size_t, const char*, const struct tm*, locale_t) __INTRODUCED_IN(21);
+char* strptime(const char*, const char*, struct tm*);
+size_t strftime(char*, size_t, const char*, const struct tm*);
+size_t strftime_l(char*, size_t, const char*, const struct tm*, locale_t) __INTRODUCED_IN(21);
-extern char* ctime(const time_t*);
-extern char* ctime_r(const time_t*, char*);
+char* ctime(const time_t*);
+char* ctime_r(const time_t*, char*);
-extern void tzset(void);
+void tzset(void);
-extern clock_t clock(void);
+clock_t clock(void);
-extern int clock_getcpuclockid(pid_t, clockid_t*) __INTRODUCED_IN(23);
+int clock_getcpuclockid(pid_t, clockid_t*) __INTRODUCED_IN(23);
-extern int clock_getres(clockid_t, struct timespec*);
-extern int clock_gettime(clockid_t, struct timespec*);
-extern int clock_nanosleep(clockid_t, int, const struct timespec*, struct timespec*);
-extern int clock_settime(clockid_t, const struct timespec*);
+int clock_getres(clockid_t, struct timespec*);
+int clock_gettime(clockid_t, struct timespec*);
+int clock_nanosleep(clockid_t, int, const struct timespec*, struct timespec*);
+int clock_settime(clockid_t, const struct timespec*);
-extern int timer_create(int, struct sigevent*, timer_t*);
-extern int timer_delete(timer_t);
-extern int timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*);
-extern int timer_gettime(timer_t, struct itimerspec*);
-extern int timer_getoverrun(timer_t);
+int timer_create(int, struct sigevent*, timer_t*);
+int timer_delete(timer_t);
+int timer_settime(timer_t, int, const struct itimerspec*, struct itimerspec*);
+int timer_gettime(timer_t, struct itimerspec*);
+int timer_getoverrun(timer_t);
/* Non-standard extensions that are in the BSDs and glibc. */
-extern time_t timelocal(struct tm*) __INTRODUCED_IN(12);
-extern time_t timegm(struct tm*) __INTRODUCED_IN(12);
+time_t timelocal(struct tm*) __INTRODUCED_IN(12);
+time_t timegm(struct tm*) __INTRODUCED_IN(12);
__END_DECLS
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 7deca95..25f0304 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -79,139 +79,134 @@
extern char** environ;
-extern __noreturn void _exit(int __status);
+__noreturn void _exit(int __status);
-extern pid_t fork(void);
-extern pid_t vfork(void);
-extern pid_t getpid(void);
-extern pid_t gettid(void) __pure2;
-extern pid_t getpgid(pid_t __pid);
-extern int setpgid(pid_t __pid, pid_t __pgid);
-extern pid_t getppid(void);
-extern pid_t getpgrp(void);
-extern int setpgrp(void);
-extern pid_t getsid(pid_t __pid) __INTRODUCED_IN(17);
-extern pid_t setsid(void);
+pid_t fork(void);
+pid_t vfork(void);
+pid_t getpid(void);
+pid_t gettid(void) __pure2;
+pid_t getpgid(pid_t __pid);
+int setpgid(pid_t __pid, pid_t __pgid);
+pid_t getppid(void);
+pid_t getpgrp(void);
+int setpgrp(void);
+pid_t getsid(pid_t __pid) __INTRODUCED_IN(17);
+pid_t setsid(void);
-extern int execv(const char* __path, char* const* __argv);
-extern int execvp(const char* __file, char* const* __argv);
-extern int execvpe(const char* __file, char* const* __argv, char* const* __envp)
- __INTRODUCED_IN(21);
-extern int execve(const char* __file, char* const* __argv, char* const* __envp);
-extern int execl(const char* __path, const char* __arg0, ...);
-extern int execlp(const char* __file, const char* __arg0, ...);
-extern int execle(const char* __path, const char* __arg0, ...);
+int execv(const char* __path, char* const* __argv);
+int execvp(const char* __file, char* const* __argv);
+int execvpe(const char* __file, char* const* __argv, char* const* __envp) __INTRODUCED_IN(21);
+int execve(const char* __file, char* const* __argv, char* const* __envp);
+int execl(const char* __path, const char* __arg0, ...);
+int execlp(const char* __file, const char* __arg0, ...);
+int execle(const char* __path, const char* __arg0, ...);
-extern int nice(int __incr);
+int nice(int __incr);
-extern int setuid(uid_t __uid);
-extern uid_t getuid(void);
-extern int seteuid(uid_t __uid);
-extern uid_t geteuid(void);
-extern int setgid(gid_t __gid);
-extern gid_t getgid(void);
-extern int setegid(gid_t __gid);
-extern gid_t getegid(void);
-extern int getgroups(int __size, gid_t* __list);
-extern int setgroups(size_t __size, const gid_t* __list);
-extern int setreuid(uid_t __ruid, uid_t __euid);
-extern int setregid(gid_t __rgid, gid_t __egid);
-extern int setresuid(uid_t __ruid, uid_t __euid, uid_t __suid);
-extern int setresgid(gid_t __rgid, gid_t __egid, gid_t __sgid);
-extern int getresuid(uid_t* __ruid, uid_t* __euid, uid_t* __suid);
-extern int getresgid(gid_t* __rgid, gid_t* __egid, gid_t* __sgid);
-extern char* getlogin(void);
+int setuid(uid_t __uid);
+uid_t getuid(void);
+int seteuid(uid_t __uid);
+uid_t geteuid(void);
+int setgid(gid_t __gid);
+gid_t getgid(void);
+int setegid(gid_t __gid);
+gid_t getegid(void);
+int getgroups(int __size, gid_t* __list);
+int setgroups(size_t __size, const gid_t* __list);
+int setreuid(uid_t __ruid, uid_t __euid);
+int setregid(gid_t __rgid, gid_t __egid);
+int setresuid(uid_t __ruid, uid_t __euid, uid_t __suid);
+int setresgid(gid_t __rgid, gid_t __egid, gid_t __sgid);
+int getresuid(uid_t* __ruid, uid_t* __euid, uid_t* __suid);
+int getresgid(gid_t* __rgid, gid_t* __egid, gid_t* __sgid);
+char* getlogin(void);
-extern long fpathconf(int __fd, int __name);
-extern long pathconf(const char* __path, int __name);
+long fpathconf(int __fd, int __name);
+long pathconf(const char* __path, int __name);
-extern int access(const char* __path, int __mode);
-extern int faccessat(int __dirfd, const char* __path, int __mode, int __flags)
- __INTRODUCED_IN(16);
-extern int link(const char* __oldpath, const char* __newpath);
-extern int linkat(int __olddirfd, const char* __oldpath, int __newdirfd,
- const char* __newpath, int __flags) __INTRODUCED_IN(21);
-extern int unlink(const char* __path);
-extern int unlinkat(int __dirfd, const char* __path, int __flags);
-extern int chdir(const char* __path);
-extern int fchdir(int __fd);
-extern int rmdir(const char* __path);
-extern int pipe(int* __pipefd);
+int access(const char* __path, int __mode);
+int faccessat(int __dirfd, const char* __path, int __mode, int __flags) __INTRODUCED_IN(16);
+int link(const char* __oldpath, const char* __newpath);
+int linkat(int __olddirfd, const char* __oldpath, int __newdirfd,
+ const char* __newpath, int __flags) __INTRODUCED_IN(21);
+int unlink(const char* __path);
+int unlinkat(int __dirfd, const char* __path, int __flags);
+int chdir(const char* __path);
+int fchdir(int __fd);
+int rmdir(const char* __path);
+int pipe(int* __pipefd);
#if defined(__USE_GNU)
-extern int pipe2(int* __pipefd, int __flags) __INTRODUCED_IN(9);
+int pipe2(int* __pipefd, int __flags) __INTRODUCED_IN(9);
#endif
-extern int chroot(const char* __path);
-extern int symlink(const char* __oldpath, const char* __newpath);
-extern int symlinkat(const char* __oldpath, int __newdirfd,
- const char* __newpath) __INTRODUCED_IN(21);
-extern ssize_t readlink(const char* __path, char* __buf, size_t __bufsiz);
-extern ssize_t readlinkat(int __dirfd, const char* __path, char* __buf,
- size_t __bufsiz) __INTRODUCED_IN(21);
-extern int chown(const char* __path, uid_t __owner, gid_t __group);
-extern int fchown(int __fd, uid_t __owner, gid_t __group);
-extern int fchownat(int __dirfd, const char* __path, uid_t __owner,
- gid_t __group, int __flags);
-extern int lchown(const char* __path, uid_t __owner, gid_t __group);
-extern char* getcwd(char* __buf, size_t __size);
+int chroot(const char* __path);
+int symlink(const char* __oldpath, const char* __newpath);
+int symlinkat(const char* __oldpath, int __newdirfd, const char* __newpath) __INTRODUCED_IN(21);
+ssize_t readlink(const char* __path, char* __buf, size_t __bufsiz);
+ssize_t readlinkat(int __dirfd, const char* __path, char* __buf,
+ size_t __bufsiz) __INTRODUCED_IN(21);
+int chown(const char* __path, uid_t __owner, gid_t __group);
+int fchown(int __fd, uid_t __owner, gid_t __group);
+int fchownat(int __dirfd, const char* __path, uid_t __owner, gid_t __group, int __flags);
+int lchown(const char* __path, uid_t __owner, gid_t __group);
+char* getcwd(char* __buf, size_t __size);
-extern int sync(void);
+int sync(void);
-extern int close(int __fd);
+int close(int __fd);
-extern ssize_t read(int __fd, void* __buf, size_t __count);
-extern ssize_t write(int __fd, const void* __buf, size_t __count);
+ssize_t read(int __fd, void* __buf, size_t __count);
+ssize_t write(int __fd, const void* __buf, size_t __count);
-extern int dup(int __oldfd);
-extern int dup2(int __oldfd, int __newfd);
-extern int dup3(int __oldfd, int __newfd, int __flags) __INTRODUCED_IN(21);
-extern int fsync(int __fd);
-extern int fdatasync(int __fd) __INTRODUCED_IN(9);
+int dup(int __oldfd);
+int dup2(int __oldfd, int __newfd);
+int dup3(int __oldfd, int __newfd, int __flags) __INTRODUCED_IN(21);
+int fsync(int __fd);
+int fdatasync(int __fd) __INTRODUCED_IN(9);
#if defined(__USE_FILE_OFFSET64)
-extern off_t lseek(int __fd, off_t __offset, int __whence) __RENAME(lseek64);
+off_t lseek(int __fd, off_t __offset, int __whence) __RENAME(lseek64);
#else
-extern off_t lseek(int __fd, off_t __offset, int __whence);
+off_t lseek(int __fd, off_t __offset, int __whence);
#endif
-extern off64_t lseek64(int __fd, off64_t __offset, int __whence);
+off64_t lseek64(int __fd, off64_t __offset, int __whence);
#if defined(__USE_FILE_OFFSET64) && __ANDROID_API__ >= 21
-extern int truncate(const char* __path, off_t __length) __RENAME(truncate64) __INTRODUCED_IN(21);
-extern ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset) __RENAME(pread64)
+int truncate(const char* __path, off_t __length) __RENAME(truncate64) __INTRODUCED_IN(21);
+ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset) __RENAME(pread64)
__INTRODUCED_IN(12);
-extern ssize_t pwrite(int __fd, const void* __buf, size_t __count, off_t __offset)
+ssize_t pwrite(int __fd, const void* __buf, size_t __count, off_t __offset)
__RENAME(pwrite64) __INTRODUCED_IN(12);
-extern int ftruncate(int __fd, off_t __length) __RENAME(ftruncate64) __INTRODUCED_IN(12);
+int ftruncate(int __fd, off_t __length) __RENAME(ftruncate64) __INTRODUCED_IN(12);
#else
-extern int truncate(const char* __path, off_t __length);
-extern ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset);
-extern ssize_t pwrite(int __fd, const void* __buf, size_t __count,
- off_t __offset);
-extern int ftruncate(int __fd, off_t __length);
+int truncate(const char* __path, off_t __length);
+ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset);
+ssize_t pwrite(int __fd, const void* __buf, size_t __count, off_t __offset);
+int ftruncate(int __fd, off_t __length);
#endif
-extern int truncate64(const char* __path, off64_t __length) __INTRODUCED_IN(21);
-extern ssize_t pread64(int __fd, void* __buf, size_t __count, off64_t __offset) __INTRODUCED_IN(12);
-extern ssize_t pwrite64(int __fd, const void* __buf, size_t __count, off64_t __offset)
+int truncate64(const char* __path, off64_t __length) __INTRODUCED_IN(21);
+ssize_t pread64(int __fd, void* __buf, size_t __count, off64_t __offset) __INTRODUCED_IN(12);
+ssize_t pwrite64(int __fd, const void* __buf, size_t __count, off64_t __offset)
__INTRODUCED_IN(12);
-extern int ftruncate64(int __fd, off64_t __length) __INTRODUCED_IN(12);
+int ftruncate64(int __fd, off64_t __length) __INTRODUCED_IN(12);
-extern int pause(void);
-extern unsigned int alarm(unsigned int __seconds);
-extern unsigned int sleep(unsigned int __seconds);
-extern int usleep(useconds_t __usec);
+int pause(void);
+unsigned int alarm(unsigned int __seconds);
+unsigned int sleep(unsigned int __seconds);
+int usleep(useconds_t __usec);
int gethostname(char* __name, size_t __len);
int sethostname(const char* __name, size_t __len) __INTRODUCED_IN(23);
-extern int brk(void* __addr);
-extern void* sbrk(ptrdiff_t __increment);
+int brk(void* __addr);
+void* sbrk(ptrdiff_t __increment);
-extern int isatty(int __fd);
-extern char* ttyname(int __fd);
-extern int ttyname_r(int __fd, char* __buf, size_t __buflen) __INTRODUCED_IN(8);
+int isatty(int __fd);
+char* ttyname(int __fd);
+int ttyname_r(int __fd, char* __buf, size_t __buflen) __INTRODUCED_IN(8);
-extern int acct(const char* __filepath);
+int acct(const char* __filepath);
#if __ANDROID_API__ >= 21
int getpagesize(void);
@@ -223,15 +218,15 @@
long syscall(long __number, ...);
-extern int daemon(int __nochdir, int __noclose);
+int daemon(int __nochdir, int __noclose);
#if defined(__arm__) || (defined(__mips__) && !defined(__LP64__))
-extern int cacheflush(long __addr, long __nbytes, long __cache);
+int cacheflush(long __addr, long __nbytes, long __cache);
/* __attribute__((deprecated("use __builtin___clear_cache instead"))); */
#endif
-extern pid_t tcgetpgrp(int __fd);
-extern int tcsetpgrp(int __fd, pid_t __pid);
+pid_t tcgetpgrp(int __fd);
+int tcsetpgrp(int __fd, pid_t __pid);
/* Used to retry syscalls that can return EINTR. */
#define TEMP_FAILURE_RETRY(exp) ({ \
@@ -242,53 +237,52 @@
_rc; })
/* TODO(unified-headers): Factor out all the FORTIFY features. */
-extern char* __getcwd_chk(char*, size_t, size_t) __INTRODUCED_IN(24);
+char* __getcwd_chk(char*, size_t, size_t) __INTRODUCED_IN(24);
__errordecl(__getcwd_dest_size_error, "getcwd called with size bigger than destination");
-extern char* __getcwd_real(char*, size_t) __RENAME(getcwd);
+char* __getcwd_real(char*, size_t) __RENAME(getcwd);
-extern ssize_t __pread_chk(int, void*, size_t, off_t, size_t) __INTRODUCED_IN(23);
+ssize_t __pread_chk(int, void*, size_t, off_t, size_t) __INTRODUCED_IN(23);
__errordecl(__pread_dest_size_error, "pread called with size bigger than destination");
__errordecl(__pread_count_toobig_error, "pread called with count > SSIZE_MAX");
-extern ssize_t __pread_real(int, void*, size_t, off_t) __RENAME(pread);
+ssize_t __pread_real(int, void*, size_t, off_t) __RENAME(pread);
-extern ssize_t __pread64_chk(int, void*, size_t, off64_t, size_t) __INTRODUCED_IN(23);
+ssize_t __pread64_chk(int, void*, size_t, off64_t, size_t) __INTRODUCED_IN(23);
__errordecl(__pread64_dest_size_error, "pread64 called with size bigger than destination");
__errordecl(__pread64_count_toobig_error, "pread64 called with count > SSIZE_MAX");
-extern ssize_t __pread64_real(int, void*, size_t, off64_t) __RENAME(pread64) __INTRODUCED_IN(12);
+ssize_t __pread64_real(int, void*, size_t, off64_t) __RENAME(pread64) __INTRODUCED_IN(12);
-extern ssize_t __pwrite_chk(int, const void*, size_t, off_t, size_t) __INTRODUCED_IN(24);
+ssize_t __pwrite_chk(int, const void*, size_t, off_t, size_t) __INTRODUCED_IN(24);
__errordecl(__pwrite_dest_size_error, "pwrite called with size bigger than destination");
__errordecl(__pwrite_count_toobig_error, "pwrite called with count > SSIZE_MAX");
-extern ssize_t __pwrite_real(int, const void*, size_t, off_t) __RENAME(pwrite);
+ssize_t __pwrite_real(int, const void*, size_t, off_t) __RENAME(pwrite);
-extern ssize_t __pwrite64_chk(int, const void*, size_t, off64_t, size_t) __INTRODUCED_IN(24);
+ssize_t __pwrite64_chk(int, const void*, size_t, off64_t, size_t) __INTRODUCED_IN(24);
__errordecl(__pwrite64_dest_size_error, "pwrite64 called with size bigger than destination");
__errordecl(__pwrite64_count_toobig_error, "pwrite64 called with count > SSIZE_MAX");
-extern ssize_t __pwrite64_real(int, const void*, size_t, off64_t) __RENAME(pwrite64)
- __INTRODUCED_IN(12);
+ssize_t __pwrite64_real(int, const void*, size_t, off64_t) __RENAME(pwrite64) __INTRODUCED_IN(12);
-extern ssize_t __read_chk(int, void*, size_t, size_t) __INTRODUCED_IN(21);
+ssize_t __read_chk(int, void*, size_t, size_t) __INTRODUCED_IN(21);
__errordecl(__read_dest_size_error, "read called with size bigger than destination");
__errordecl(__read_count_toobig_error, "read called with count > SSIZE_MAX");
-extern ssize_t __read_real(int, void*, size_t) __RENAME(read);
+ssize_t __read_real(int, void*, size_t) __RENAME(read);
-extern ssize_t __write_chk(int, const void*, size_t, size_t) __INTRODUCED_IN(24);
+ssize_t __write_chk(int, const void*, size_t, size_t) __INTRODUCED_IN(24);
__errordecl(__write_dest_size_error, "write called with size bigger than destination");
__errordecl(__write_count_toobig_error, "write called with count > SSIZE_MAX");
-extern ssize_t __write_real(int, const void*, size_t) __RENAME(write);
+ssize_t __write_real(int, const void*, size_t) __RENAME(write);
-extern ssize_t __readlink_chk(const char*, char*, size_t, size_t) __INTRODUCED_IN(23);
+ssize_t __readlink_chk(const char*, char*, size_t, size_t) __INTRODUCED_IN(23);
__errordecl(__readlink_dest_size_error, "readlink called with size bigger than destination");
__errordecl(__readlink_size_toobig_error, "readlink called with size > SSIZE_MAX");
-extern ssize_t __readlink_real(const char*, char*, size_t) __RENAME(readlink);
+ssize_t __readlink_real(const char*, char*, size_t) __RENAME(readlink);
-extern ssize_t __readlinkat_chk(int dirfd, const char*, char*, size_t, size_t) __INTRODUCED_IN(23);
+ssize_t __readlinkat_chk(int dirfd, const char*, char*, size_t, size_t) __INTRODUCED_IN(23);
__errordecl(__readlinkat_dest_size_error, "readlinkat called with size bigger than destination");
__errordecl(__readlinkat_size_toobig_error, "readlinkat called with size > SSIZE_MAX");
-extern ssize_t __readlinkat_real(int dirfd, const char*, char*, size_t) __RENAME(readlinkat) __INTRODUCED_IN(21);
+ssize_t __readlinkat_real(int dirfd, const char*, char*, size_t) __RENAME(readlinkat) __INTRODUCED_IN(21);
-extern int getdomainname(char*, size_t) __INTRODUCED_IN_FUTURE;
-extern int setdomainname(const char*, size_t) __INTRODUCED_IN_FUTURE;
+int getdomainname(char*, size_t) __INTRODUCED_IN_FUTURE;
+int setdomainname(const char*, size_t) __INTRODUCED_IN_FUTURE;
#if defined(__BIONIC_FORTIFY)
diff --git a/libc/include/utime.h b/libc/include/utime.h
index 3d72da4..9783859 100644
--- a/libc/include/utime.h
+++ b/libc/include/utime.h
@@ -35,7 +35,7 @@
__BEGIN_DECLS
-extern int utime(const char*, const struct utimbuf*);
+int utime(const char*, const struct utimbuf*);
__END_DECLS
diff --git a/libc/include/wchar.h b/libc/include/wchar.h
index fbea851..1f0c1c5 100644
--- a/libc/include/wchar.h
+++ b/libc/include/wchar.h
@@ -67,88 +67,88 @@
#define WEOF ((wint_t)(-1))
-extern wint_t btowc(int);
-extern int fwprintf(FILE *, const wchar_t *, ...);
-extern int fwscanf(FILE *, const wchar_t *, ...);
-extern wint_t fgetwc(FILE *);
-extern wchar_t *fgetws(wchar_t *, int, FILE *);
-extern wint_t fputwc(wchar_t, FILE *);
-extern int fputws(const wchar_t *, FILE *);
-extern int fwide(FILE *, int);
-extern wint_t getwc(FILE *);
-extern wint_t getwchar(void);
-extern int mbsinit(const mbstate_t *);
-extern size_t mbrlen(const char *, size_t, mbstate_t *);
-extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
-extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*) __INTRODUCED_IN(21);
-extern wint_t putwc(wchar_t, FILE *);
-extern wint_t putwchar(wchar_t);
-extern int swprintf(wchar_t *, size_t, const wchar_t *, ...);
-extern int swscanf(const wchar_t *, const wchar_t *, ...);
-extern wint_t ungetwc(wint_t, FILE *);
-extern int vfwprintf(FILE*, const wchar_t*, va_list);
-extern int vfwscanf(FILE*, const wchar_t*, va_list) __INTRODUCED_IN(21);
-extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
-extern int vswscanf(const wchar_t*, const wchar_t*, va_list) __INTRODUCED_IN(21);
-extern int vwprintf(const wchar_t*, va_list);
-extern int vwscanf(const wchar_t*, va_list) __INTRODUCED_IN(21);
-extern wchar_t* wcpcpy (wchar_t*, const wchar_t *);
-extern wchar_t* wcpncpy (wchar_t*, const wchar_t *, size_t);
-extern size_t wcrtomb(char *, wchar_t, mbstate_t *);
-extern int wcscasecmp(const wchar_t *, const wchar_t *);
-extern int wcscasecmp_l(const wchar_t*, const wchar_t*, locale_t) __INTRODUCED_IN(23);
-extern wchar_t *wcscat(wchar_t *, const wchar_t *);
-extern wchar_t *wcschr(const wchar_t *, wchar_t);
-extern int wcscmp(const wchar_t *, const wchar_t *);
-extern int wcscoll(const wchar_t *, const wchar_t *);
-extern wchar_t *wcscpy(wchar_t *, const wchar_t *);
-extern size_t wcscspn(const wchar_t *, const wchar_t *);
-extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *);
-extern size_t wcslen(const wchar_t *);
-extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
-extern int wcsncasecmp_l(const wchar_t*, const wchar_t*, size_t, locale_t) __INTRODUCED_IN(23);
-extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
-extern int wcsncmp(const wchar_t *, const wchar_t *, size_t);
-extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
-extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*) __INTRODUCED_IN(21);
-extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
-extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
-extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
-extern size_t wcsspn(const wchar_t *, const wchar_t *);
-extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
-extern double wcstod(const wchar_t*, wchar_t**);
-extern float wcstof(const wchar_t*, wchar_t**) __INTRODUCED_IN(21);
-extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
-extern long wcstol(const wchar_t*, wchar_t**, int);
-extern long long wcstoll(const wchar_t*, wchar_t**, int) __INTRODUCED_IN(21);
-extern long double wcstold(const wchar_t*, wchar_t**) __INTRODUCED_IN(21);
-extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
-extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int) __INTRODUCED_IN(21);
-extern int wcswidth(const wchar_t *, size_t);
-extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
-extern int wctob(wint_t);
-extern int wcwidth(wchar_t);
-extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
-extern int wmemcmp(const wchar_t *, const wchar_t *, size_t);
-extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t);
+wint_t btowc(int);
+int fwprintf(FILE *, const wchar_t *, ...);
+int fwscanf(FILE *, const wchar_t *, ...);
+wint_t fgetwc(FILE *);
+wchar_t *fgetws(wchar_t *, int, FILE *);
+wint_t fputwc(wchar_t, FILE *);
+int fputws(const wchar_t *, FILE *);
+int fwide(FILE *, int);
+wint_t getwc(FILE *);
+wint_t getwchar(void);
+int mbsinit(const mbstate_t *);
+size_t mbrlen(const char *, size_t, mbstate_t *);
+size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
+size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*) __INTRODUCED_IN(21);
+wint_t putwc(wchar_t, FILE *);
+wint_t putwchar(wchar_t);
+int swprintf(wchar_t *, size_t, const wchar_t *, ...);
+int swscanf(const wchar_t *, const wchar_t *, ...);
+wint_t ungetwc(wint_t, FILE *);
+int vfwprintf(FILE*, const wchar_t*, va_list);
+int vfwscanf(FILE*, const wchar_t*, va_list) __INTRODUCED_IN(21);
+int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+int vswscanf(const wchar_t*, const wchar_t*, va_list) __INTRODUCED_IN(21);
+int vwprintf(const wchar_t*, va_list);
+int vwscanf(const wchar_t*, va_list) __INTRODUCED_IN(21);
+wchar_t* wcpcpy (wchar_t*, const wchar_t *);
+wchar_t* wcpncpy (wchar_t*, const wchar_t *, size_t);
+size_t wcrtomb(char *, wchar_t, mbstate_t *);
+int wcscasecmp(const wchar_t *, const wchar_t *);
+int wcscasecmp_l(const wchar_t*, const wchar_t*, locale_t) __INTRODUCED_IN(23);
+wchar_t *wcscat(wchar_t *, const wchar_t *);
+wchar_t *wcschr(const wchar_t *, wchar_t);
+int wcscmp(const wchar_t *, const wchar_t *);
+int wcscoll(const wchar_t *, const wchar_t *);
+wchar_t *wcscpy(wchar_t *, const wchar_t *);
+size_t wcscspn(const wchar_t *, const wchar_t *);
+size_t wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *);
+size_t wcslen(const wchar_t *);
+int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
+int wcsncasecmp_l(const wchar_t*, const wchar_t*, size_t, locale_t) __INTRODUCED_IN(23);
+wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
+int wcsncmp(const wchar_t *, const wchar_t *, size_t);
+wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
+size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*) __INTRODUCED_IN(21);
+wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
+wchar_t *wcsrchr(const wchar_t *, wchar_t);
+size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
+size_t wcsspn(const wchar_t *, const wchar_t *);
+wchar_t *wcsstr(const wchar_t *, const wchar_t *);
+double wcstod(const wchar_t*, wchar_t**);
+float wcstof(const wchar_t*, wchar_t**) __INTRODUCED_IN(21);
+wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+long wcstol(const wchar_t*, wchar_t**, int);
+long long wcstoll(const wchar_t*, wchar_t**, int) __INTRODUCED_IN(21);
+long double wcstold(const wchar_t*, wchar_t**) __INTRODUCED_IN(21);
+unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+unsigned long long wcstoull(const wchar_t*, wchar_t**, int) __INTRODUCED_IN(21);
+int wcswidth(const wchar_t *, size_t);
+size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
+int wctob(wint_t);
+int wcwidth(wchar_t);
+wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
+int wmemcmp(const wchar_t *, const wchar_t *, size_t);
+wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t);
#if defined(__USE_GNU)
-extern wchar_t* wmempcpy(wchar_t*, const wchar_t*, size_t) __INTRODUCED_IN(23);
+wchar_t* wmempcpy(wchar_t*, const wchar_t*, size_t) __INTRODUCED_IN(23);
#endif
-extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
-extern wchar_t *wmemset(wchar_t *, wchar_t, size_t);
-extern int wprintf(const wchar_t *, ...);
-extern int wscanf(const wchar_t *, ...);
+wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
+wchar_t *wmemset(wchar_t *, wchar_t, size_t);
+int wprintf(const wchar_t *, ...);
+int wscanf(const wchar_t *, ...);
-extern long long wcstoll_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21);
-extern unsigned long long wcstoull_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21);
-extern long double wcstold_l(const wchar_t*, wchar_t**, locale_t) __INTRODUCED_IN(21);
+long long wcstoll_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21);
+unsigned long long wcstoull_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21);
+long double wcstold_l(const wchar_t*, wchar_t**, locale_t) __INTRODUCED_IN(21);
-extern int wcscoll_l(const wchar_t*, const wchar_t*, locale_t) __INTRODUCED_IN(21);
-extern size_t wcsxfrm_l(wchar_t*, const wchar_t*, size_t, locale_t) __INTRODUCED_IN(21);
+int wcscoll_l(const wchar_t*, const wchar_t*, locale_t) __INTRODUCED_IN(21);
+size_t wcsxfrm_l(wchar_t*, const wchar_t*, size_t, locale_t) __INTRODUCED_IN(21);
-extern size_t wcslcat(wchar_t*, const wchar_t*, size_t);
-extern size_t wcslcpy(wchar_t*, const wchar_t*, size_t);
+size_t wcslcat(wchar_t*, const wchar_t*, size_t);
+size_t wcslcpy(wchar_t*, const wchar_t*, size_t);
FILE* open_wmemstream(wchar_t**, size_t*) __INTRODUCED_IN(23);
wchar_t* wcsdup(const wchar_t*);