diff --git a/libs/libc/misc/lib_impure.c b/libs/libc/misc/lib_impure.c index eaa75dac9fe..4fbdec066d7 100644 --- a/libs/libc/misc/lib_impure.c +++ b/libs/libc/misc/lib_impure.c @@ -44,10 +44,14 @@ * Public Functions ****************************************************************************/ -#ifdef _REENT_SMALL +#if defined(_REENT_SMALL) && \ + (defined(__NEWLIB__) || __NEWLIB__ < 4 || \ + __NEWLIB__ == 4 && __NEWLIB_MINOR__ < 2) extern struct __sFILE_fake __sf_fake_stdin _ATTRIBUTE((weak)); extern struct __sFILE_fake __sf_fake_stdout _ATTRIBUTE((weak)); extern struct __sFILE_fake __sf_fake_stderr _ATTRIBUTE((weak)); +#else +extern __FILE __sf[3] _ATTRIBUTE((weak)); #endif static struct _reent __ATTRIBUTE_IMPURE_DATA__