From aa3a5e7698021f4e5a5d0c82a13efa7291f7c5b1 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 13 Mar 2025 16:37:37 -0400 Subject: [PATCH] headers: Drop _G_config.h from public headers. Adjust the two legacy stdc++ headers that still included it; it seems they didn't themselves depend on any of the definitions it contained. However, streambuf.h actually did, so put that definition in libio.h so that it's always present. (The stdc++ implementation will get the 'real' _G_config.h from libroot glibc.) --- headers/cpp/cmath | 1 - headers/cpp/libio.h | 1 + headers/cpp/stl_config.h | 1 - headers/cpp/streambuf.h | 4 -- headers/glibc/_G_config.h | 147 -------------------------------------- 5 files changed, 1 insertion(+), 153 deletions(-) delete mode 100644 headers/glibc/_G_config.h diff --git a/headers/cpp/cmath b/headers/cpp/cmath index 6ba8438007..f33b234728 100644 --- a/headers/cpp/cmath +++ b/headers/cpp/cmath @@ -3,7 +3,6 @@ #ifndef __CMATH__ #define __CMATH__ -#include <_G_config.h> #include #ifdef __GNUG__ diff --git a/headers/cpp/libio.h b/headers/cpp/libio.h index 258d052af6..6ddaadebbe 100644 --- a/headers/cpp/libio.h +++ b/headers/cpp/libio.h @@ -81,6 +81,7 @@ #define _IO_IS_APPENDING 0x1000 #define _IO_IS_FILEBUF 0x2000 #define _IO_BAD_SEEN 0x4000 +#define _G_IO_IO_FILE_VERSION 0x20001 /* These are "formatting flags" matching the iostream fmtflags enum values. */ #define _IO_SKIPWS 01 diff --git a/headers/cpp/stl_config.h b/headers/cpp/stl_config.h index 5c619adf1a..e7e99ca6ae 100644 --- a/headers/cpp/stl_config.h +++ b/headers/cpp/stl_config.h @@ -161,7 +161,6 @@ # endif # ifdef __GNUC__ -# include <_G_config.h> # define __STL_HAS_WCHAR_T # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) # define __STL_STATIC_TEMPLATE_MEMBER_BUG diff --git a/headers/cpp/streambuf.h b/headers/cpp/streambuf.h index 52f5a963ee..81f1c37269 100644 --- a/headers/cpp/streambuf.h +++ b/headers/cpp/streambuf.h @@ -55,12 +55,8 @@ extern "C" { #endif #ifndef _IO_wchar_t -#if _G_IO_IO_FILE_VERSION == 0x20001 -#define _IO_wchar_t _G_wchar_t -#else #define _IO_wchar_t wchar_t #endif -#endif extern "C++" { class istream; /* Work-around for a g++ name mangling bug. Fixed in 2.6. */ diff --git a/headers/glibc/_G_config.h b/headers/glibc/_G_config.h deleted file mode 100644 index b202b04222..0000000000 --- a/headers/glibc/_G_config.h +++ /dev/null @@ -1,147 +0,0 @@ -/* This file is needed by libio to define various configuration parameters. - These are always the same in the GNU C library. */ - -#ifndef _G_config_h -#define _G_config_h 1 - -// bonefish: Not needed. -// #include -// #include - -#define _GLIBCPP_USE_THREADS -#define _GLIBCPP_USE_WCHAR_T - -#ifndef _IO_MTSAFE_IO -#define _IO_MTSAFE_IO -#endif - -/* Define types for libio in terms of the standard internal type names. */ - -#include -#define __need_size_t -#define __need_wchar_t -#define __need_wint_t -#define __need_NULL -#define __need_ptrdiff_t -#include - -//#include - -#ifndef _WINT_T -/* Integral type unchanged by default argument promotions that can - hold any value corresponding to members of the extended character - set, as well as at least one value that does not correspond to any - member of the extended character set. */ -# define _WINT_T -typedef unsigned int wint_t; -#endif - -/* For use as part of glibc (native) or as part of libstdc++ (maybe - not glibc) */ -#ifndef __c_mbstate_t_defined -# define __c_mbstate_t_defined 1 -# ifdef _GLIBCPP_USE_WCHAR_T -typedef struct -{ - int count; - wint_t value; -} __c_mbstate_t; -# endif -#endif -#undef __need_mbstate_t - -typedef size_t _G_size_t; - - -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -typedef struct -{ - off_t __pos; - __c_mbstate_t __state; -} _G_fpos_t; - -typedef struct -{ - off_t __pos; - __c_mbstate_t __state; -} _G_fpos64_t; -#else -typedef off_t _G_fpos_t; -typedef off_t _G_fpos64_t; -#endif -#define __off_t off_t -#define _G_ssize_t ssize_t -#define _G_off_t off_t -#define _G_off64_t off_t -#define _G_pid_t pid_t -#define _G_uid_t uid_t -#define _G_wchar_t wchar_t -#define _G_wint_t wint_t -#define _G_stat64 stat - -// bonefish: Not needed. -// #include -// typedef union -// { -// struct __gconv_info __cd; -// struct -// { -// struct __gconv_info __cd; -// struct __gconv_step_data __data; -// } __combined; -// } _G_iconv_t; - - -typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); -typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); -typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); -typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); - -#define _G_HAVE_BOOL 1 - - -/* These library features are always available in the GNU C library. */ -#define _G_HAVE_ATEXIT 1 -#define _G_HAVE_SYS_CDEFS 1 -#define _G_HAVE_SYS_WAIT 1 -#define _G_NEED_STDARG_H 1 -#define _G_va_list __gnuc_va_list - -#define _G_HAVE_PRINTF_FP 1 -//#define _G_HAVE_MMAP 1 -#define _G_HAVE_LONG_DOUBLE_IO 1 -#define _G_HAVE_IO_FILE_OPEN 1 -#define _G_HAVE_IO_GETLINE_INFO 1 - -#define _G_IO_IO_FILE_VERSION 0x20001 - -//#define _G_OPEN64 __open64 -//#define _G_LSEEK64 __lseek64 -//#define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf) - -/* This is defined by if `st_blksize' exists. */ -/*#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)*/ - -#define _G_BUFSIZ 8192 - -/* These are the vtbl details for ELF. */ -#define _G_NAMES_HAVE_UNDERSCORE 0 -#define _G_VTABLE_LABEL_HAS_LENGTH 1 -// avoid vtable-thunks, as BeOS never used those: -#ifdef _G_USING_THUNKS -#undef _G_USING_THUNKS -#endif /* _G_USING_THUNKS */ -#define _G_VTABLE_LABEL_PREFIX "_vt." -#define _G_VTABLE_LABEL_PREFIX_ID _vt. - -#define _G_INTERNAL_CCS "UCS4" -#define _G_HAVE_WEAK_SYMBOL 1 -#define _G_STDIO_USES_LIBIO 1 - -#if defined __cplusplus || defined __STDC__ -# define _G_ARGS(ARGLIST) ARGLIST -#else -# define _G_ARGS(ARGLIST) () -#endif - -#endif /* _G_config.h */