From 4586200df3b7712fb7fda32a73bc7b8b4bd35cfd Mon Sep 17 00:00:00 2001 From: Earnie Boyd Date: Sun, 28 Jan 2001 16:40:19 +0000 Subject: [PATCH] *include/stdlib.h (__p__pgmptr): add prototype. (__p__wpgmptr): likewise. (_pgmptr_dll): move declaration from dos.h. (_wpgmptr_dll): likewise. (_pgmptr): conditional define (MSVCT/CRTDLL). (_wpgmptr): likewise. *include/dos.h (_base*_dll variables): declare only for CRTDLL. (_os*_dll variables): likewise. (_pgmptr_dll): remove declaration and associated defines to stdlib.h. (_wpgmptr_dll): likewise. --- winsup/mingw/ChangeLog | 12 ++++++++++++ winsup/mingw/include/dos.h | 17 ++--------------- winsup/mingw/include/stdlib.h | 21 +++++++++++++++++++++ 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 09a155294..1bdc35fa7 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,15 @@ +2001-01-28 Danny Smith + + *include/stdlib.h (__p__pgmptr): add prototype. + (__p__wpgmptr): likewise. + (_pgmptr_dll): move declaration from dos.h. + (_wpgmptr_dll): likewise. + (_pgmptr): conditional define (MSVCT/CRTDLL). + (_wpgmptr): likewise. + *include/dos.h (_base*_dll variables): declare only for CRTDLL. + (_os*_dll variables): likewise. + (_pgmptr_dll): remove declaration and associated defines to stdlib.h. + (_wpgmptr_dll): likewise. 2001-01-22 Danny Smith diff --git a/winsup/mingw/include/dos.h b/winsup/mingw/include/dos.h index a67c19962..57a89b53d 100644 --- a/winsup/mingw/include/dos.h +++ b/winsup/mingw/include/dos.h @@ -46,15 +46,8 @@ extern "C" { #endif +#ifndef __MSVCRT__ /* these are in CRTDLL, but not MSVCRT */ #ifndef __DECLSPEC_SUPPORTED - -extern char** __imp__pgmptr_dll; -#define _pgmptr (*__imp__pgmptr_dll) - -/* Wide character equivalent */ -extern wchar_t** __imp_wpgmptr_dll; -#define _wpgmptr (*__imp__wpgmptr_dll) - extern unsigned int *__imp__basemajor_dll; extern unsigned int *__imp__baseminor_dll; extern unsigned int *__imp__baseversion_dll; @@ -71,13 +64,6 @@ extern unsigned int *__imp__osmode_dll; #else /* __DECLSPEC_SUPPORTED */ -__MINGW_IMPORT char* _pgmptr_dll; -#define _pgmptr _pgmptr_dll - -/* Wide character equivalent */ -__MINGW_IMPORT wchar_t* _wpgmptr_dll; -#define _wpgmptr _wpgmptr_dll - __MINGW_IMPORT unsigned int _basemajor_dll; __MINGW_IMPORT unsigned int _baseminor_dll; __MINGW_IMPORT unsigned int _baseversion_dll; @@ -93,6 +79,7 @@ __MINGW_IMPORT unsigned int _osmode_dll; #define _osmode _osmode_dll #endif /* __DECLSPEC_SUPPORTED */ +#endif /* ! __MSVCRT__ */ #ifndef _DISKFREE_T_DEFINED /* needed by _getdiskfree (also in direct.h) */ diff --git a/winsup/mingw/include/stdlib.h b/winsup/mingw/include/stdlib.h index 71593de42..64d8867d7 100644 --- a/winsup/mingw/include/stdlib.h +++ b/winsup/mingw/include/stdlib.h @@ -252,6 +252,27 @@ __MINGW_IMPORT unsigned int _winminor_dll; #endif +#if defined __MSVCRT__ +/* although the _pgmptr is exported as DATA, + * be safe and use the access function __p__pgmptr() to get it. */ +char** __p__pgmptr(void); +#define _pgmptr (*__p__pgmptr()) +wchar_t** __p__wpgmptr(void); +#define _wpgmptr (*__p__wpgmptr()) +#else /* ! __MSVCRT__ */ +# ifndef __DECLSPEC_SUPPORTED + extern char** __imp__pgmptr_dll; +# define _pgmptr (*__imp__pgmptr_dll) + extern wchar_t** __imp_wpgmptr_dll; +# define _wpgmptr (*__imp__wpgmptr_dll) +# else /* __DECLSPEC_SUPPORTED */ + __MINGW_IMPORT char* _pgmptr_dll; +# define _pgmptr _pgmptr_dll + __MINGW_IMPORT wchar_t* _wpgmptr_dll; +# define _wpgmptr _wpgmptr_dll +# endif /* __DECLSPEC_SUPPORTED */ +#endif /* __MSVCRT__ */ + #endif /* Not __STRICT_ANSI__ */ #ifdef __GNUC__