From 5ce3737931bb411a8d167356d4d0287b53b0cbdc Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Wed, 12 Sep 2018 00:08:09 -0400
Subject: 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.
---
 src/linux/cache.c       | 1 -
 src/linux/getdents.c    | 2 ++
 src/linux/setfsgid.c    | 1 -
 src/linux/setfsuid.c    | 1 -
 src/linux/sysinfo.c     | 1 -
 src/linux/x32/sysinfo.c | 1 -
 6 files changed, 2 insertions(+), 5 deletions(-)

(limited to 'src/linux')

diff --git a/src/linux/cache.c b/src/linux/cache.c
index 3f0abc7c..84a138a4 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 90f7556e..cab29952 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 ad804225..e29d9c00 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 86358731..1bae4418 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 4b5a798d..db86476d 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 d1c1b148..59b3bb70 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
-- 
cgit v1.2.3-70-g09d2