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/linux | |
parent | 0676c3a34c7bf12b33f8f5efb92476f4ffc7f20e (diff) | |
download | musl-5ce3737931bb411a8d167356d4d0287b53b0cbdc.zip musl-5ce3737931bb411a8d167356d4d0287b53b0cbdc.tar.gz musl-5ce3737931bb411a8d167356d4d0287b53b0cbdc.tar.bz2 |
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/linux')
-rw-r--r-- | src/linux/cache.c | 1 | ||||
-rw-r--r-- | src/linux/getdents.c | 2 | ||||
-rw-r--r-- | src/linux/setfsgid.c | 1 | ||||
-rw-r--r-- | src/linux/setfsuid.c | 1 | ||||
-rw-r--r-- | src/linux/sysinfo.c | 1 | ||||
-rw-r--r-- | src/linux/x32/sysinfo.c | 1 |
6 files changed, 2 insertions, 5 deletions
diff --git a/src/linux/cache.c b/src/linux/cache.c index 3f0abc7..84a138a 100644 --- a/src/linux/cache.c +++ b/src/linux/cache.c @@ -1,5 +1,4 @@ #include "syscall.h" -#include "libc.h" #ifdef SYS_cacheflush int _flush_cache(void *addr, int len, int op) diff --git a/src/linux/getdents.c b/src/linux/getdents.c index 90f7556..cab2995 100644 --- a/src/linux/getdents.c +++ b/src/linux/getdents.c @@ -1,5 +1,7 @@ +#define _BSD_SOURCE #include <dirent.h> #include "syscall.h" +#include "libc.h" int getdents(int fd, struct dirent *buf, size_t len) { diff --git a/src/linux/setfsgid.c b/src/linux/setfsgid.c index ad80422..e29d9c0 100644 --- a/src/linux/setfsgid.c +++ b/src/linux/setfsgid.c @@ -1,6 +1,5 @@ #include <sys/fsuid.h> #include "syscall.h" -#include "libc.h" int setfsgid(gid_t gid) { diff --git a/src/linux/setfsuid.c b/src/linux/setfsuid.c index 8635873..1bae441 100644 --- a/src/linux/setfsuid.c +++ b/src/linux/setfsuid.c @@ -1,6 +1,5 @@ #include <sys/fsuid.h> #include "syscall.h" -#include "libc.h" int setfsuid(uid_t uid) { diff --git a/src/linux/sysinfo.c b/src/linux/sysinfo.c index 4b5a798..db86476 100644 --- a/src/linux/sysinfo.c +++ b/src/linux/sysinfo.c @@ -1,6 +1,5 @@ #include <sys/sysinfo.h> #include "syscall.h" -#include "libc.h" int __lsysinfo(struct sysinfo *info) { diff --git a/src/linux/x32/sysinfo.c b/src/linux/x32/sysinfo.c index d1c1b14..59b3bb7 100644 --- a/src/linux/x32/sysinfo.c +++ b/src/linux/x32/sysinfo.c @@ -1,6 +1,5 @@ #include <sys/sysinfo.h> #include "syscall.h" -#include "libc.h" #define klong long long #define kulong unsigned long long |