From 5ce3737931bb411a8d167356d4d0287b53b0cbdc Mon Sep 17 00:00:00 2001 From: Rich Felker 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/internal/dynlink.h | 2 +- src/internal/fdpic_crt.h | 2 +- src/internal/libc.h | 2 -- src/internal/malloc_impl.h | 1 - src/internal/sh/__shcall.c | 2 +- src/internal/stdio_impl.h | 4 +++- src/internal/syscall.h | 2 +- 7 files changed, 7 insertions(+), 8 deletions(-) (limited to 'src/internal') 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 #include #include -#include "libc.h" +#include #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 -#include "libc.h" +#include 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 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 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 #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 #include -#include "libc.h" #include "syscall_arch.h" #ifndef SYSCALL_RLIM_INFINITY -- cgit v1.2.1