diff options
author | Rich Felker <dalias@aerifal.cx> | 2018-09-12 00:08:09 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-09-12 14:34:37 -0400 |
commit | 5ce3737931bb411a8d167356d4d0287b53b0cbdc (patch) | |
tree | 726fc5dde9cc462316faa715158c38f0da72292d /src/internal | |
parent | 0676c3a34c7bf12b33f8f5efb92476f4ffc7f20e (diff) | |
download | musl-5ce3737931bb411a8d167356d4d0287b53b0cbdc.tar.gz musl-5ce3737931bb411a8d167356d4d0287b53b0cbdc.tar.bz2 musl-5ce3737931bb411a8d167356d4d0287b53b0cbdc.tar.xz musl-5ce3737931bb411a8d167356d4d0287b53b0cbdc.zip |
reduce spurious inclusion of libc.h
libc.h was intended to be a header for access to global libc state and
related interfaces, but ended up included all over the place because
it was the way to get the weak_alias macro. most of the inclusions
removed here are places where weak_alias was needed. a few were
recently introduced for hidden. some go all the way back to when
libc.h defined CANCELPT_BEGIN and _END, and all (wrongly implemented)
cancellation points had to include it.
remaining spurious users are mostly callers of the LOCK/UNLOCK macros
and files that use the LFS64 macro to define the awful *64 aliases.
in a few places, new inclusion of libc.h is added because several
internal headers no longer implicitly include libc.h.
declarations for __lockfile and __unlockfile are moved from libc.h to
stdio_impl.h so that the latter does not need libc.h. putting them in
libc.h made no sense at all, since the macros in stdio_impl.h are
needed to use them correctly anyway.
Diffstat (limited to 'src/internal')
-rw-r--r-- | src/internal/dynlink.h | 2 | ||||
-rw-r--r-- | src/internal/fdpic_crt.h | 2 | ||||
-rw-r--r-- | src/internal/libc.h | 2 | ||||
-rw-r--r-- | src/internal/malloc_impl.h | 1 | ||||
-rw-r--r-- | src/internal/sh/__shcall.c | 2 | ||||
-rw-r--r-- | src/internal/stdio_impl.h | 4 | ||||
-rw-r--r-- | src/internal/syscall.h | 2 |
7 files changed, 7 insertions, 8 deletions
diff --git a/src/internal/dynlink.h b/src/internal/dynlink.h index 90b6e481..cbe0a6fe 100644 --- a/src/internal/dynlink.h +++ b/src/internal/dynlink.h @@ -5,7 +5,7 @@ #include <elf.h> #include <stdint.h> #include <stddef.h> -#include "libc.h" +#include <stdarg.h> #if UINTPTR_MAX == 0xffffffff typedef Elf32_Ehdr Ehdr; diff --git a/src/internal/fdpic_crt.h b/src/internal/fdpic_crt.h index 3c3f077d..7e9632bb 100644 --- a/src/internal/fdpic_crt.h +++ b/src/internal/fdpic_crt.h @@ -1,5 +1,5 @@ #include <stdint.h> -#include "libc.h" +#include <features.h> hidden void *__fdpic_fixup(void *map, uintptr_t *a, uintptr_t *z) { diff --git a/src/internal/libc.h b/src/internal/libc.h index 155a299e..83ad3983 100644 --- a/src/internal/libc.h +++ b/src/internal/libc.h @@ -53,8 +53,6 @@ extern hidden const char __libc_version[]; /* Designed to avoid any overhead in non-threaded processes */ hidden void __lock(volatile int *); hidden void __unlock(volatile int *); -hidden int __lockfile(FILE *); -hidden void __unlockfile(FILE *); #define LOCK(x) __lock(x) #define UNLOCK(x) __unlock(x) diff --git a/src/internal/malloc_impl.h b/src/internal/malloc_impl.h index b6eacd87..59785a7f 100644 --- a/src/internal/malloc_impl.h +++ b/src/internal/malloc_impl.h @@ -1,7 +1,6 @@ #ifndef MALLOC_IMPL_H #define MALLOC_IMPL_H -#include "libc.h" #include <sys/mman.h> hidden void *__expand_heap(size_t *); diff --git a/src/internal/sh/__shcall.c b/src/internal/sh/__shcall.c index 23655904..4e073e8f 100644 --- a/src/internal/sh/__shcall.c +++ b/src/internal/sh/__shcall.c @@ -1,4 +1,4 @@ -#include "libc.h" +#include <features.h> hidden int __shcall(void *arg, int (*func)(void *)) { diff --git a/src/internal/stdio_impl.h b/src/internal/stdio_impl.h index 92f7be6c..4afb7ea2 100644 --- a/src/internal/stdio_impl.h +++ b/src/internal/stdio_impl.h @@ -3,7 +3,6 @@ #include <stdio.h> #include "syscall.h" -#include "libc.h" #define UNGET 8 @@ -54,6 +53,9 @@ extern hidden FILE *volatile __stdin_used; extern hidden FILE *volatile __stdout_used; extern hidden FILE *volatile __stderr_used; +hidden int __lockfile(FILE *); +hidden void __unlockfile(FILE *); + hidden size_t __stdio_read(FILE *, unsigned char *, size_t); hidden size_t __stdio_write(FILE *, const unsigned char *, size_t); hidden size_t __stdout_write(FILE *, const unsigned char *, size_t); diff --git a/src/internal/syscall.h b/src/internal/syscall.h index 3cb0a772..da70ce92 100644 --- a/src/internal/syscall.h +++ b/src/internal/syscall.h @@ -1,8 +1,8 @@ #ifndef _INTERNAL_SYSCALL_H #define _INTERNAL_SYSCALL_H +#include <features.h> #include <sys/syscall.h> -#include "libc.h" #include "syscall_arch.h" #ifndef SYSCALL_RLIM_INFINITY |