diff --git a/newlib/ChangeLog b/newlib/ChangeLog index cf840ee35..417c9fc51 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,9 @@ +2010-06-09 Paul Brook + + * libc/include/sys/reent.h (_reent): Adjust _REENT_SMALL to be + binary compatible with normal layout. + (_REENT_INIT): Adjust to match struct layout. + 2010-06-08 Jeff Johnston * libc/include/wordexp.h: Add __cplusplus wrapper. diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h index 12ac6b216..8518964f9 100644 --- a/newlib/libc/include/sys/reent.h +++ b/newlib/libc/include/sys/reent.h @@ -357,14 +357,15 @@ struct _misc_reent * ports with 16-bit int's but 32-bit pointers, align nicely. */ struct _reent { + /* As an exception to the above put _errno first for binary + compatibility with non _REENT_SMALL targets. */ + int _errno; /* local copy of errno */ /* FILE is a big struct and may change over time. To try to achieve binary compatibility with future versions, put stdin,stdout,stderr here. These are pointers into member __sf defined below. */ __FILE *_stdin, *_stdout, *_stderr; /* XXX */ - int _errno; /* local copy of errno */ - int _inc; /* used by tmpnam */ char *_emergency; @@ -405,12 +406,12 @@ extern const struct __sFILE_fake __sf_fake_stdin; extern const struct __sFILE_fake __sf_fake_stdout; extern const struct __sFILE_fake __sf_fake_stderr; -#define _REENT_INIT(var) \ - { (__FILE *)&__sf_fake_stdin, \ +# define _REENT_INIT(var) \ + { 0, \ + (__FILE *)&__sf_fake_stdin, \ (__FILE *)&__sf_fake_stdout, \ (__FILE *)&__sf_fake_stderr, \ 0, \ - 0, \ _NULL, \ 0, \ 0, \