* libc/include/sys/cdefs.h (__CONCAT1): Define.
(__CONCAT): Define. (__STRING): Define. (__XSTRING): Define. (__ASMNAME): Define. * libc/include/string.h (strerror_r): Use __ASMNAME to take target specific label prefixes into account.
This commit is contained in:
parent
b7351dcfb1
commit
977cd4175e
|
@ -1,3 +1,13 @@
|
||||||
|
2011-03-03 Corinna Vinschen <vinschen@redhat.com>
|
||||||
|
|
||||||
|
* libc/include/sys/cdefs.h (__CONCAT1): Define.
|
||||||
|
(__CONCAT): Define.
|
||||||
|
(__STRING): Define.
|
||||||
|
(__XSTRING): Define.
|
||||||
|
(__ASMNAME): Define.
|
||||||
|
* libc/include/string.h (strerror_r): Use __ASMNAME to take target
|
||||||
|
specific label prefixes into account.
|
||||||
|
|
||||||
2011-03-01 Aaron Landwehr <snaphat@gmail.com>
|
2011-03-01 Aaron Landwehr <snaphat@gmail.com>
|
||||||
|
|
||||||
* libm/complex/cproj.c: Fix typo.
|
* libm/complex/cproj.c: Fix typo.
|
||||||
|
|
|
@ -74,7 +74,7 @@ char *_EXFUN(_strndup_r,(struct _reent *, const char *, size_t));
|
||||||
char *_EXFUN(strerror_r,(int, char *, size_t));
|
char *_EXFUN(strerror_r,(int, char *, size_t));
|
||||||
#else
|
#else
|
||||||
# ifdef __GNUC__
|
# ifdef __GNUC__
|
||||||
int _EXFUN(strerror_r,(int, char *, size_t)) __asm__ ("__xpg_strerror_r");
|
int _EXFUN(strerror_r,(int, char *, size_t)) __asm__ (__ASMNAME ("__xpg_strerror_r"));
|
||||||
# else
|
# else
|
||||||
int _EXFUN(__xpg_strerror_r,(int, char *, size_t));
|
int _EXFUN(__xpg_strerror_r,(int, char *, size_t));
|
||||||
# define strerror_r __xpg_strerror_r
|
# define strerror_r __xpg_strerror_r
|
||||||
|
|
|
@ -58,6 +58,27 @@
|
||||||
#define __DOTS , ...
|
#define __DOTS , ...
|
||||||
#define __THROW
|
#define __THROW
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The __CONCAT macro is used to concatenate parts of symbol names, e.g.
|
||||||
|
* with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
|
||||||
|
* The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
|
||||||
|
* mode -- there must be no spaces between its arguments, and for nested
|
||||||
|
* __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also
|
||||||
|
* concatenate double-quoted strings produced by the __STRING macro, but
|
||||||
|
* this only works with ANSI C.
|
||||||
|
*
|
||||||
|
* __XSTRING is like __STRING, but it expands any macros in its argument
|
||||||
|
* first. It is only available with ANSI C.
|
||||||
|
*/
|
||||||
|
#define __CONCAT1(x,y) x ## y
|
||||||
|
#define __CONCAT(x,y) __CONCAT1(x,y)
|
||||||
|
#define __STRING(x) #x /* stringify without expanding x */
|
||||||
|
#define __XSTRING(x) __STRING(x) /* expand x, then stringify */
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
# define __ASMNAME(cname) __XSTRING (__USER_LABEL_PREFIX__) cname
|
||||||
|
#endif
|
||||||
|
|
||||||
#define __ptr_t void *
|
#define __ptr_t void *
|
||||||
#define __long_double_t long double
|
#define __long_double_t long double
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue