In the first part (instead of va-*.h), define __gnuc_va_list, as in gstdarg.h.
In the first part (instead of va-*.h), define __gnuc_va_list, as in gstdarg.h. Always use __gunc_va_list as basis for defining va_list. Move interaction with BSD-NET2 down to where va_list itself is defined. From-SVN: r2336
This commit is contained in:
parent
3041f3be02
commit
a5c8d7229b
@ -2,7 +2,7 @@
|
||||
/* Use the system's macros with the system's compiler. */
|
||||
#include <varargs.h>
|
||||
#else
|
||||
/* Record that varargs.h is defined; this turns off stdarg.h. */
|
||||
/* Record that this is varargs.h; this turns off stdarg.h. */
|
||||
|
||||
#ifndef _VARARGS_H
|
||||
#define _VARARGS_H
|
||||
@ -64,30 +64,15 @@
|
||||
/* The ... causes current_function_varargs to be set in cc1. */
|
||||
#define va_dcl int __builtin_va_alist; __va_ellipsis
|
||||
|
||||
#ifdef _HIDDEN_VA_LIST /* On OSF1, this means varargs.h is "half-loaded". */
|
||||
#undef _VA_LIST
|
||||
#endif
|
||||
/* Define __gnuc_va_list, just as in gstdarg.h. */
|
||||
|
||||
/* The macro _VA_LIST_ is the same thing used by this file in Ultrix. */
|
||||
/* But in 4.3bsd-net2, _VA_LIST_ has another meaning. So ignore it. */
|
||||
#if !defined (_VA_LIST_) || defined (_ANSI_H_)
|
||||
/* The macro _VA_LIST is used in SCO Unix 3.2. */
|
||||
#ifndef _VA_LIST
|
||||
#ifndef _VA_LIST_
|
||||
#define _VA_LIST_
|
||||
#ifndef __GNUC_VA_LIST
|
||||
#define __GNUC_VA_LIST
|
||||
#ifdef __svr4__
|
||||
typedef char *__gnuc_va_list;
|
||||
#else
|
||||
typedef void *__gnuc_va_list;
|
||||
#endif
|
||||
#define _VA_LIST
|
||||
/* Make this a macro rather than a typedef, so we can undef any other defn. */
|
||||
#define va_list __va___list
|
||||
typedef char * __va___list;
|
||||
#endif /* _VA_LIST */
|
||||
#endif /* !defined (_VA_LIST_) || defined (_ANSI_H_) */
|
||||
|
||||
/* In 4.3bsd-net2, it is said we must #undef this.
|
||||
I hope this successfully identifies that system.
|
||||
I don't know why this works--rms. */
|
||||
#ifdef _ANSI_H_
|
||||
#undef _VA_LIST_
|
||||
#endif
|
||||
|
||||
#define va_start(AP) AP=(char *) &__builtin_va_alist
|
||||
@ -112,14 +97,19 @@ typedef char * __va___list;
|
||||
#endif /* not sparc */
|
||||
#endif /* not _VARARGS_H */
|
||||
|
||||
#ifdef __GNUC_VA_LIST
|
||||
/* If an include file defined __GNUC_VA_LIST,
|
||||
copy it into va_list. */
|
||||
/* Define va_list from __gnuc_va_list. */
|
||||
|
||||
#ifdef _HIDDEN_VA_LIST /* On OSF1, this means varargs.h is "half-loaded". */
|
||||
#undef _VA_LIST
|
||||
#endif
|
||||
|
||||
/* In 4.3bsd-net2, _VA_LIST_ is defined by machine/ansi.h, but no
|
||||
typedef for va_list is in that file. Undef _VA_LIST_ here
|
||||
so we do define va_list. */
|
||||
#ifdef _ANSI_H_
|
||||
#undef _VA_LIST_
|
||||
#endif
|
||||
|
||||
/* The macro _VA_LIST_ is the same thing used by this file in Ultrix. */
|
||||
#ifndef _VA_LIST_
|
||||
/* The macro _VA_LIST is used in SCO Unix 3.2. */
|
||||
@ -129,6 +119,17 @@ typedef char * __va___list;
|
||||
typedef __gnuc_va_list va_list;
|
||||
#endif /* _VA_LIST */
|
||||
#endif /* _VA_LIST_ */
|
||||
#endif /* __GNUC_VA_LIST */
|
||||
|
||||
/* I think that in 4.3bsd-net2 there is some need
|
||||
to leave _VA_LIST_ undefined after. I don't know why. -- rms. */
|
||||
#ifdef _ANSI_H_
|
||||
#undef _VA_LIST_
|
||||
#endif
|
||||
|
||||
/* The next BSD release (if there is one) wants this symbol to be
|
||||
undefined instead of _VA_LIST_. */
|
||||
#ifdef _BSD_VA_LIST
|
||||
#undef _BSD_VA_LIST
|
||||
#endif
|
||||
|
||||
#endif /* __GNUC__ */
|
||||
|
Loading…
Reference in New Issue
Block a user