https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=3bbc40af2aa41c12e73ac4f6bc1b9c56554e59c6
commit 3bbc40af2aa41c12e73ac4f6bc1b9c56554e59c6 Author: Corinna Vinschen <[email protected]> Date: Thu Aug 18 14:26:42 2016 +0200 Revert "Fix __getreent function for Cygwin" This reverts commit 4de8596. It worked around a problem which was actually introduced by patch 10a30e7 a few weeks ago. Rather than adding special code to the newlib version of __getreent, the followup patch reinstantiates the original, Cygwin-only implementation of __getreent. Signed-off-by: Corinna Vinschen <[email protected]> Signed-off-by: Stefan Assmann <[email protected]> Diff: --- newlib/libc/reent/getreent.c | 7 +------ winsup/cygwin/include/cygwin/config.h | 3 +-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/newlib/libc/reent/getreent.c b/newlib/libc/reent/getreent.c index 1769232..60ae6fb 100644 --- a/newlib/libc/reent/getreent.c +++ b/newlib/libc/reent/getreent.c @@ -1,4 +1,5 @@ /* default reentrant pointer when multithread enabled */ + #include <_ansi.h> #include <reent.h> @@ -9,11 +10,5 @@ struct _reent * _DEFUN_VOID(__getreent) { -#ifdef __CYGWIN__ - /* Utilize Cygwin's inline definition from include/cygwin/config.h - (note the extra underscore) */ - return __inline_getreent (); -#else return _impure_ptr; -#endif } diff --git a/winsup/cygwin/include/cygwin/config.h b/winsup/cygwin/include/cygwin/config.h index 585a256..c09641e 100644 --- a/winsup/cygwin/include/cygwin/config.h +++ b/winsup/cygwin/include/cygwin/config.h @@ -42,7 +42,7 @@ extern "C" { #include "../tlsoffsets.h" #endif __attribute__((gnu_inline)) -extern inline struct _reent *__inline_getreent (void) +extern inline struct _reent *__getreent (void) { register char *ret; #ifdef __x86_64__ @@ -52,7 +52,6 @@ extern inline struct _reent *__inline_getreent (void) #endif return (struct _reent *) (ret + tls_local_clib); } -#define __getreent() __inline_getreent() #endif /* _COMPILING_NEWLIB */ #ifdef __x86_64__
