summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-05-10 02:02:54 +0000
committerobrien <obrien@FreeBSD.org>2002-05-10 02:02:54 +0000
commit707b0b13a68bb4f18608bc2b61b968b1d11f7f4f (patch)
treeb2c2da53a08934116f97d9b8df58bf01fd5f8452 /sys
parent4267f26cd12834761ab9e3002ec3be631a3557c6 (diff)
downloadFreeBSD-src-707b0b13a68bb4f18608bc2b61b968b1d11f7f4f.zip
FreeBSD-src-707b0b13a68bb4f18608bc2b61b968b1d11f7f4f.tar.gz
Gcc 3.1 varargs support.
Diffstat (limited to 'sys')
-rw-r--r--sys/alpha/include/ansi.h4
-rw-r--r--sys/alpha/include/stdarg.h25
-rw-r--r--sys/alpha/include/varargs.h23
-rw-r--r--sys/amd64/include/varargs.h18
-rw-r--r--sys/i386/include/ansi.h2
-rw-r--r--sys/i386/include/stdarg.h23
-rw-r--r--sys/i386/include/varargs.h18
-rw-r--r--sys/sparc64/include/ansi.h2
-rw-r--r--sys/sparc64/include/stdarg.h20
-rw-r--r--sys/sparc64/include/varargs.h20
10 files changed, 133 insertions, 22 deletions
diff --git a/sys/alpha/include/ansi.h b/sys/alpha/include/ansi.h
index 3c4b58a..87966c3 100644
--- a/sys/alpha/include/ansi.h
+++ b/sys/alpha/include/ansi.h
@@ -72,8 +72,8 @@
#define _BSD_OFF_T_ long /* file offset */
#define _BSD_PID_T_ int /* process [group] */
-#if defined(__GNUC__) && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 95)
-#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */
#else
typedef struct {
char *__base;
diff --git a/sys/alpha/include/stdarg.h b/sys/alpha/include/stdarg.h
index 2003b7b..1632add 100644
--- a/sys/alpha/include/stdarg.h
+++ b/sys/alpha/include/stdarg.h
@@ -1,7 +1,5 @@
-/* $FreeBSD$ */
-/* From: NetBSD: stdarg.h,v 1.7 1997/04/06 08:47:44 cgd Exp */
-
/*-
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
@@ -34,6 +32,8 @@
* SUCH DAMAGE.
*
* @(#)stdarg.h 8.1 (Berkeley) 6/10/93
+ * $NetBSD: stdarg.h,v 1.7 1997/04/06 08:47:44 cgd Exp $
+ * $FreeBSD$
*/
#ifndef _ALPHA_STDARG_H_
@@ -41,13 +41,26 @@
#include <machine/ansi.h>
+typedef _BSD_VA_LIST_ va_list;
+
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#define va_start(ap, last) \
+ __builtin_stdarg_start((ap), (last))
+
+#define va_arg(ap, type) \
+ __builtin_va_arg((ap), type)
+
+#define va_end(ap) \
+ __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
+
#ifdef __lint__
#define __builtin_saveregs() (0)
#define __builtin_classify_type(t) (0)
#endif
-typedef _BSD_VA_LIST_ va_list;
-
#define __va_size(type) \
(((sizeof(type) + sizeof(long) - 1) / sizeof(long)) * sizeof(long))
@@ -65,4 +78,6 @@ typedef _BSD_VA_LIST_ va_list;
#define va_end(ap) ((void)0)
+#endif /* __GNUC__ post GCC 2.95 */
+
#endif /* !_ALPHA_STDARG_H_ */
diff --git a/sys/alpha/include/varargs.h b/sys/alpha/include/varargs.h
index d355ec8..bcf9ed3 100644
--- a/sys/alpha/include/varargs.h
+++ b/sys/alpha/include/varargs.h
@@ -1,7 +1,5 @@
-/* $FreeBSD$ */
-/* From: NetBSD: varargs.h,v 1.7 1997/04/06 08:47:46 cgd Exp */
-
/*-
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
* (c) UNIX System Laboratories, Inc.
@@ -39,11 +37,28 @@
* SUCH DAMAGE.
*
* @(#)varargs.h 8.2 (Berkeley) 3/22/94
+ * $NetBSD: varargs.h,v 1.7 1997/04/06 08:47:46 cgd Exp $
+ * $FreeBSD$
*/
#ifndef _ALPHA_VARARGS_H_
#define _ALPHA_VARARGS_H_
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#include <machine/ansi.h>
+
+typedef _BSD_VA_LIST_ va_list;
+typedef int __builtin_va_alist_t __attribute__((__mode__(__word__)));
+
+#define va_alist __builtin_va_alist
+#define va_dcl __builtin_va_alist_t __builtin_va_alist; ...
+#define va_start(ap) __builtin_varargs_start(ap)
+#define va_arg(ap, type) __builtin_va_arg((ap), type)
+#define va_end(ap) __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
+
#include <machine/stdarg.h>
#if __GNUC__ == 1
@@ -59,4 +74,6 @@
#define va_start(ap) \
((ap) = *(va_list *)__builtin_saveregs(), (ap).__pad = 0)
+#endif /* __GNUC__ post GCC 2.95 */
+
#endif /* !_ALPHA_VARARGS_H_ */
diff --git a/sys/amd64/include/varargs.h b/sys/amd64/include/varargs.h
index d1d4ed0..bcaf875 100644
--- a/sys/amd64/include/varargs.h
+++ b/sys/amd64/include/varargs.h
@@ -1,4 +1,5 @@
/*-
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
* (c) UNIX System Laboratories, Inc.
@@ -42,6 +43,21 @@
#ifndef _VARARGS_H_
#define _VARARGS_H_
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#include <machine/ansi.h>
+
+typedef _BSD_VA_LIST_ va_list;
+typedef int __builtin_va_alist_t __attribute__((__mode__(__word__)));
+
+#define va_alist __builtin_va_alist
+#define va_dcl __builtin_va_alist_t __builtin_va_alist; ...
+#define va_start(ap) __builtin_varargs_start(ap)
+#define va_arg(ap, type) __builtin_va_arg((ap), type)
+#define va_end(ap) __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
+
typedef char *va_list;
#define __va_size(type) \
@@ -64,4 +80,6 @@ typedef char *va_list;
#define va_end(ap)
+#endif /* __GNUC__ post GCC 2.95 */
+
#endif /* !_VARARGS_H_ */
diff --git a/sys/i386/include/ansi.h b/sys/i386/include/ansi.h
index 7f2bf3c..d81551d 100644
--- a/sys/i386/include/ansi.h
+++ b/sys/i386/include/ansi.h
@@ -71,7 +71,7 @@
#define _BSD_OFF_T_ __int64_t /* file offset */
#define _BSD_PID_T_ int /* process [group] */
-#if defined(__GNUC__) && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 95)
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */
#else
#define _BSD_VA_LIST_ char * /* va_list */
diff --git a/sys/i386/include/stdarg.h b/sys/i386/include/stdarg.h
index 3c7f17b..aa5cea8 100644
--- a/sys/i386/include/stdarg.h
+++ b/sys/i386/include/stdarg.h
@@ -1,4 +1,5 @@
/*-
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
*
@@ -37,21 +38,29 @@
#ifndef _STDARG_H_
#define _STDARG_H_
-#if defined __GNUC__ && ((__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || __GNUC__ > 2)
-#include <machine/gcc_stdarg.h>
-#else /* __GNUC__ */
-
#include <machine/ansi.h>
typedef _BSD_VA_LIST_ va_list;
-#define __va_size(type) \
- (((sizeof(type) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#define va_start(ap, last) \
+ __builtin_stdarg_start((ap), (last))
+
+#define va_arg(ap, type) \
+ __builtin_va_arg((ap), type)
+
+#define va_end(ap) \
+ __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
#ifdef __GNUC__
#define va_start(ap, last) \
((ap) = (va_list)__builtin_next_arg(last))
#else
+#define __va_size(type) \
+ (((sizeof(type) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
#define va_start(ap, last) \
((ap) = (va_list)&(last) + __va_size(last))
#endif
@@ -61,6 +70,6 @@ typedef _BSD_VA_LIST_ va_list;
#define va_end(ap)
-#endif /* __GNUC__ */
+#endif /* __GNUC__ post GCC 2.95 */
#endif /* !_STDARG_H_ */
diff --git a/sys/i386/include/varargs.h b/sys/i386/include/varargs.h
index d1d4ed0..bcaf875 100644
--- a/sys/i386/include/varargs.h
+++ b/sys/i386/include/varargs.h
@@ -1,4 +1,5 @@
/*-
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
* (c) UNIX System Laboratories, Inc.
@@ -42,6 +43,21 @@
#ifndef _VARARGS_H_
#define _VARARGS_H_
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#include <machine/ansi.h>
+
+typedef _BSD_VA_LIST_ va_list;
+typedef int __builtin_va_alist_t __attribute__((__mode__(__word__)));
+
+#define va_alist __builtin_va_alist
+#define va_dcl __builtin_va_alist_t __builtin_va_alist; ...
+#define va_start(ap) __builtin_varargs_start(ap)
+#define va_arg(ap, type) __builtin_va_arg((ap), type)
+#define va_end(ap) __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
+
typedef char *va_list;
#define __va_size(type) \
@@ -64,4 +80,6 @@ typedef char *va_list;
#define va_end(ap)
+#endif /* __GNUC__ post GCC 2.95 */
+
#endif /* !_VARARGS_H_ */
diff --git a/sys/sparc64/include/ansi.h b/sys/sparc64/include/ansi.h
index 01a0cd9..8ff6361 100644
--- a/sys/sparc64/include/ansi.h
+++ b/sys/sparc64/include/ansi.h
@@ -72,7 +72,7 @@
#define _BSD_OFF_T_ long /* file offset */
#define _BSD_PID_T_ int /* process [group] */
-#if defined(__GNUC__) && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 95)
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */
#else
#define _BSD_VA_LIST_ char * /* va_list */
diff --git a/sys/sparc64/include/stdarg.h b/sys/sparc64/include/stdarg.h
index 2f0fd8c..c126af0 100644
--- a/sys/sparc64/include/stdarg.h
+++ b/sys/sparc64/include/stdarg.h
@@ -1,4 +1,5 @@
/*
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
*
@@ -32,8 +33,8 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * from: @(#)stdarg.h 8.2 (Berkeley) 9/27/93
- * from: NetBSD: stdarg.h,v 1.11 2000/07/23 21:36:56 mycroft Exp
+ * @(#)stdarg.h 8.2 (Berkeley) 9/27/93
+ * $NetBSD: stdarg.h,v 1.11 2000/07/23 21:36:56 mycroft Exp $
* $FreeBSD$
*/
@@ -44,6 +45,19 @@
typedef _BSD_VA_LIST_ va_list;
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#define va_start(ap, last) \
+ __builtin_stdarg_start((ap), (last))
+
+#define va_arg(ap, type) \
+ __builtin_va_arg((ap), type)
+
+#define va_end(ap) \
+ __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
+
#define va_start(ap, last) \
(__builtin_next_arg(last), (ap) = (va_list)__builtin_saveregs())
@@ -69,4 +83,6 @@ typedef _BSD_VA_LIST_ va_list;
(sizeof(type) <= 16 ? __va_arg16(ap, type) : \
*__va_arg8(ap, type *)))))
+#endif /* __GNUC__ post GCC 2.95 */
+
#endif /* !_MACHINE_STDARG_H_ */
diff --git a/sys/sparc64/include/varargs.h b/sys/sparc64/include/varargs.h
index 5f8fb7d..dd7e3a3 100644
--- a/sys/sparc64/include/varargs.h
+++ b/sys/sparc64/include/varargs.h
@@ -1,4 +1,5 @@
/*
+ * Copyright (c) 2002 David E. O'Brien. All rights reserved.
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
* (c) UNIX System Laboratories, Inc.
@@ -44,10 +45,25 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * from: @(#)varargs.h 8.3 (Berkeley) 3/22/94
+ * @(#)varargs.h 8.3 (Berkeley) 3/22/94
* $FreeBSD$
*/
+#if defined(__GNUC__) && (__GNUC__ == 2 && __GNUC_MINOR__ > 95 || __GNUC__ >= 3)
+
+#include <machine/ansi.h>
+
+typedef _BSD_VA_LIST_ va_list;
+typedef int __builtin_va_alist_t __attribute__((__mode__(__word__)));
+
+#define va_alist __builtin_va_alist
+#define va_dcl __builtin_va_alist_t __builtin_va_alist; ...
+#define va_start(ap) __builtin_varargs_start(ap)
+#define va_arg(ap, type) __builtin_va_arg((ap), type)
+#define va_end(ap) __builtin_va_end(ap)
+
+#else /* ! __GNUC__ post GCC 2.95 */
+
#ifndef _MACHINE_VARARGS_H_
#define _MACHINE_VARARGS_H_
@@ -66,4 +82,6 @@
#define va_start(ap) \
((ap) = (va_list)__builtin_saveregs())
+#endif /* __GNUC__ post GCC 2.95 */
+
#endif /* !_MACHINE_VARARGS_H_ */
OpenPOWER on IntegriCloud