new port - BeOS patches
Fred Fish
fnf@ninemoons.com
Sun Sep 7 09:22:00 GMT 1997
With these patches, and patches I've previously sent, EGCS gcc now
builds on BeOS. It does not yet bootstrap because of some
incompatibility with the BeOS runtime that I'm still trying to find.
To use it, you need a BeOS port of binutils, which is available at
ftp.ninemoons.com in pub/be/geekgadgets.
The ginclude/* patches are from a merge of my much older gcc 2.7.2
port and I'm not entirely sure they are acceptable as is. It has been
a long time since I generated them, and I've since forgotten the finer
details of how these incredibly messy files are meant to work. If
they are not acceptable, please feel free to leave them out for now.
Suggestions for improvements are gratefully accepted. :-)
The BeOS changes in config.sub and config.guess should probably be
installed in whatever master copy the FSF has, but I don't have direct
access to those copies at this time.
I've left out the diffs for the regenerated configure file, but the
ChangeLog entry is included.
-Fred
===================================================================
===================================================================
For egcs/ChangeLog:
Sun Sep 7 09:10:38 1997 Fred Fish <fnf@ninemoons.com>
* config.guess: Add BeOS support.
For egcs/gcc/ChangeLog:
Sun Sep 7 08:14:18 1997 Fred Fish <fnf@ninemoons.com>
* config.sub: Add support for BeOS target.
* configure.in: Ditto.
* ginclude/stdarg.h: Ditto.
* ginclude/stddef.h: Ditto.
* ginclude/varargs.h: Ditto.
* config/rs6000/beos.h: New file for BeOS.
* config/rs6000/t-beos: Ditto.
* config/rs6000/x-beos: Ditto.
* config/rs6000/xm-beos.h: Ditto.
* configure: Regenerate.
* toplev.c (get_run_time): Just return 0 on BeOS, for now.
Index: config.guess
===================================================================
RCS file: /cvsroot/gg/egcs/config.guess,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 config.guess
*** config.guess 1997/09/04 04:43:24 1.1.1.1
--- config.guess 1997/09/07 16:24:49
***************
*** 711,716 ****
--- 711,722 ----
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
Index: gcc/config.sub
===================================================================
RCS file: /cvsroot/gg/egcs/gcc/config.sub,v
retrieving revision 1.2
diff -c -r1.2 config.sub
*** config.sub 1997/09/06 01:37:22 1.2
--- config.sub 1997/09/07 16:24:51
***************
*** 706,712 ****
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
! | -mingw32* | -linux-gnu* | -uxpv*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-linux*)
--- 706,712 ----
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
! | -mingw32* | -linux-gnu* | -uxpv* | -beos* )
# Remember, each alternative MUST END IN *, to match a version number.
;;
-linux*)
***************
*** 885,890 ****
--- 885,893 ----
f301-fujitsu)
os=-uxpv
;;
+ *-be)
+ os=-beos
+ ;;
*)
os=-none
;;
***************
*** 935,940 ****
--- 938,946 ----
;;
-aux*)
vendor=apple
+ ;;
+ -beos*)
+ vendor=be
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
Index: gcc/configure.in
===================================================================
RCS file: /cvsroot/gg/egcs/gcc/configure.in,v
retrieving revision 1.3
diff -c -r1.3 configure.in
*** configure.in 1997/09/06 06:55:51 1.3
--- configure.in 1997/09/07 16:24:51
***************
*** 2106,2111 ****
--- 2106,2118 ----
xmake_file=romp/x-mach
use_collect2=yes
;;
+ powerpc-*-beos*)
+ cpu_type=rs6000
+ tm_file=rs6000/beos.h
+ xm_file=rs6000/xm-beos.h
+ tmake_file=rs6000/t-beos
+ xmake_file=rs6000/x-beos
+ ;;
powerpc-*-sysv* | powerpc-*-elf*)
tm_file=rs6000/sysv4.h
xm_file=rs6000/xm-sysv4.h
Index: gcc/toplev.c
===================================================================
RCS file: /cvsroot/gg/egcs/gcc/toplev.c,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 toplev.c
*** toplev.c 1997/09/04 04:44:08 1.1.1.1
--- toplev.c 1997/09/07 16:24:52
***************
*** 997,1002 ****
--- 997,1005 ----
if (quiet_flag)
return 0;
+ #ifdef __BEOS__
+ return (0);
+ #else /* not BeOS */
#ifdef _WIN32
if (clock() < 0)
return 0;
***************
*** 1014,1022 ****
#else /* VMS */
times (&vms_times);
return (vms_times.proc_user_time + vms_times.proc_system_time) * 10000;
! #endif
! #endif
! #endif
}
#define TIMEVAR(VAR, BODY) \
--- 1017,1026 ----
#else /* VMS */
times (&vms_times);
return (vms_times.proc_user_time + vms_times.proc_system_time) * 10000;
! #endif /* VMS */
! #endif /* USG */
! #endif /* _WIN32 */
! #endif /* __BEOS__ */
}
#define TIMEVAR(VAR, BODY) \
Index: gcc/config/rs6000/beos.h
===================================================================
RCS file: beos.h
diff -N beos.h
*** /dev/null Sun Sep 7 05:36:51 1997
--- beos.h Sun Sep 7 09:25:08 1997
***************
*** 0 ****
--- 1,124 ----
+ /* Definitions of target machine for GNU compiler, for BeOS.
+ Copyright (C) 1997 Free Software Foundation, Inc.
+ Contributed by Fred Fish (fnf@cygnus.com), based on aix41.h
+ from David Edelsohn (edelsohn@npac.syr.edu).
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+
+ /* Enable AIX XL compiler calling convention breakage compatibility. */
+ #define MASK_XL_CALL 0x40000000
+ #define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
+ #undef SUBTARGET_SWITCHES
+ #define SUBTARGET_SWITCHES \
+ {"xl-call", MASK_XL_CALL}, \
+ {"no-xl-call", - MASK_XL_CALL}, \
+ {"threads", 0}, \
+ {"pe", 0},
+
+ #include "rs6000/rs6000.h"
+
+ #undef ASM_SPEC
+ #define ASM_SPEC "-u %(asm_cpu)"
+
+ #undef CPP_PREDEFINES
+ /* __POWERPC__ must be defined for some header files */
+ #define CPP_PREDEFINES "-D__BEOS__ -D__POWERPC__ -Asystem(beos) -Acpu(powerpc) -Amachine(powerpc)"
+
+ #undef CPP_SPEC
+ #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_cpu)"
+
+ #undef CPP_DEFAULT_SPEC
+ #define CPP_DEFAULT_SPEC "-D_ARCH_PPC"
+
+ /* This is the easiest way to disable use of gcc's builtin alloca,
+ which in the current BeOS release (DR9) is a problem because of the
+ relatively low default stack size of 256K with no way to expand it.
+ So anything we compile for the BeOS target should not use the
+ builtin alloca. This also has the unwanted side effect of
+ disabling all builtin functions though. */
+
+ #undef CC1_SPEC
+ #define CC1_SPEC "%{!fbuiltin: -fno-builtin}"
+ #undef CC1PLUS_SPEC
+ #define CC1PLUS_SPEC "%{!fbuiltin: -fno-builtin}"
+
+ #undef ASM_DEFAULT_SPEC
+ #define ASM_DEFAULT_SPEC "-mppc"
+
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
+
+ #undef PROCESSOR_DEFAULT
+ #define PROCESSOR_DEFAULT PROCESSOR_PPC603
+
+ /* Define this macro as a C expression for the initializer of an
+ array of string to tell the driver program which options are
+ defaults for this target and thus do not need to be handled
+ specially when using `MULTILIB_OPTIONS'.
+
+ Do not define this macro if `MULTILIB_OPTIONS' is not defined in
+ the target makefile fragment or if none of the options listed in
+ `MULTILIB_OPTIONS' are set by default. *Note Target Fragment::. */
+
+ #undef MULTILIB_DEFAULTS
+ #define MULTILIB_DEFAULTS { "mcpu=powerpc" }
+
+ /* These are not necessary when we pass -u to the assembler, and undefining
+ them saves a great deal of space in object files. */
+
+ #undef ASM_OUTPUT_EXTERNAL
+ #undef ASM_OUTPUT_EXTERNAL_LIBCALL
+ #define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
+ { rtx _symref = XEXP (DECL_RTL (DECL), 0); \
+ if ((TREE_CODE (DECL) == VAR_DECL \
+ || TREE_CODE (DECL) == FUNCTION_DECL) \
+ && (NAME)[strlen (NAME) - 1] != ']') \
+ { \
+ char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
+ strcpy (_name, XSTR (_symref, 0)); \
+ strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
+ XSTR (_symref, 0) = _name; \
+ } \
+ }
+
+ /* These empty definitions get rid of the attempt to link in crt0.o
+ and any libraries like libc.a.
+ On BeOS the ld executable is actually a linker front end that first runs
+ the GNU linker with the -r option to generate a relocatable XCOFF output
+ file, and then runs Metrowork's linker (mwld) to generate a fully linked
+ executable. */
+
+ #undef LIB_SPEC
+ #define LIB_SPEC ""
+
+ #undef LINK_SPEC
+ #define LINK_SPEC ""
+
+ #undef STARTFILE_SPEC
+ #define STARTFILE_SPEC ""
+
+ /* Text to write out after a CALL that may be replaced by glue code by
+ the loader. */
+
+ #undef RS6000_CALL_GLUE
+ #define RS6000_CALL_GLUE "cror 15,15,15"
+
+ /* Struct alignments are done on 4 byte boundaries for all types. */
+ #undef BIGGEST_FIELD_ALIGNMENT
+ #define BIGGEST_FIELD_ALIGNMENT 32
Index: gcc/config/rs6000/t-beos
===================================================================
RCS file: t-beos
diff -N t-beos
*** /dev/null Sun Sep 7 05:36:51 1997
--- t-beos Sun Sep 7 09:25:08 1997
***************
*** 0 ****
--- 1,51 ----
+ # Do not build libgcc1.
+ LIBGCC1 =
+ CROSS_LIBGCC1 =
+
+ # These are really part of libgcc1, but this will cause them to be
+ # built correctly, so... [taken from t-sparclite]
+ LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c
+
+ dp-bit.c: $(srcdir)/config/fp-bit.c
+ cat $(srcdir)/config/fp-bit.c > dp-bit.c
+
+ fp-bit.c: $(srcdir)/config/fp-bit.c
+ echo '#define FLOAT' > fp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+ # Build the libraries for both hard and soft floating point
+
+ MULTILIB_OPTIONS = msoft-float mcpu=common
+ MULTILIB_DIRNAMES = soft-float common
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
+
+ # This is probably the correct define, to override the Makefile
+ # default, but using it causes more problems than it solves.
+ #
+ # Using it will cause fixincludes to try and fix some of the
+ # mwcc header files, which it seems to do a poor job of. On
+ # the other hand, not using it will only cause the gcc version
+ # of limits.h to lack the header and trailer parts that are
+ # tacked on to it when there is a limits.h in the system header
+ # dir.
+ #
+ # For now it is probably better to change the rule for
+ # LIMITS_H_TEST to explicitly look for the BeOS limits.h.
+ # If the gcc limits.h is not set up to #include_next the
+ # BeOS limits.h, then some things will go undefined, like
+ # PATH_MAX.
+
+ #SYSTEM_HEADER_DIR=/boot/develop/headers/posix
+ # Test to see whether <limits.h> exists in the system header files.
+ LIMITS_H_TEST = [ -f /boot/develop/headers/posix/limits.h ]
+
+ # Aix 3.2.x needs milli.exp for -mcpu=common
+ EXTRA_PARTS = milli.exp
+ milli.exp: $(srcdir)/config/rs6000/milli.exp
+ rm -f milli.exp
+ cp $(srcdir)/config/rs6000/milli.exp ./milli.exp
+
+ # Don't use collect.
+ USE_COLLECT2 =
Index: gcc/config/rs6000/x-beos
===================================================================
RCS file: x-beos
diff -N x-beos
*** /dev/null Sun Sep 7 05:36:51 1997
--- x-beos Sun Sep 7 09:25:08 1997
***************
*** 0 ****
--- 1,9 ----
+ # configuration for BeOS
+ INSTALL=install -c
+
+ # Show we need to use the C version of ALLOCA
+ ALLOCA=alloca.o
+ # Use it regardless of whether we are compiling with gcc or not.
+ USE_ALLOCA= `echo "${ALLOCA}"`
+ USE_HOST_ALLOCA= `echo ${HOST_PREFIX}${HOST_ALLOCA}`
+ SUBDIR_USE_ALLOCA = `if [ x$(ALLOCA) != x ]; then echo ../$(ALLOCA); else true; fi`
Index: gcc/config/rs6000/xm-beos.h
===================================================================
RCS file: xm-beos.h
diff -N xm-beos.h
*** /dev/null Sun Sep 7 05:36:51 1997
--- xm-beos.h Sun Sep 7 09:25:08 1997
***************
*** 0 ****
--- 1,89 ----
+ /* Configuration for GNU C-compiler for BeOS host.
+ Copyright (C) 1997 Free Software Foundation, Inc.
+ Contributed by Fred Fish (fnf@cygnus.com), based on xm-rs6000.h
+ by Richard Kenner (kenner@vlsi1.ultra.nyu.edu).
+
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+
+ /* #defines that need visibility everywhere. */
+
+ #define FALSE 0
+ #define TRUE 1
+
+ /* This describes the machine the compiler is hosted on. */
+
+ #define HOST_BITS_PER_CHAR 8
+ #define HOST_BITS_PER_SHORT 16
+ #define HOST_BITS_PER_INT 32
+ #define HOST_BITS_PER_LONG 32
+ #define HOST_BITS_PER_LONGLONG 64
+
+ #define HOST_WORDS_BIG_ENDIAN
+
+ /* target machine dependencies.
+ tm.h is a symbolic link to the actual target specific file. */
+
+ #include "tm.h"
+
+ /* Arguments to use with `exit'. */
+
+ #define SUCCESS_EXIT_CODE 0
+ #define FATAL_EXIT_CODE 33
+
+ /* Use the C alloca and use only int bitfields. */
+
+ #define USE_C_ALLOCA
+ extern void *alloca ();
+ #define ONLY_INT_FIELDS
+
+ /* use ANSI/SYSV style byte manipulation routines instead of BSD ones */
+
+ #undef bcopy
+ #define bcopy(s,d,n) memmove((d),(s),(n))
+ #undef bzero
+ #define bzero(d,n) memset((d),0,(n))
+ #undef bcmp
+ #define bcmp(l,r,n) memcmp((l),(r),(n))
+ #undef index
+ #define index strchr
+ #undef rindex
+ #define rindex strrchr
+
+ /* BeOS is closer to USG than BSD */
+
+ #define USG
+
+ /* Define various things that the BeOS host has. */
+
+ #define HAVE_VPRINTF
+ #define HAVE_PUTENV
+ #define HAVE_ATEXIT
+ #define HAVE_RENAME
+
+ #define STDC_HEADERS 1
+
+ /* STANDARD_INCLUDE_DIR is the equivalent of "/usr/include" on UNIX. */
+
+ #define STANDARD_INCLUDE_DIR "/boot/develop/headers/posix"
+
+ /* SYSTEM_INCLUDE_DIR is the location for system specific, non-POSIX headers. */
+
+ #define SYSTEM_INCLUDE_DIR "/boot/develop/headers/be"
+
Index: gcc/ginclude/stdarg.h
===================================================================
RCS file: /cvsroot/gg/egcs/gcc/ginclude/stdarg.h,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 stdarg.h
*** stdarg.h 1997/09/04 04:45:56 1.1.1.1
--- stdarg.h 1997/09/07 16:25:16
***************
*** 58,64 ****
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
! #if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
--- 58,64 ----
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
! #if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__) || defined (__BEOS__)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
***************
*** 170,176 ****
--- 170,178 ----
#ifndef _VA_LIST
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */
#ifndef _VA_LIST_T_H
+ #ifndef __va_list__
typedef __gnuc_va_list va_list;
+ #endif /* not __va_list__ */
#endif /* not _VA_LIST_T_H */
#endif /* not _VA_LIST */
#endif /* not _VA_LIST_DEFINED */
***************
*** 185,190 ****
--- 187,195 ----
#endif
#ifndef _VA_LIST_T_H
#define _VA_LIST_T_H
+ #endif
+ #ifndef __va_list__
+ #define __va_list__ /* BeOS */
#endif
#endif /* not _VA_LIST_, except on certain systems */
Index: gcc/ginclude/stddef.h
===================================================================
RCS file: /cvsroot/gg/egcs/gcc/ginclude/stddef.h,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 stddef.h
*** stddef.h 1997/09/04 04:45:56 1.1.1.1
--- stddef.h 1997/09/07 16:25:16
***************
*** 135,140 ****
--- 135,141 ----
/* Define this type if we are doing the whole job,
or if we want this type in particular. */
#if defined (_STDDEF_H) || defined (__need_size_t)
+ #ifndef __size_t__ /* BeOS */
#ifndef _SIZE_T /* in case <sys/types.h> has defined it. */
#ifndef _SYS_SIZE_T_H
#ifndef _T_SIZE_
***************
*** 148,153 ****
--- 149,155 ----
#ifndef _GCC_SIZE_T
#ifndef _SIZET_
#ifndef __size_t
+ #define __size_t__ /* BeOS */
#define _SIZE_T
#define _SYS_SIZE_T_H
#define _T_SIZE_
***************
*** 166,171 ****
--- 168,176 ----
#endif
#if !(defined (__GNUG__) && defined (size_t))
typedef __SIZE_TYPE__ size_t;
+ #ifdef __BEOS__
+ typedef long ssize_t;
+ #endif /* __BEOS__ */
#endif /* !(defined (__GNUG__) && defined (size_t)) */
#endif /* __size_t */
#endif /* _SIZET_ */
***************
*** 180,185 ****
--- 185,191 ----
#endif /* _T_SIZE_ */
#endif /* _SYS_SIZE_T_H */
#endif /* _SIZE_T */
+ #endif /* __size_t__ */
#undef __need_size_t
#endif /* _STDDEF_H or __need_size_t. */
***************
*** 192,197 ****
--- 198,204 ----
/* Define this type if we are doing the whole job,
or if we want this type in particular. */
#if defined (_STDDEF_H) || defined (__need_wchar_t)
+ #ifndef __wchar_t__ /* BeOS */
#ifndef _WCHAR_T
#ifndef _T_WCHAR_
#ifndef _T_WCHAR
***************
*** 204,209 ****
--- 211,217 ----
#ifndef ___int_wchar_t_h
#ifndef __INT_WCHAR_T_H
#ifndef _GCC_WCHAR_T
+ #define __wchar_t__ /* BeOS */
#define _WCHAR_T
#define _T_WCHAR_
#define _T_WCHAR
***************
*** 237,244 ****
--- 245,256 ----
#endif
#ifndef __WCHAR_TYPE__
+ #ifdef __BEOS__
+ #define __WCHAR_TYPE__ unsigned char
+ #else
#define __WCHAR_TYPE__ int
#endif
+ #endif
#ifndef __cplusplus
typedef __WCHAR_TYPE__ wchar_t;
#endif
***************
*** 254,259 ****
--- 266,272 ----
#endif
#endif
#endif
+ #endif /* __wchar_t__ */
#undef __need_wchar_t
#endif /* _STDDEF_H or __need_wchar_t. */
Index: gcc/ginclude/varargs.h
===================================================================
RCS file: /cvsroot/gg/egcs/gcc/ginclude/varargs.h,v
retrieving revision 1.1.1.1
diff -c -r1.1.1.1 varargs.h
*** varargs.h 1997/09/04 04:45:57 1.1.1.1
--- varargs.h 1997/09/07 16:25:16
***************
*** 90,96 ****
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
! #if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
--- 90,96 ----
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
! #if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__BEOS__)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
***************
*** 184,190 ****
--- 184,193 ----
#ifndef _VA_LIST
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */
#ifndef _VA_LIST_T_H
+ /* The macro __va_list__ is used in BeOS */
+ #ifndef __va_list__
typedef __gnuc_va_list va_list;
+ #endif /* not __va_list__ */
#endif /* not _VA_LIST_T_H */
#endif /* not _VA_LIST */
#endif /* not _VA_LIST_DEFINED */
***************
*** 199,204 ****
--- 202,210 ----
#endif
#ifndef _VA_LIST_T_H
#define _VA_LIST_T_H
+ #endif
+ #ifndef __va_list__ /* BeOS */
+ #define __va_list__
#endif
#endif /* not _VA_LIST_, except on certain systems */
More information about the Gcc-bugs
mailing list