diff options
author | Zack Weinberg <zackw@panix.com> | 2016-11-20 23:00:02 -0500 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2017-06-08 13:58:17 -0400 |
commit | 199fc19d3aaaf57944ef036e15904febe877fc93 (patch) | |
tree | 5056d2447de58c0bb197d87740098220f556b242 /libio | |
parent | 4615f5aefeaa45345484a9ce8e3d0ea977c80d80 (diff) | |
download | glibc-199fc19d3aaaf57944ef036e15904febe877fc93.tar.gz |
Remove __need macros from stdio.h and wchar.h.
wint_t is a little finicky because it might be defined by stddef.h, which
belongs to the compiler.
In addition to the _types_, a bunch of other declarations shared between
wctype.h and wchar.h are factored out to their own header.
* libio/bits/types/FILE.h, libio/bits/types/__FILE.h
* wcsmbs/bits/types/mbstate_t.h, wcsmbs/bits/types/__mbstate_t.h
* wcsmbs/bits/types/wint_t.h: New single-type definition files.
* wctype/bits/wctype-wchar.h: New file holding declarations shared
between wctype.h and wchar.h.
* libio/Makefile, wcsmbs/Makefile, wctype/Makefile:
Install them.
* include/bits/types/FILE.h, include/bits/types/__FILE.h
* include/bits/types/mbstate_t.h, include/bits/types/__mbstate_t.h
* include/bits/types/wint_t.h, include/bits/wcsmbs-wchar.h:
New wrappers.
* include/stdio.h, include/wchar.h, include/wctype.h:
No need to handle __need macros.
* grp/grp.h, gshadow/gshadow.h, hurd/hurd.h, iconv/gconv.h
* libio/stdio.h, mach/mach.h, misc/mntent.h, pwd/pwd.h
* shadow/shadow.h, stdio-common/printf.h, wcsmbs/uchar.h
* wcsmbs/wchar.h, wctype/wctype.h
* sysdeps/generic/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h
Use the new files instead of __need macros.
Diffstat (limited to 'libio')
-rw-r--r-- | libio/Makefile | 3 | ||||
-rw-r--r-- | libio/bits/types/FILE.h | 9 | ||||
-rw-r--r-- | libio/bits/types/__FILE.h | 7 | ||||
-rw-r--r-- | libio/stdio.h | 47 |
4 files changed, 27 insertions, 39 deletions
diff --git a/libio/Makefile b/libio/Makefile index be252f740f..a002a3365c 100644 --- a/libio/Makefile +++ b/libio/Makefile @@ -23,7 +23,8 @@ subdir := libio include ../Makeconfig headers := stdio.h libio.h _G_config.h bits/stdio.h \ - bits/sys_errlist.h bits/stdio2.h bits/stdio-ldbl.h bits/libio-ldbl.h + bits/sys_errlist.h bits/stdio2.h bits/stdio-ldbl.h bits/libio-ldbl.h \ + bits/types/FILE.h bits/types/__FILE.h routines := \ filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \ diff --git a/libio/bits/types/FILE.h b/libio/bits/types/FILE.h new file mode 100644 index 0000000000..f268263209 --- /dev/null +++ b/libio/bits/types/FILE.h @@ -0,0 +1,9 @@ +#ifndef __FILE_defined +#define __FILE_defined 1 + +struct _IO_FILE; + +/* The opaque type of streams. This is the definition used elsewhere. */ +typedef struct _IO_FILE FILE; + +#endif diff --git a/libio/bits/types/__FILE.h b/libio/bits/types/__FILE.h new file mode 100644 index 0000000000..06dd79bc83 --- /dev/null +++ b/libio/bits/types/__FILE.h @@ -0,0 +1,7 @@ +#ifndef ____FILE_defined +#define ____FILE_defined 1 + +struct _IO_FILE; +typedef struct _IO_FILE __FILE; + +#endif diff --git a/libio/stdio.h b/libio/stdio.h index 422f39daf5..47490c8299 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -21,48 +21,21 @@ */ #ifndef _STDIO_H +#define _STDIO_H 1 -#if !defined __need_FILE && !defined __need___FILE -# define _STDIO_H 1 -# define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION -# include <bits/libc-header-start.h> +#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION +#include <bits/libc-header-start.h> __BEGIN_DECLS -# define __need_size_t -# define __need_NULL -# include <stddef.h> +#define __need_size_t +#define __need_NULL +#include <stddef.h> -# include <bits/types.h> -# define __need_FILE -# define __need___FILE -#endif /* Don't need FILE. */ +#include <bits/types.h> +#include <bits/types/__FILE.h> +#include <bits/types/FILE.h> - -#if !defined __FILE_defined && defined __need_FILE - -/* Define outside of namespace so the C++ is happy. */ -struct _IO_FILE; - -/* The opaque type of streams. This is the definition used elsewhere. */ -typedef struct _IO_FILE FILE; - -# define __FILE_defined 1 -#endif /* FILE not defined. */ -#undef __need_FILE - - -#if !defined ____FILE_defined && defined __need___FILE - -/* The opaque type of streams. This is the definition used elsewhere. */ -typedef struct _IO_FILE __FILE; - -# define ____FILE_defined 1 -#endif /* __FILE not defined. */ -#undef __need___FILE - - -#ifdef _STDIO_H #define _STDIO_USES_IOSTREAM #include <libio.h> @@ -895,5 +868,3 @@ extern void funlockfile (FILE *__stream) __THROW; __END_DECLS #endif /* <stdio.h> included. */ - -#endif /* !_STDIO_H */ |