summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--ldso/dynlink.c2
-rw-r--r--src/conf/sysconf.c1
-rw-r--r--src/crypt/crypt.c2
-rw-r--r--src/crypt/crypt_r.c8
-rw-r--r--src/env/__libc_start_main.c3
-rw-r--r--src/env/clearenv.c1
-rw-r--r--src/env/getenv.c3
-rw-r--r--src/env/putenv.c3
-rw-r--r--src/env/setenv.c3
-rw-r--r--src/env/unsetenv.c3
-rw-r--r--src/include/arpa/inet.h8
-rw-r--r--src/include/crypt.h14
-rw-r--r--src/include/features.h11
-rw-r--r--src/include/langinfo.h8
-rw-r--r--src/include/pthread.h22
-rw-r--r--src/include/resolv.h12
-rw-r--r--src/include/signal.h14
-rw-r--r--src/include/stdlib.h11
-rw-r--r--src/include/string.h11
-rw-r--r--src/include/sys/mman.h20
-rw-r--r--src/include/sys/sysinfo.h8
-rw-r--r--src/include/sys/time.h8
-rw-r--r--src/include/time.h14
-rw-r--r--src/include/unistd.h12
-rw-r--r--src/internal/libc.h13
-rw-r--r--src/internal/malloc_impl.h6
-rw-r--r--src/internal/pthread_impl.h9
-rw-r--r--src/linux/utimes.c2
-rw-r--r--src/locale/dcngettext.c4
-rw-r--r--src/locale/locale_map.c5
-rw-r--r--src/locale/setlocale.c2
-rw-r--r--src/misc/ptsname.c2
-rw-r--r--src/mman/shm_open.c2
-rw-r--r--src/network/getnameinfo.c5
-rw-r--r--src/network/inet_addr.c2
-rw-r--r--src/network/lookup_ipliteral.c2
-rw-r--r--src/network/lookup_name.c4
-rw-r--r--src/network/res_query.c3
-rw-r--r--src/network/res_send.c2
-rw-r--r--src/process/posix_spawn.c2
-rw-r--r--src/process/posix_spawnp.c2
-rw-r--r--src/signal/signal.c2
-rw-r--r--src/stdio/freopen.c3
-rw-r--r--src/stdio/tempnam.c3
-rw-r--r--src/stdio/tmpfile.c3
-rw-r--r--src/stdio/tmpnam.c3
-rw-r--r--src/string/strchr.c2
-rw-r--r--src/string/strcpy.c2
-rw-r--r--src/string/strcspn.c2
-rw-r--r--src/string/strncpy.c2
-rw-r--r--src/string/strrchr.c2
-rw-r--r--src/temp/__randname.c2
-rw-r--r--src/temp/mkdtemp.c2
-rw-r--r--src/temp/mkostemp.c2
-rw-r--r--src/temp/mkostemps.c2
-rw-r--r--src/temp/mkstemp.c2
-rw-r--r--src/temp/mkstemps.c2
-rw-r--r--src/temp/mktemp.c2
-rw-r--r--src/thread/__timedwait.c3
-rw-r--r--src/thread/call_once.c3
-rw-r--r--src/thread/cnd_broadcast.c2
-rw-r--r--src/thread/cnd_signal.c2
-rw-r--r--src/thread/cnd_timedwait.c2
-rw-r--r--src/thread/mtx_timedlock.c2
-rw-r--r--src/thread/mtx_trylock.c2
-rw-r--r--src/thread/mtx_unlock.c2
-rw-r--r--src/thread/pthread_cond_broadcast.c2
-rw-r--r--src/thread/pthread_cond_signal.c2
-rw-r--r--src/thread/pthread_cond_timedwait.c5
-rw-r--r--src/thread/pthread_create.c4
-rw-r--r--src/thread/pthread_detach.c2
-rw-r--r--src/thread/pthread_join.c4
-rw-r--r--src/thread/pthread_mutex_lock.c2
-rw-r--r--src/thread/pthread_mutex_timedlock.c2
-rw-r--r--src/thread/sem_open.c2
-rw-r--r--src/thread/thrd_create.c2
-rw-r--r--src/thread/thrd_exit.c5
-rw-r--r--src/thread/thrd_join.c3
-rw-r--r--src/thread/tss_create.c3
-rw-r--r--src/thread/tss_delete.c3
-rw-r--r--src/time/__map_file.c2
-rw-r--r--src/time/__tz.c3
-rw-r--r--src/time/asctime.c2
-rw-r--r--src/time/asctime_r.c2
-rw-r--r--src/time/clock.c2
-rw-r--r--src/time/gmtime.c2
-rw-r--r--src/time/localtime.c2
-rw-r--r--src/time/strftime.c4
-rw-r--r--src/time/time.c2
-rw-r--r--src/time/time_impl.h1
-rw-r--r--src/time/timespec_get.c2
92 files changed, 200 insertions, 192 deletions
diff --git a/Makefile b/Makefile
index e23a8332..b46f8ca4 100644
--- a/Makefile
+++ b/Makefile
@@ -46,7 +46,7 @@ CFLAGS_AUTO = -Os -pipe
CFLAGS_C99FSE = -std=c99 -ffreestanding -nostdinc
CFLAGS_ALL = $(CFLAGS_C99FSE)
-CFLAGS_ALL += -D_XOPEN_SOURCE=700 -I$(srcdir)/arch/$(ARCH) -I$(srcdir)/arch/generic -Iobj/src/internal -I$(srcdir)/src/internal -Iobj/include -I$(srcdir)/include
+CFLAGS_ALL += -D_XOPEN_SOURCE=700 -I$(srcdir)/arch/$(ARCH) -I$(srcdir)/arch/generic -Iobj/src/internal -I$(srcdir)/src/include -I$(srcdir)/src/internal -Iobj/include -I$(srcdir)/include
CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS_AUTO) $(CFLAGS)
LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS)
diff --git a/ldso/dynlink.c b/ldso/dynlink.c
index 7200c817..e4829c3a 100644
--- a/ldso/dynlink.c
+++ b/ldso/dynlink.c
@@ -96,8 +96,6 @@ struct symdef {
struct dso *dso;
};
-void __init_libc(char **, char *);
-
static struct builtin_tls {
char c;
struct pthread pt;
diff --git a/src/conf/sysconf.c b/src/conf/sysconf.c
index 45ef1c16..3baaed32 100644
--- a/src/conf/sysconf.c
+++ b/src/conf/sysconf.c
@@ -204,7 +204,6 @@ long sysconf(int name)
case JT_PHYS_PAGES & 255:
case JT_AVPHYS_PAGES & 255: ;
unsigned long long mem;
- int __lsysinfo(struct sysinfo *);
struct sysinfo si;
__lsysinfo(&si);
if (!si.mem_unit) si.mem_unit = 1;
diff --git a/src/crypt/crypt.c b/src/crypt/crypt.c
index 46500737..e6237e39 100644
--- a/src/crypt/crypt.c
+++ b/src/crypt/crypt.c
@@ -1,8 +1,6 @@
#include <unistd.h>
#include <crypt.h>
-char *__crypt_r(const char *, const char *, struct crypt_data *);
-
char *crypt(const char *key, const char *salt)
{
/* This buffer is sufficiently large for all
diff --git a/src/crypt/crypt_r.c b/src/crypt/crypt_r.c
index 5982c4c9..5789973b 100644
--- a/src/crypt/crypt_r.c
+++ b/src/crypt/crypt_r.c
@@ -1,14 +1,6 @@
#include <crypt.h>
#include "libc.h"
-struct crypt_data;
-
-char *__crypt_des(const char *, const char *, char *);
-char *__crypt_md5(const char *, const char *, char *);
-char *__crypt_blowfish(const char *, const char *, char *);
-char *__crypt_sha256(const char *, const char *, char *);
-char *__crypt_sha512(const char *, const char *, char *);
-
char *__crypt_r(const char *key, const char *salt, struct crypt_data *data)
{
/* Per the crypt_r API, the caller has provided a pointer to
diff --git a/src/env/__libc_start_main.c b/src/env/__libc_start_main.c
index c1b06697..58da9e83 100644
--- a/src/env/__libc_start_main.c
+++ b/src/env/__libc_start_main.c
@@ -2,12 +2,11 @@
#include <poll.h>
#include <fcntl.h>
#include <signal.h>
+#include <unistd.h>
#include "syscall.h"
#include "atomic.h"
#include "libc.h"
-void __init_tls(size_t *);
-
static void dummy(void) {}
weak_alias(dummy, _init);
diff --git a/src/env/clearenv.c b/src/env/clearenv.c
index da187752..2e275b43 100644
--- a/src/env/clearenv.c
+++ b/src/env/clearenv.c
@@ -1,5 +1,6 @@
#define _GNU_SOURCE
#include <stdlib.h>
+#include <unistd.h>
#include "libc.h"
static void dummy(char *old, char *new) {}
diff --git a/src/env/getenv.c b/src/env/getenv.c
index cf34672c..f2797798 100644
--- a/src/env/getenv.c
+++ b/src/env/getenv.c
@@ -1,9 +1,8 @@
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "libc.h"
-char *__strchrnul(const char *, int);
-
char *getenv(const char *name)
{
size_t l = __strchrnul(name, '=') - name;
diff --git a/src/env/putenv.c b/src/env/putenv.c
index fa4a4ddc..20f96022 100644
--- a/src/env/putenv.c
+++ b/src/env/putenv.c
@@ -1,9 +1,8 @@
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "libc.h"
-char *__strchrnul(const char *, int);
-
static void dummy(char *old, char *new) {}
weak_alias(dummy, __env_rm_add);
diff --git a/src/env/setenv.c b/src/env/setenv.c
index a7dd2b60..c5226b6d 100644
--- a/src/env/setenv.c
+++ b/src/env/setenv.c
@@ -2,9 +2,6 @@
#include <string.h>
#include <errno.h>
-char *__strchrnul(const char *, int);
-int __putenv(char *, size_t, char *);
-
void __env_rm_add(char *old, char *new)
{
static char **env_alloced;
diff --git a/src/env/unsetenv.c b/src/env/unsetenv.c
index 8630e2d7..471219e8 100644
--- a/src/env/unsetenv.c
+++ b/src/env/unsetenv.c
@@ -1,10 +1,9 @@
#include <stdlib.h>
#include <string.h>
#include <errno.h>
+#include <unistd.h>
#include "libc.h"
-char *__strchrnul(const char *, int);
-
static void dummy(char *old, char *new) {}
weak_alias(dummy, __env_rm_add);
diff --git a/src/include/arpa/inet.h b/src/include/arpa/inet.h
new file mode 100644
index 00000000..2da6ddbc
--- /dev/null
+++ b/src/include/arpa/inet.h
@@ -0,0 +1,8 @@
+#ifndef ARPA_INET_H
+#define ARPA_INET_H
+
+#include "../../../include/arpa/inet.h"
+
+int __inet_aton(const char *, struct in_addr *);
+
+#endif
diff --git a/src/include/crypt.h b/src/include/crypt.h
new file mode 100644
index 00000000..6e5c2d30
--- /dev/null
+++ b/src/include/crypt.h
@@ -0,0 +1,14 @@
+#ifndef CRYPT_H
+#define CRYPT_H
+
+#include "../../include/crypt.h"
+
+char *__crypt_r(const char *, const char *, struct crypt_data *);
+
+char *__crypt_des(const char *, const char *, char *);
+char *__crypt_md5(const char *, const char *, char *);
+char *__crypt_blowfish(const char *, const char *, char *);
+char *__crypt_sha256(const char *, const char *, char *);
+char *__crypt_sha512(const char *, const char *, char *);
+
+#endif
diff --git a/src/include/features.h b/src/include/features.h
new file mode 100644
index 00000000..f17bd151
--- /dev/null
+++ b/src/include/features.h
@@ -0,0 +1,11 @@
+#ifndef FEATURES_H
+#define FEATURES_H
+
+#include "../../include/features.h"
+
+#define weak __attribute__((__weak__))
+#define hidden __attribute__((__visibility__("hidden")))
+#define weak_alias(old, new) \
+ extern __typeof(old) new __attribute__((__weak__, __alias__(#old)))
+
+#endif
diff --git a/src/include/langinfo.h b/src/include/langinfo.h
new file mode 100644
index 00000000..ab32b880
--- /dev/null
+++ b/src/include/langinfo.h
@@ -0,0 +1,8 @@
+#ifndef LANGINFO_H
+#define LANGINFO_H
+
+#include "../../include/langinfo.h"
+
+char *__nl_langinfo_l(nl_item, locale_t);
+
+#endif
diff --git a/src/include/pthread.h b/src/include/pthread.h
new file mode 100644
index 00000000..2beaa444
--- /dev/null
+++ b/src/include/pthread.h
@@ -0,0 +1,22 @@
+#ifndef PTHREAD_H
+#define PTHREAD_H
+
+#include "../../include/pthread.h"
+
+int __pthread_once(pthread_once_t *, void (*)(void));
+void __pthread_testcancel(void);
+int __pthread_setcancelstate(int, int *);
+int __pthread_create(pthread_t *restrict, const pthread_attr_t *restrict, void *(*)(void *), void *restrict);
+_Noreturn void __pthread_exit(void *);
+int __pthread_join(pthread_t, void **);
+int __pthread_mutex_lock(pthread_mutex_t *);
+int __pthread_mutex_trylock(pthread_mutex_t *);
+int __pthread_mutex_trylock_owner(pthread_mutex_t *);
+int __pthread_mutex_timedlock(pthread_mutex_t *restrict, const struct timespec *restrict);
+int __pthread_mutex_unlock(pthread_mutex_t *);
+int __private_cond_signal(pthread_cond_t *, int);
+int __pthread_cond_timedwait(pthread_cond_t *restrict, pthread_mutex_t *restrict, const struct timespec *restrict);
+int __pthread_key_create(pthread_key_t *, void (*)(void *));
+int __pthread_key_delete(pthread_key_t);
+
+#endif
diff --git a/src/include/resolv.h b/src/include/resolv.h
new file mode 100644
index 00000000..a66669b2
--- /dev/null
+++ b/src/include/resolv.h
@@ -0,0 +1,12 @@
+#ifndef RESOLV_H
+#define RESOLV_H
+
+#include "../../include/resolv.h"
+
+int __dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);
+
+int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
+int __res_send(const unsigned char *, int, unsigned char *, int);
+int __res_msend(int, const unsigned char *const *, const int *, unsigned char *const *, int *, int);
+
+#endif
diff --git a/src/include/signal.h b/src/include/signal.h
new file mode 100644
index 00000000..116c0ddd
--- /dev/null
+++ b/src/include/signal.h
@@ -0,0 +1,14 @@
+#ifndef SIGNAL_H
+#define SIGNAL_H
+
+#include "../../include/signal.h"
+
+int __sigaction(int, const struct sigaction *, struct sigaction *);
+
+void __block_all_sigs(void *);
+void __block_app_sigs(void *);
+void __restore_sigs(void *);
+
+void __get_handler_set(sigset_t *);
+
+#endif
diff --git a/src/include/stdlib.h b/src/include/stdlib.h
new file mode 100644
index 00000000..6e0dbda9
--- /dev/null
+++ b/src/include/stdlib.h
@@ -0,0 +1,11 @@
+#ifndef STDLIB_H
+#define STDLIB_H
+
+#include "../../include/stdlib.h"
+
+int __putenv(char *, size_t, char *);
+int __mkostemps(char *, int, int);
+int __ptsname_r(int, char *, size_t);
+char *__randname(char *);
+
+#endif
diff --git a/src/include/string.h b/src/include/string.h
new file mode 100644
index 00000000..1d10be70
--- /dev/null
+++ b/src/include/string.h
@@ -0,0 +1,11 @@
+#ifndef STRING_H
+#define STRING_H
+
+#include "../../include/string.h"
+
+void *__memrchr(const void *, int, size_t);
+char *__stpcpy(char *, const char *);
+char *__stpncpy(char *, const char *, size_t);
+char *__strchrnul(const char *, int);
+
+#endif
diff --git a/src/include/sys/mman.h b/src/include/sys/mman.h
new file mode 100644
index 00000000..28394dd5
--- /dev/null
+++ b/src/include/sys/mman.h
@@ -0,0 +1,20 @@
+#ifndef SYS_MMAN_H
+#define SYS_MMAN_H
+
+#include "../../../include/sys/mman.h"
+
+void __vm_wait(void);
+void __vm_lock(void);
+void __vm_unlock(void);
+
+void *__mmap(void *, size_t, int, int, int, off_t);
+int __munmap(void *, size_t);
+void *__mremap(void *, size_t, size_t, int, ...);
+int __madvise(void *, size_t, int);
+int __mprotect(void *, size_t, int);
+
+const unsigned char *__map_file(const char *, size_t *);
+
+char *__shm_mapname(const char *, char *);
+
+#endif
diff --git a/src/include/sys/sysinfo.h b/src/include/sys/sysinfo.h
new file mode 100644
index 00000000..c3d60bfd
--- /dev/null
+++ b/src/include/sys/sysinfo.h
@@ -0,0 +1,8 @@
+#ifndef SYS_SYSINFO_H
+#define SYS_SYSINFO_H
+
+#include "../../../include/sys/sysinfo.h"
+
+int __lsysinfo(struct sysinfo *);
+
+#endif
diff --git a/src/include/sys/time.h b/src/include/sys/time.h
new file mode 100644
index 00000000..79c5fcbc
--- /dev/null
+++ b/src/include/sys/time.h
@@ -0,0 +1,8 @@
+#ifndef SYS_TIME_H
+#define SYS_TIME_H
+
+#include "../../../include/sys/time.h"
+
+int __futimesat(int, const char *, const struct timeval [2]);
+
+#endif
diff --git a/src/include/time.h b/src/include/time.h
new file mode 100644
index 00000000..991f0b4d
--- /dev/null
+++ b/src/include/time.h
@@ -0,0 +1,14 @@
+#ifndef TIME_H
+#define TIME_H
+
+#include "../../include/time.h"
+
+int __clock_gettime(clockid_t, struct timespec *);
+
+char *__asctime_r(const struct tm *, char *);
+struct tm *__gmtime_r(const time_t *restrict, struct tm *restrict);
+struct tm *__localtime_r(const time_t *restrict, struct tm *restrict);
+
+size_t __strftime_l(char *restrict, size_t, const char *restrict, const struct tm *restrict, locale_t);
+
+#endif
diff --git a/src/include/unistd.h b/src/include/unistd.h
new file mode 100644
index 00000000..9cdf1d3e
--- /dev/null
+++ b/src/include/unistd.h
@@ -0,0 +1,12 @@
+#ifndef UNISTD_H
+#define UNISTD_H
+
+#include "../../include/unistd.h"
+
+extern char **__environ;
+
+int __dup3(int, int, int);
+int __mkostemps(char *, int, int);
+int __execvpe(const char *, char *const *, char *const *);
+
+#endif
diff --git a/src/internal/libc.h b/src/internal/libc.h
index f536eaf6..23988d92 100644
--- a/src/internal/libc.h
+++ b/src/internal/libc.h
@@ -33,12 +33,13 @@ struct __libc {
#define PAGE_SIZE libc.page_size
#endif
-#define weak __attribute__((__weak__))
-#define hidden __attribute__((__visibility__("hidden")))
-
extern hidden struct __libc __libc;
#define libc __libc
+void __init_libc(char **, char *);
+void __init_tls(size_t *);
+void __libc_start_init(void);
+
extern hidden size_t __hwcap;
extern hidden size_t __sysinfo;
extern char *__progname, *__progname_full;
@@ -56,12 +57,6 @@ hidden void __unlockfile(FILE *);
void __synccall(void (*)(void *), void *);
int __setxid(int, int, int, int);
-extern char **__environ;
-
-#undef weak_alias
-#define weak_alias(old, new) \
- extern __typeof(old) new __attribute__((__weak__, __alias__(#old)))
-
#undef LFS64_2
#define LFS64_2(x, y) weak_alias(x, y)
diff --git a/src/internal/malloc_impl.h b/src/internal/malloc_impl.h
index 88b4f670..e97337b3 100644
--- a/src/internal/malloc_impl.h
+++ b/src/internal/malloc_impl.h
@@ -2,11 +2,7 @@
#define MALLOC_IMPL_H
#include "libc.h"
-
-void *__mmap(void *, size_t, int, int, int, off_t);
-int __munmap(void *, size_t);
-void *__mremap(void *, size_t, size_t, int, ...);
-int __madvise(void *, size_t, int);
+#include <sys/mman.h>
void *__expand_heap(size_t *);
diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h
index 813b5966..4457262d 100644
--- a/src/internal/pthread_impl.h
+++ b/src/internal/pthread_impl.h
@@ -5,6 +5,7 @@
#include <signal.h>
#include <errno.h>
#include <limits.h>
+#include <sys/mman.h>
#include "libc.h"
#include "syscall.h"
#include "atomic.h"
@@ -146,10 +147,6 @@ hidden int __set_thread_area(void *);
int __libc_sigaction(int, const struct sigaction *, struct sigaction *);
void __unmapself(void *, size_t);
-void __vm_wait(void);
-void __vm_lock(void);
-void __vm_unlock(void);
-
int __timedwait(volatile int *, int, clockid_t, const struct timespec *, int);
int __timedwait_cp(volatile int *, int, clockid_t, const struct timespec *, int);
void __wait(volatile int *, volatile int *, int, int);
@@ -171,10 +168,6 @@ void __acquire_ptc(void);
void __release_ptc(void);
void __inhibit_ptc(void);
-void __block_all_sigs(void *);
-void __block_app_sigs(void *);
-void __restore_sigs(void *);
-
#define DEFAULT_STACK_SIZE 81920
#define DEFAULT_GUARD_SIZE 4096
diff --git a/src/linux/utimes.c b/src/linux/utimes.c
index b814c88b..6ca025d9 100644
--- a/src/linux/utimes.c
+++ b/src/linux/utimes.c
@@ -2,8 +2,6 @@
#include "fcntl.h"
#include "syscall.h"
-int __futimesat(int, const char *, const struct timeval [2]);
-
int utimes(const char *path, const struct timeval times[2])
{
return __futimesat(AT_FDCWD, path, times);
diff --git a/src/locale/dcngettext.c b/src/locale/dcngettext.c
index de0828d9..fc1018df 100644
--- a/src/locale/dcngettext.c
+++ b/src/locale/dcngettext.c
@@ -4,6 +4,7 @@
#include <errno.h>
#include <limits.h>
#include <sys/stat.h>
+#include <sys/mman.h>
#include <ctype.h>
#include "locale_impl.h"
#include "libc.h"
@@ -113,9 +114,6 @@ static char *dummy_gettextdomain()
weak_alias(dummy_gettextdomain, __gettextdomain);
-const unsigned char *__map_file(const char *, size_t *);
-int __munmap(void *, size_t);
-
char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n, int category)
{
static struct msgcat *volatile cats;
diff --git a/src/locale/locale_map.c b/src/locale/locale_map.c
index 79542310..e7b518a1 100644
--- a/src/locale/locale_map.c
+++ b/src/locale/locale_map.c
@@ -1,5 +1,6 @@
#include <locale.h>
#include <string.h>
+#include <sys/mman.h>
#include "locale_impl.h"
#include "libc.h"
#include "atomic.h"
@@ -11,10 +12,6 @@ const char *__lctrans_impl(const char *msg, const struct __locale_map *lm)
return trans ? trans : msg;
}
-const unsigned char *__map_file(const char *, size_t *);
-int __munmap(void *, size_t);
-char *__strchrnul(const char *, int);
-
static const char envvars[][12] = {
"LC_CTYPE",
"LC_NUMERIC",
diff --git a/src/locale/setlocale.c b/src/locale/setlocale.c
index 40bc7ece..60e3353c 100644
--- a/src/locale/setlocale.c
+++ b/src/locale/setlocale.c
@@ -17,8 +17,6 @@ static char *setlocale_one_unlocked(int cat, const char *name)
return lm ? (char *)lm->name : "C";
}
-char *__strchrnul(const char *, int);
-
char *setlocale(int cat, const char *name)
{
static volatile int lock[1];
diff --git a/src/misc/ptsname.c b/src/misc/ptsname.c
index a3477927..58c151c9 100644
--- a/src/misc/ptsname.c
+++ b/src/misc/ptsname.c
@@ -1,8 +1,6 @@
#include <stdlib.h>
#include <errno.h>
-int __ptsname_r(int, char *, size_t);
-
char *ptsname(int fd)
{
static char buf[9 + sizeof(int)*3 + 1];
diff --git a/src/mman/shm_open.c b/src/mman/shm_open.c
index d042a5a8..79784bd3 100644
--- a/src/mman/shm_open.c
+++ b/src/mman/shm_open.c
@@ -6,8 +6,6 @@
#include <limits.h>
#include <pthread.h>
-char *__strchrnul(const char *, int);
-
char *__shm_mapname(const char *name, char *buf)
{
char *p;
diff --git a/src/network/getnameinfo.c b/src/network/getnameinfo.c
index 79b9e6ea..84f5ed6c 100644
--- a/src/network/getnameinfo.c
+++ b/src/network/getnameinfo.c
@@ -7,13 +7,10 @@
#include <arpa/inet.h>
#include <net/if.h>
#include <ctype.h>
+#include <resolv.h>
#include "lookup.h"
#include "stdio_impl.h"
-int __dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);
-int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
-int __res_send(const unsigned char *, int, unsigned char *, int);
-
#define PTR_MAX (64 + sizeof ".in-addr.arpa")
#define RR_PTR 12
diff --git a/src/network/inet_addr.c b/src/network/inet_addr.c
index 10b21f21..11ece3d6 100644
--- a/src/network/inet_addr.c
+++ b/src/network/inet_addr.c
@@ -2,8 +2,6 @@
#include <netinet/in.h>
#include <arpa/inet.h>
-int __inet_aton(const char *, struct in_addr *);
-
in_addr_t inet_addr(const char *p)
{
struct in_addr a;
diff --git a/src/network/lookup_ipliteral.c b/src/network/lookup_ipliteral.c
index 8ed14605..2fddab73 100644
--- a/src/network/lookup_ipliteral.c
+++ b/src/network/lookup_ipliteral.c
@@ -9,8 +9,6 @@
#include <ctype.h>
#include "lookup.h"
-int __inet_aton(const char *, struct in_addr *);
-
int __lookup_ipliteral(struct address buf[static 1], const char *name, int family)
{
struct in_addr a4;
diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c
index 5a096ac0..c93263a9 100644
--- a/src/network/lookup_name.c
+++ b/src/network/lookup_name.c
@@ -10,6 +10,7 @@
#include <unistd.h>
#include <pthread.h>
#include <errno.h>
+#include <resolv.h>
#include "lookup.h"
#include "stdio_impl.h"
#include "syscall.h"
@@ -98,9 +99,6 @@ struct dpc_ctx {
int cnt;
};
-int __dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);
-int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
-
#define RR_A 1
#define RR_CNAME 5
#define RR_AAAA 28
diff --git a/src/network/res_query.c b/src/network/res_query.c
index 2b4e4bb1..691ccb16 100644
--- a/src/network/res_query.c
+++ b/src/network/res_query.c
@@ -2,9 +2,6 @@
#include <netdb.h>
#include "libc.h"
-int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
-int __res_send(const unsigned char *, int, unsigned char *, int);
-
int __res_query(const char *name, int class, int type, unsigned char *dest, int len)
{
unsigned char q[280];
diff --git a/src/network/res_send.c b/src/network/res_send.c
index 19cfe0f6..6facc1bd 100644
--- a/src/network/res_send.c
+++ b/src/network/res_send.c
@@ -1,8 +1,6 @@
#include <resolv.h>
#include "libc.h"
-int __res_msend(int, const unsigned char *const *, const int *, unsigned char *const *, int *, int);
-
int __res_send(const unsigned char *msg, int msglen, unsigned char *answer, int anslen)
{
int r = __res_msend(1, &msg, &msglen, &answer, &anslen, anslen);
diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c
index 16308fb7..2f8ef935 100644
--- a/src/process/posix_spawn.c
+++ b/src/process/posix_spawn.c
@@ -19,8 +19,6 @@ struct args {
char *const *argv, *const *envp;
};
-void __get_handler_set(sigset_t *);
-
static int __sys_dup2(int old, int new)
{
#ifdef SYS_dup2
diff --git a/src/process/posix_spawnp.c b/src/process/posix_spawnp.c
index 165be746..aad6133b 100644
--- a/src/process/posix_spawnp.c
+++ b/src/process/posix_spawnp.c
@@ -1,8 +1,6 @@
#include <spawn.h>
#include <unistd.h>
-int __execvpe(const char *, char *const *, char *const *);
-
int posix_spawnp(pid_t *restrict res, const char *restrict file,
const posix_spawn_file_actions_t *fa,
const posix_spawnattr_t *restrict attr,
diff --git a/src/signal/signal.c b/src/signal/signal.c
index 29e03c88..bcd56825 100644
--- a/src/signal/signal.c
+++ b/src/signal/signal.c
@@ -2,8 +2,6 @@
#include "syscall.h"
#include "libc.h"
-int __sigaction(int, const struct sigaction *, struct sigaction *);
-
void (*signal(int sig, void (*func)(int)))(int)
{
struct sigaction sa_old, sa = { .sa_handler = func, .sa_flags = SA_RESTART };
diff --git a/src/stdio/freopen.c b/src/stdio/freopen.c
index 6c1b575f..a9c83c85 100644
--- a/src/stdio/freopen.c
+++ b/src/stdio/freopen.c
@@ -1,5 +1,6 @@
#include "stdio_impl.h"
#include <fcntl.h>
+#include <unistd.h>
/* The basic idea of this implementation is to open a new FILE,
* hack the necessary parts of the new FILE into the old one, then
@@ -9,8 +10,6 @@
* lock, via flockfile or otherwise, when freopen is called, and in that
* case, freopen cannot act until the lock is released. */
-int __dup3(int, int, int);
-
FILE *freopen(const char *restrict filename, const char *restrict mode, FILE *restrict f)
{
int fl = __fmodeflags(mode);
diff --git a/src/stdio/tempnam.c b/src/stdio/tempnam.c
index 5a559752..84f91978 100644
--- a/src/stdio/tempnam.c
+++ b/src/stdio/tempnam.c
@@ -4,12 +4,11 @@
#include <sys/stat.h>
#include <limits.h>
#include <string.h>
+#include <stdlib.h>
#include "syscall.h"
#define MAXTRIES 100
-char *__randname(char *);
-
char *tempnam(const char *dir, const char *pfx)
{
char s[PATH_MAX];
diff --git a/src/stdio/tmpfile.c b/src/stdio/tmpfile.c
index 525090aa..55d742fa 100644
--- a/src/stdio/tmpfile.c
+++ b/src/stdio/tmpfile.c
@@ -1,11 +1,10 @@
#include <stdio.h>
#include <fcntl.h>
+#include <stdlib.h>
#include "stdio_impl.h"
#define MAXTRIES 100
-char *__randname(char *);
-
FILE *tmpfile(void)
{
char s[] = "/tmp/tmpfile_XXXXXX";
diff --git a/src/stdio/tmpnam.c b/src/stdio/tmpnam.c
index 449eb9b0..6c7c253a 100644
--- a/src/stdio/tmpnam.c
+++ b/src/stdio/tmpnam.c
@@ -3,12 +3,11 @@
#include <errno.h>
#include <sys/stat.h>
#include <string.h>
+#include <stdlib.h>
#include "syscall.h"
#define MAXTRIES 100
-char *__randname(char *);
-
char *tmpnam(char *buf)
{
static char internal[L_tmpnam];
diff --git a/src/string/strchr.c b/src/string/strchr.c
index bfae8f9f..3cbc828b 100644
--- a/src/string/strchr.c
+++ b/src/string/strchr.c
@@ -1,7 +1,5 @@
#include <string.h>
-char *__strchrnul(const char *, int);
-
char *strchr(const char *s, int c)
{
char *r = __strchrnul(s, c);
diff --git a/src/string/strcpy.c b/src/string/strcpy.c
index 2883e930..6668a129 100644
--- a/src/string/strcpy.c
+++ b/src/string/strcpy.c
@@ -1,7 +1,5 @@
#include <string.h>
-char *__stpcpy(char *, const char *);
-
char *strcpy(char *restrict dest, const char *restrict src)
{
__stpcpy(dest, src);
diff --git a/src/string/strcspn.c b/src/string/strcspn.c
index cfdba114..a0c617bd 100644
--- a/src/string/strcspn.c
+++ b/src/string/strcspn.c
@@ -3,8 +3,6 @@
#define BITOP(a,b,op) \
((a)[(size_t)(b)/(8*sizeof *(a))] op (size_t)1<<((size_t)(b)%(8*sizeof *(a))))
-char *__strchrnul(const char *, int);
-
size_t strcspn(const char *s, const char *c)
{
const char *a = s;
diff --git a/src/string/strncpy.c b/src/string/strncpy.c
index 441ba033..545892e6 100644
--- a/src/string/strncpy.c
+++ b/src/string/strncpy.c
@@ -1,7 +1,5 @@
#include <string.h>
-char *__stpncpy(char *, const char *, size_t);
-
char *strncpy(char *restrict d, const char *restrict s, size_t n)
{
__stpncpy(d, s, n);
diff --git a/src/string/strrchr.c b/src/string/strrchr.c
index 635fb3c1..98ad1b04 100644
--- a/src/string/strrchr.c
+++ b/src/string/strrchr.c
@@ -1,7 +1,5 @@
#include <string.h>
-void *__memrchr(const void *, int, size_t);
-
char *strrchr(const char *s, int c)
{
return __memrchr(s, c, strlen(s) + 1);
diff --git a/src/temp/__randname.c b/src/temp/__randname.c
index 464b83d5..2bce37a0 100644
--- a/src/temp/__randname.c
+++ b/src/temp/__randname.c
@@ -1,8 +1,6 @@
#include <time.h>
#include <stdint.h>
-int __clock_gettime(clockid_t, struct timespec *);
-
/* This assumes that a check for the
template size has already been made */
char *__randname(char *template)
diff --git a/src/temp/mkdtemp.c b/src/temp/mkdtemp.c
index 6c2c16ef..5708257b 100644
--- a/src/temp/mkdtemp.c
+++ b/src/temp/mkdtemp.c
@@ -3,8 +3,6 @@
#include <errno.h>
#include <sys/stat.h>
-char *__randname(char *);
-
char *mkdtemp(char *template)
{
size_t l = strlen(template);
diff --git a/src/temp/mkostemp.c b/src/temp/mkostemp.c
index e73e22a6..4fe57137 100644
--- a/src/temp/mkostemp.c
+++ b/src/temp/mkostemp.c
@@ -2,8 +2,6 @@
#include <stdlib.h>
#include "libc.h"
-int __mkostemps(char *, int, int);
-
int mkostemp(char *template, int flags)
{
return __mkostemps(template, 0, flags);
diff --git a/src/temp/mkostemps.c b/src/temp/mkostemps.c
index 43d95c41..d1464b45 100644
--- a/src/temp/mkostemps.c
+++ b/src/temp/mkostemps.c
@@ -6,8 +6,6 @@
#include <errno.h>
#include "libc.h"
-char *__randname(char *);
-
int __mkostemps(char *template, int len, int flags)
{
size_t l = strlen(template);
diff --git a/src/temp/mkstemp.c b/src/temp/mkstemp.c
index 85764af7..19d40148 100644
--- a/src/temp/mkstemp.c
+++ b/src/temp/mkstemp.c
@@ -1,8 +1,6 @@
#include <stdlib.h>
#include "libc.h"
-int __mkostemps(char *, int, int);
-
int mkstemp(char *template)
{
return __mkostemps(template, 0, 0);
diff --git a/src/temp/mkstemps.c b/src/temp/mkstemps.c
index fda710b0..f2ab1bd3 100644
--- a/src/temp/mkstemps.c
+++ b/src/temp/mkstemps.c
@@ -2,8 +2,6 @@
#include <stdlib.h>
#include "libc.h"
-int __mkostemps(char *, int, int);
-
int mkstemps(char *template, int len)
{
return __mkostemps(template, len, 0);
diff --git a/src/temp/mktemp.c b/src/temp/mktemp.c
index 4ab0df20..7b3d2648 100644
--- a/src/temp/mktemp.c
+++ b/src/temp/mktemp.c
@@ -4,8 +4,6 @@
#include <errno.h>
#include <sys/stat.h>
-char *__randname(char *);
-
char *mktemp(char *template)
{
size_t l = strlen(template);
diff --git a/src/thread/__timedwait.c b/src/thread/__timedwait.c
index d2079c88..229db313 100644
--- a/src/thread/__timedwait.c
+++ b/src/thread/__timedwait.c
@@ -5,9 +5,6 @@
#include "syscall.h"
#include "pthread_impl.h"
-int __pthread_setcancelstate(int, int *);
-int __clock_gettime(clockid_t, struct timespec *);
-
int __timedwait_cp(volatile int *addr, int val,
clockid_t clk, const struct timespec *at, int priv)
{
diff --git a/src/thread/call_once.c b/src/thread/call_once.c
index a7bc9353..5ed30183 100644
--- a/src/thread/call_once.c
+++ b/src/thread/call_once.c
@@ -1,6 +1,5 @@
#include <threads.h>
-
-int __pthread_once(once_flag *, void (*)(void));
+#include <pthread.h>
void call_once(once_flag *flag, void (*func)(void))
{
diff --git a/src/thread/cnd_broadcast.c b/src/thread/cnd_broadcast.c
index 0ad061a3..e76b5a81 100644
--- a/src/thread/cnd_broadcast.c
+++ b/src/thread/cnd_broadcast.c
@@ -1,8 +1,6 @@
#include <threads.h>
#include <pthread.h>
-int __private_cond_signal(pthread_cond_t *, int);
-
int cnd_broadcast(cnd_t *c)
{
/* This internal function never fails, and always returns zero,
diff --git a/src/thread/cnd_signal.c b/src/thread/cnd_signal.c
index 8165dae1..02cdc6c6 100644
--- a/src/thread/cnd_signal.c
+++ b/src/thread/cnd_signal.c
@@ -1,8 +1,6 @@
#include <threads.h>
#include <pthread.h>
-int __private_cond_signal(pthread_cond_t *, int);
-
int cnd_signal(cnd_t *c)
{
/* This internal function never fails, and always returns zero,
diff --git a/src/thread/cnd_timedwait.c b/src/thread/cnd_timedwait.c
index 7bfe1045..2802af52 100644
--- a/src/thread/cnd_timedwait.c
+++ b/src/thread/cnd_timedwait.c
@@ -2,8 +2,6 @@
#include <pthread.h>
#include <errno.h>
-int __pthread_cond_timedwait(pthread_cond_t *restrict, pthread_mutex_t *restrict, const struct timespec *restrict);
-
int cnd_timedwait(cnd_t *restrict c, mtx_t *restrict m, const struct timespec *restrict ts)
{
int ret = __pthread_cond_timedwait((pthread_cond_t *)c, (pthread_mutex_t *)m, ts);
diff --git a/src/thread/mtx_timedlock.c b/src/thread/mtx_timedlock.c
index d098053b..d22c8cf4 100644
--- a/src/thread/mtx_timedlock.c
+++ b/src/thread/mtx_timedlock.c
@@ -2,8 +2,6 @@
#include <pthread.h>
#include <errno.h>
-int __pthread_mutex_timedlock(pthread_mutex_t *restrict, const struct timespec *restrict);
-
int mtx_timedlock(mtx_t *restrict m, const struct timespec *restrict ts)
{
int ret = __pthread_mutex_timedlock((pthread_mutex_t *)m, ts);
diff --git a/src/thread/mtx_trylock.c b/src/thread/mtx_trylock.c
index 8d1fb07c..40a8b8c2 100644
--- a/src/thread/mtx_trylock.c
+++ b/src/thread/mtx_trylock.c
@@ -1,8 +1,6 @@
#include "pthread_impl.h"
#include <threads.h>
-int __pthread_mutex_trylock(pthread_mutex_t *);
-
int mtx_trylock(mtx_t *m)
{
if (m->_m_type == PTHREAD_MUTEX_NORMAL)
diff --git a/src/thread/mtx_unlock.c b/src/thread/mtx_unlock.c
index ac91f993..2e5c8cf6 100644
--- a/src/thread/mtx_unlock.c
+++ b/src/thread/mtx_unlock.c
@@ -1,8 +1,6 @@
#include <threads.h>
#include <pthread.h>
-int __pthread_mutex_unlock(pthread_mutex_t *);
-
int mtx_unlock(mtx_t *mtx)
{
/* The only cases where pthread_mutex_unlock can return an
diff --git a/src/thread/pthread_cond_broadcast.c b/src/thread/pthread_cond_broadcast.c
index 69f840fb..6bfab78f 100644
--- a/src/thread/pthread_cond_broadcast.c
+++ b/src/thread/pthread_cond_broadcast.c
@@ -1,7 +1,5 @@
#include "pthread_impl.h"
-int __private_cond_signal(pthread_cond_t *, int);
-
int pthread_cond_broadcast(pthread_cond_t *c)
{
if (!c->_c_shared) return __private_cond_signal(c, -1);
diff --git a/src/thread/pthread_cond_signal.c b/src/thread/pthread_cond_signal.c
index 119c00ab..575ad54b 100644
--- a/src/thread/pthread_cond_signal.c
+++ b/src/thread/pthread_cond_signal.c
@@ -1,7 +1,5 @@
#include "pthread_impl.h"
-int __private_cond_signal(pthread_cond_t *, int);
-
int pthread_cond_signal(pthread_cond_t *c)
{
if (!c->_c_shared) return __private_cond_signal(c, 1);
diff --git a/src/thread/pthread_cond_timedwait.c b/src/thread/pthread_cond_timedwait.c
index ed8569c2..d1501240 100644
--- a/src/thread/pthread_cond_timedwait.c
+++ b/src/thread/pthread_cond_timedwait.c
@@ -1,10 +1,5 @@
#include "pthread_impl.h"
-void __pthread_testcancel(void);
-int __pthread_mutex_lock(pthread_mutex_t *);
-int __pthread_mutex_unlock(pthread_mutex_t *);
-int __pthread_setcancelstate(int, int *);
-
/*
* struct waiter
*
diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
index dc869dc1..23dfe0ad 100644
--- a/src/thread/pthread_create.c
+++ b/src/thread/pthread_create.c
@@ -6,10 +6,6 @@
#include <string.h>
#include <stddef.h>
-void *__mmap(void *, size_t, int, int, int, off_t);
-int __munmap(void *, size_t);
-int __mprotect(void *, size_t, int);
-
static void dummy_0()
{
}
diff --git a/src/thread/pthread_detach.c b/src/thread/pthread_detach.c
index 9cee7a89..16b0552d 100644
--- a/src/thread/pthread_detach.c
+++ b/src/thread/pthread_detach.c
@@ -1,8 +1,6 @@
#include "pthread_impl.h"
#include <threads.h>
-int __pthread_join(pthread_t, void **);
-
static int __pthread_detach(pthread_t t)
{
/* If the cas fails, detach state is either already-detached
diff --git a/src/thread/pthread_join.c b/src/thread/pthread_join.c
index 551c3675..54d81039 100644
--- a/src/thread/pthread_join.c
+++ b/src/thread/pthread_join.c
@@ -1,10 +1,6 @@
#include "pthread_impl.h"
#include <sys/mman.h>
-int __munmap(void *, size_t);
-void __pthread_testcancel(void);
-int __pthread_setcancelstate(int, int *);
-
static int __pthread_timedjoin_np(pthread_t t, void **res, const struct timespec *at)
{
int state, cs, r = 0;
diff --git a/src/thread/pthread_mutex_lock.c b/src/thread/pthread_mutex_lock.c
index d0c93cab..638d4b86 100644
--- a/src/thread/pthread_mutex_lock.c
+++ b/src/thread/pthread_mutex_lock.c
@@ -1,7 +1,5 @@
#include "pthread_impl.h"
-int __pthread_mutex_timedlock(pthread_mutex_t *restrict, const struct timespec *restrict);
-
int __pthread_mutex_lock(pthread_mutex_t *m)
{
if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL
diff --git a/src/thread/pthread_mutex_timedlock.c b/src/thread/pthread_mutex_timedlock.c
index d2bd1960..9867f389 100644
--- a/src/thread/pthread_mutex_timedlock.c
+++ b/src/thread/pthread_mutex_timedlock.c
@@ -1,7 +1,5 @@
#include "pthread_impl.h"
-int __pthread_mutex_trylock(pthread_mutex_t *);
-
int __pthread_mutex_timedlock(pthread_mutex_t *restrict m, const struct timespec *restrict at)
{
if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL
diff --git a/src/thread/sem_open.c b/src/thread/sem_open.c
index dc0279e8..1bd8020a 100644
--- a/src/thread/sem_open.c
+++ b/src/thread/sem_open.c
@@ -13,8 +13,6 @@
#include <pthread.h>
#include "libc.h"
-char *__shm_mapname(const char *, char *);
-
static struct {
ino_t ino;
sem_t *sem;
diff --git a/src/thread/thrd_create.c b/src/thread/thrd_create.c
index e0336695..76a683db 100644
--- a/src/thread/thrd_create.c
+++ b/src/thread/thrd_create.c
@@ -1,8 +1,6 @@
#include "pthread_impl.h"
#include <threads.h>
-int __pthread_create(pthread_t *restrict, const pthread_attr_t *restrict, void *(*)(void *), void *restrict);
-
int thrd_create(thrd_t *thr, thrd_start_t func, void *arg)
{
int ret = __pthread_create(thr, __ATTRP_C11_THREAD, (void *(*)(void *))func, arg);
diff --git a/src/thread/thrd_exit.c b/src/thread/thrd_exit.c
index b66bd996..9b291ae3 100644
--- a/src/thread/thrd_exit.c
+++ b/src/thread/thrd_exit.c
@@ -1,7 +1,6 @@
-#include "pthread_impl.h"
#include <threads.h>
-
-_Noreturn void __pthread_exit(void *);
+#include <pthread.h>
+#include <stdint.h>
_Noreturn void thrd_exit(int result)
{
diff --git a/src/thread/thrd_join.c b/src/thread/thrd_join.c
index ac667893..0d5fd302 100644
--- a/src/thread/thrd_join.c
+++ b/src/thread/thrd_join.c
@@ -1,7 +1,6 @@
#include <stdint.h>
#include <threads.h>
-
-int __pthread_join(thrd_t, void**);
+#include <pthread.h>
int thrd_join(thrd_t t, int *res)
{
diff --git a/src/thread/tss_create.c b/src/thread/tss_create.c
index 251d22b9..6d6ef96b 100644
--- a/src/thread/tss_create.c
+++ b/src/thread/tss_create.c
@@ -1,6 +1,5 @@
#include <threads.h>
-
-int __pthread_key_create(tss_t *, void (*)(void *));
+#include <pthread.h>
int tss_create(tss_t *tss, tss_dtor_t dtor)
{
diff --git a/src/thread/tss_delete.c b/src/thread/tss_delete.c
index 35db1032..6f51b07e 100644
--- a/src/thread/tss_delete.c
+++ b/src/thread/tss_delete.c
@@ -1,6 +1,5 @@
#include <threads.h>
-
-int __pthread_key_delete(tss_t k);
+#include <pthread.h>
void tss_delete(tss_t key)
{
diff --git a/src/time/__map_file.c b/src/time/__map_file.c
index b91eb8ed..750d1958 100644
--- a/src/time/__map_file.c
+++ b/src/time/__map_file.c
@@ -3,8 +3,6 @@
#include <sys/stat.h>
#include "syscall.h"
-void *__mmap(void *, size_t, int, int, int, off_t);
-
const char unsigned *__map_file(const char *pathname, size_t *size)
{
struct stat st;
diff --git a/src/time/__tz.c b/src/time/__tz.c
index 814edcdf..a2afe92a 100644
--- a/src/time/__tz.c
+++ b/src/time/__tz.c
@@ -3,6 +3,7 @@
#include <limits.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/mman.h>
#include "libc.h"
long __timezone = 0;
@@ -113,8 +114,6 @@ static size_t zi_dotprod(const unsigned char *z, const unsigned char *v, size_t
return y;
}
-int __munmap(void *, size_t);
-
static void do_tzset()
{
char buf[NAME_MAX+25], *pathname=buf+24;
diff --git a/src/time/asctime.c b/src/time/asctime.c
index 57d15fe0..1febe544 100644
--- a/src/time/asctime.c
+++ b/src/time/asctime.c
@@ -1,7 +1,5 @@
#include <time.h>
-char *__asctime_r(const struct tm *, char *);
-
char *asctime(const struct tm *tm)
{
static char buf[26];
diff --git a/src/time/asctime_r.c b/src/time/asctime_r.c
index d1639ab0..af2618de 100644
--- a/src/time/asctime_r.c
+++ b/src/time/asctime_r.c
@@ -5,8 +5,6 @@
#include "atomic.h"
#include "libc.h"
-char *__nl_langinfo_l(nl_item, locale_t);
-
char *__asctime_r(const struct tm *restrict tm, char *restrict buf)
{
if (snprintf(buf, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
diff --git a/src/time/clock.c b/src/time/clock.c
index c348e398..6724012b 100644
--- a/src/time/clock.c
+++ b/src/time/clock.c
@@ -1,8 +1,6 @@
#include <time.h>
#include <limits.h>
-int __clock_gettime(clockid_t, struct timespec *);
-
clock_t clock()
{
struct timespec ts;
diff --git a/src/time/gmtime.c b/src/time/gmtime.c
index 3791b24c..6320b637 100644
--- a/src/time/gmtime.c
+++ b/src/time/gmtime.c
@@ -1,8 +1,6 @@
#include "time_impl.h"
#include <errno.h>
-struct tm *__gmtime_r(const time_t *restrict, struct tm *restrict);
-
struct tm *gmtime(const time_t *t)
{
static struct tm tm;
diff --git a/src/time/localtime.c b/src/time/localtime.c
index bb6718c3..52104232 100644
--- a/src/time/localtime.c
+++ b/src/time/localtime.c
@@ -1,7 +1,5 @@
#include "time_impl.h"
-struct tm *__localtime_r(const time_t *restrict, struct tm *restrict);
-
struct tm *localtime(const time_t *t)
{
static struct tm tm;
diff --git a/src/time/strftime.c b/src/time/strftime.c
index ddb47772..ba18a27c 100644
--- a/src/time/strftime.c
+++ b/src/time/strftime.c
@@ -9,8 +9,6 @@
#include "libc.h"
#include "time_impl.h"
-char *__nl_langinfo_l(nl_item, locale_t);
-
static int is_leap(int y)
{
/* Avoid overflow */
@@ -45,8 +43,6 @@ static int week_num(const struct tm *tm)
return val;
}
-size_t __strftime_l(char *restrict, size_t, const char *restrict, const struct tm *restrict, locale_t);
-
const char *__strftime_fmt_1(char (*s)[100], size_t *l, int f, const struct tm *tm, locale_t loc, int pad)
{
nl_item item;
diff --git a/src/time/time.c b/src/time/time.c
index 4b95e752..ad0480f9 100644
--- a/src/time/time.c
+++ b/src/time/time.c
@@ -1,8 +1,6 @@
#include <time.h>
#include "syscall.h"
-int __clock_gettime(clockid_t, struct timespec *);
-
time_t time(time_t *t)
{
struct timespec ts;
diff --git a/src/time/time_impl.h b/src/time/time_impl.h
index 5cc2fe2f..50afe156 100644
--- a/src/time/time_impl.h
+++ b/src/time/time_impl.h
@@ -7,5 +7,4 @@ long long __tm_to_secs(const struct tm *);
const char *__tm_to_tzname(const struct tm *);
int __secs_to_tm(long long, struct tm *);
void __secs_to_zone(long long, int, int *, long *, long *, const char **);
-const unsigned char *__map_file(const char *, size_t *);
const char *__strftime_fmt_1(char (*)[100], size_t *, int, const struct tm *, locale_t, int);
diff --git a/src/time/timespec_get.c b/src/time/timespec_get.c
index 03c5a77b..40ea9c1c 100644
--- a/src/time/timespec_get.c
+++ b/src/time/timespec_get.c
@@ -1,7 +1,5 @@
#include <time.h>
-int __clock_gettime(clockid_t, struct timespec *);
-
/* There is no other implemented value than TIME_UTC; all other values
* are considered erroneous. */
int timespec_get(struct timespec * ts, int base)