Commit 512b62fb by Jason Merrill

configure.in (i?86-*-beos{pe,elf,}*): Recognize.

        * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
        * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
        * i386/beos-elf.h, i386/beos-pe.h: New files.

        * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
        * cross-make (SYSTEM_HEADER_DIR): Define using
        CROSS_SYSTEM_HEADER_DIR.

        * gcc.c (LIBRARY_PATH_ENV): Provide default.
        (process_command): Use it.
        (main): Likewise.  Kill trailing = from env vars.
        (build_search_list): Put it back.
        * collect2.c (main): Use LIBRARY_PATH_ENV.

        * configure.in (GCC_NEED_DECLARATIONS): Add environ.
        * toplev.c: Use NEED_DECLARATION_ENVIRON.

        * tm.texi (Frame Layout): Document SMALL_STACK.
        * c-common.c (c_common_nodes_and_builtins): Check it.

        * system.h: Undef alloca after including glibc's <stdlib.h>,
        if USE_C_ALLOCA is defined.

        * gcc.c (set_input): New fn.
        (main): After all input files are compiled, reset the input file
        info to the first.

        * aclocal.m4 (rindex, index): If already defined, don't attempt
        to redefine.

        * ginclude/varargs.h: (__va_list__): Define ifndef.
        * ginclude/stdarg.h: Likewise.

        * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
        instead of unsigned char.

        * hash.h (true, false, boolean): Undef before enum.

From-SVN: r31366
parent 6bb88f3b
...@@ -209,6 +209,9 @@ RANLIB_TEST_FOR_TARGET = \ ...@@ -209,6 +209,9 @@ RANLIB_TEST_FOR_TARGET = \
# Dir to search for system headers. Overridden by cross-make. # Dir to search for system headers. Overridden by cross-make.
SYSTEM_HEADER_DIR = /usr/include SYSTEM_HEADER_DIR = /usr/include
# Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
CROSS_SYSTEM_HEADER_DIR = $(tooldir)/sys-include
# Control whether to run fixproto. # Control whether to run fixproto.
STMP_FIXPROTO = stmp-fixproto STMP_FIXPROTO = stmp-fixproto
......
...@@ -35,11 +35,15 @@ AC_CACHE_VAL(gcc_cv_decl_needed_$1, ...@@ -35,11 +35,15 @@ AC_CACHE_VAL(gcc_cv_decl_needed_$1,
#include <unistd.h> #include <unistd.h>
#endif #endif
#ifndef HAVE_RINDEX #ifndef HAVE_RINDEX
#ifndef rindex
#define rindex strrchr #define rindex strrchr
#endif #endif
#endif
#ifndef HAVE_INDEX #ifndef HAVE_INDEX
#ifndef index
#define index strchr #define index strchr
#endif #endif
#endif
$2], $2],
[char *(*pfn) = (char *(*)) $1], [char *(*pfn) = (char *(*)) $1],
eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")]) eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")])
......
...@@ -3650,10 +3650,12 @@ c_common_nodes_and_builtins (cplus_mode, no_builtins, no_nonansi_builtins) ...@@ -3650,10 +3650,12 @@ c_common_nodes_and_builtins (cplus_mode, no_builtins, no_nonansi_builtins)
Declare _exit just to mark it as volatile. */ Declare _exit just to mark it as volatile. */
if (! no_builtins && ! no_nonansi_builtins) if (! no_builtins && ! no_nonansi_builtins)
{ {
#ifndef SMALL_STACK
temp = builtin_function ("alloca", ptr_ftype_sizetype, temp = builtin_function ("alloca", ptr_ftype_sizetype,
BUILT_IN_ALLOCA, BUILT_IN_NORMAL, NULL_PTR); BUILT_IN_ALLOCA, BUILT_IN_NORMAL, NULL_PTR);
/* Suppress error if redefined as a non-function. */ /* Suppress error if redefined as a non-function. */
DECL_BUILT_IN_NONANSI (temp) = 1; DECL_BUILT_IN_NONANSI (temp) = 1;
#endif
temp = builtin_function ("ffs", int_ftype_int, BUILT_IN_FFS, temp = builtin_function ("ffs", int_ftype_int, BUILT_IN_FFS,
BUILT_IN_NORMAL, NULL_PTR); BUILT_IN_NORMAL, NULL_PTR);
/* Suppress error if redefined as a non-function. */ /* Suppress error if redefined as a non-function. */
......
...@@ -42,6 +42,10 @@ Boston, MA 02111-1307, USA. */ ...@@ -42,6 +42,10 @@ Boston, MA 02111-1307, USA. */
lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1) lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1)
#endif /* VMS */ #endif /* VMS */
#ifndef LIBRARY_PATH_ENV
#define LIBRARY_PATH_ENV "LIBRARY_PATH"
#endif
#define COLLECT #define COLLECT
#include "collect2.h" #include "collect2.h"
...@@ -1353,9 +1357,9 @@ main (argc, argv) ...@@ -1353,9 +1357,9 @@ main (argc, argv)
if (ptr) if (ptr)
fprintf (stderr, "COMPILER_PATH = %s\n", ptr); fprintf (stderr, "COMPILER_PATH = %s\n", ptr);
ptr = getenv ("LIBRARY_PATH"); ptr = getenv (LIBRARY_PATH_ENV);
if (ptr) if (ptr)
fprintf (stderr, "LIBRARY_PATH = %s\n", ptr); fprintf (stderr, "%-20s= %s\n", LIBRARY_PATH_ENV, ptr);
fprintf (stderr, "\n"); fprintf (stderr, "\n");
} }
......
/* Operating system specific defines for BeOS target.
Copyright (C) 1995-99, 2000 Free Software Foundation, Inc.
Contributed by Fred Fish (fnf@cygnus.com), based on cygwin32.h.
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. */
/* Get all the PE support related things. */
#include "cygwin32.h"
/* Change debugging to Dwarf2. */
#undef SDB_DEBUGGING_INFO
#undef DBX_DEBUGGING_INFO
#define DWARF2_DEBUGGING_INFO
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
/* Support the __declspec keyword by turning them into attributes.
We currently only support: dllimport and dllexport.
Note that the current way we do this may result in a collision with
predefined attributes later on. This can be solved by using one attribute,
say __declspec__, and passing args to it. The problem with that approach
is that args are not accumulated: each new appearance would clobber any
existing args. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__BEOS__ -D__INTEL__ -Di386 -D_X86_=1 \
-D__stdcall=__attribute__((__stdcall__)) \
-D__cdecl=__attribute__((__cdecl__)) \
-D__declspec(x)=__attribute__((x)) \
-Asystem(beos) -Acpu(i386) -Amachine(i386)"
#undef CPP_SPEC
#define CPP_SPEC "-remap %(cpp_cpu) %{posix:-D_POSIX_SOURCE}"
#undef LIB_SPEC
#define LIB_SPEC "-lroot -lbe -ltracker -lmedia -lnet -lnetdev -ldevice -lmidi -lgame -latalk -lmail"
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "/boot/develop/lib/x86/start_dyn.o /boot/develop/lib/x86/init_term_dyn.o /boot/develop/lib/x86/glue-noinit.a"
/* Temporary. */
#define LINKERSCRIPT_SPEC "%{!T:-Tbeos.ld}"
/* No math library. */
#define MATH_LIBRARY ""
/* Don't ignore dllimport for functions. */
#undef TARGET_NOP_FUN_DLLIMPORT
#define TARGET_NOP_FUN_DLLIMPORT 0
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES
/* Disable DWARF2 unwind info; this doesn't appear to work on
COFF-based targets right now. (I want to say "duh?" but someone
will correct me later. */
#undef INCOMING_RETURN_ADDR_RTX
#undef DWARF2_UNWIND_INFO
/* In the current BeOS release (DR9), use of gcc's builtin alloca 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. Defining SMALL_STACK disables builtin alloca. */
#define SMALL_STACK
/* Yuck. */
#ifndef CROSS_COMPILE
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\
{ GCC_INCLUDE_DIR, "GCC", 0, 0 },\
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \
{ "/boot/develop/headers/be/add-ons/graphics", 0, 0, 0 },\
{ "/boot/develop/headers/be/translation", 0, 0, 0 },\
{ "/boot/develop/headers/be/mail", 0, 0, 0 },\
{ "/boot/develop/headers/gnu", 0, 0, 0 },\
{ "/boot/develop/headers/be/drivers", 0, 0, 0 },\
{ "/boot/develop/headers/be/game", 0, 0, 0 },\
{ "/boot/develop/headers/be/support", 0, 0, 0 },\
{ "/boot/develop/headers/be/storage", 0, 0, 0 },\
{ "/boot/develop/headers/be/kernel", 0, 0, 0 },\
{ "/boot/develop/headers/be/net", 0, 0, 0 },\
{ "/boot/develop/headers/be/midi", 0, 0, 0 },\
{ "/boot/develop/headers/be/media", 0, 0, 0 },\
{ "/boot/develop/headers/be/interface", 0, 0, 0 },\
{ "/boot/develop/headers/be/device", 0, 0, 0 },\
{ "/boot/develop/headers/be/app", 0, 0, 0 },\
{ "/boot/develop/headers/cpp", 0, 0, 0 },\
{ "/boot/develop/headers/posix", 0, 0, 0 },\
{ "/boot/develop/headers/be/precompiled", 0, 0, 0 },\
{ "/boot/develop/headers/be", 0, 0, 0 },\
{ "/boot/develop/headers", 0, 0, 0 }, \
{ 0, 0, 0, 0 } \
};
#endif
/* Whee. LIBRARY_PATH is Be's LD_LIBRARY_PATH, which of course will
cause nasty problems if we override it. */
#define LIBRARY_PATH_ENV "BELIBRARIES"
# Do not build libgcc1.
LIBGCC1 =
CROSS_LIBGCC1 =
# There are system headers elsewhere, but these are the ones that
# we are most likely to want to apply any fixes to.
SYSTEM_HEADER_DIR = /boot/develop/headers/posix
CROSS_SYSTEM_HEADER_DIR = $(tooldir)/sys-include/posix
# Use the system assert.h
INSTALL_ASSERT_H =
winnt.o: $(srcdir)/config/i386/winnt.c
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/i386/winnt.c
# 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`
/* Configuration for GNU C-compiler for BeOS host.
Copyright (C) 1997-99, 2000 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. */
#include <i386/xm-i386.h>
/* Arguments to use with `exit'. */
#define SUCCESS_EXIT_CODE 0
#define FATAL_EXIT_CODE 33
/* Include <sys/wait.h> to define the exit status access macros. */
#ifndef inhibit_libc
#include <sys/wait.h>
#endif
#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. */
#ifndef HAVE_VPRINTF
#define HAVE_VPRINTF
#endif
#ifndef HAVE_PUTENV
#define HAVE_PUTENV
#endif
#define HAVE_RENAME
#define STDC_HEADERS 1
...@@ -409,7 +409,7 @@ AC_FUNC_MMAP ...@@ -409,7 +409,7 @@ AC_FUNC_MMAP
GCC_NEED_DECLARATIONS(bcopy bzero bcmp \ GCC_NEED_DECLARATIONS(bcopy bzero bcmp \
index rindex getenv atol sbrk abort atof strerror getcwd getwd \ index rindex getenv atol sbrk abort atof strerror getcwd getwd \
strsignal putc_unlocked fputs_unlocked strstr) strsignal putc_unlocked fputs_unlocked strstr environ)
GCC_NEED_DECLARATIONS(malloc realloc calloc free, [ GCC_NEED_DECLARATIONS(malloc realloc calloc free, [
#ifdef HAVE_MALLOC_H #ifdef HAVE_MALLOC_H
...@@ -1277,6 +1277,27 @@ changequote([,])dnl ...@@ -1277,6 +1277,27 @@ changequote([,])dnl
tmake_file=i386/t-i386bare tmake_file=i386/t-i386bare
;; ;;
changequote(,)dnl changequote(,)dnl
i[34567]86-*-beospe*)
changequote([,])dnl
xm_file=i386/xm-beos.h
xm_defines="USE_C_ALLOCA"
tmake_file=i386/t-beos
tm_file=i386/beos-pe.h
xmake_file=i386/x-beos
extra_objs=winnt.o
;;
changequote(,)dnl
i[34567]86-*-beoself* | i[34567]86-*-beos*)
changequote([,])dnl
xm_file=i386/xm-beos.h
tmake_file='i386/t-beos i386/t-crtpic'
tm_file=i386/beos-elf.h
xmake_file=i386/x-beos
extra_objs=winnt.o
extra_parts='crtbegin.o crtend.o'
fixincludes=Makefile.in
;;
changequote(,)dnl
i[34567]86-*-bsdi* | i[34567]86-*-bsd386*) i[34567]86-*-bsdi* | i[34567]86-*-bsd386*)
changequote([,])dnl changequote([,])dnl
tm_file=i386/bsd386.h tm_file=i386/bsd386.h
......
...@@ -5,7 +5,7 @@ LIBGCC1 = $(CROSS_LIBGCC1) ...@@ -5,7 +5,7 @@ LIBGCC1 = $(CROSS_LIBGCC1)
# Dir to search for system headers. Normally /usr/include. # Dir to search for system headers. Normally /usr/include.
# Use CROSS_INCLUDE_DIR not TOOL_INCLUDE_DIR for other vendor's headers. # Use CROSS_INCLUDE_DIR not TOOL_INCLUDE_DIR for other vendor's headers.
SYSTEM_HEADER_DIR = $(tooldir)/sys-include SYSTEM_HEADER_DIR = $(CROSS_SYSTEM_HEADER_DIR)
# Don't try to compile the things we can't compile. # Don't try to compile the things we can't compile.
ALL = all.cross ALL = all.cross
......
...@@ -82,6 +82,11 @@ static char dir_separator_str[] = {DIR_SEPARATOR, 0}; ...@@ -82,6 +82,11 @@ static char dir_separator_str[] = {DIR_SEPARATOR, 0};
#define GET_ENV_PATH_LIST(VAR,NAME) do { (VAR) = getenv (NAME); } while (0) #define GET_ENV_PATH_LIST(VAR,NAME) do { (VAR) = getenv (NAME); } while (0)
#endif #endif
/* Most every one is fine with LIBRARY_PATH. For some, it conflicts. */
#ifndef LIBRARY_PATH_ENV
#define LIBRARY_PATH_ENV "LIBRARY_PATH"
#endif
#ifndef HAVE_KILL #ifndef HAVE_KILL
#define kill(p,s) raise(s) #define kill(p,s) raise(s)
#endif #endif
...@@ -240,6 +245,7 @@ static int execute PROTO ((void)); ...@@ -240,6 +245,7 @@ static int execute PROTO ((void));
static void unused_prefix_warnings PROTO ((struct path_prefix *)); static void unused_prefix_warnings PROTO ((struct path_prefix *));
static void clear_args PROTO ((void)); static void clear_args PROTO ((void));
static void fatal_error PROTO ((int)); static void fatal_error PROTO ((int));
static void set_input PROTO ((const char *));
/* Specs are strings containing lines, each of which (if not blank) /* Specs are strings containing lines, each of which (if not blank)
is made up of a program name, and arguments separated by spaces. is made up of a program name, and arguments separated by spaces.
...@@ -1892,6 +1898,7 @@ build_search_list (paths, prefix, check_dir_p) ...@@ -1892,6 +1898,7 @@ build_search_list (paths, prefix, check_dir_p)
struct prefix_list *pprefix; struct prefix_list *pprefix;
obstack_grow (&collect_obstack, prefix, strlen (prefix)); obstack_grow (&collect_obstack, prefix, strlen (prefix));
obstack_1grow (&collect_obstack, '=');
for (pprefix = paths->plist; pprefix != 0; pprefix = pprefix->next) for (pprefix = paths->plist; pprefix != 0; pprefix = pprefix->next)
{ {
...@@ -2941,7 +2948,7 @@ process_command (argc, argv) ...@@ -2941,7 +2948,7 @@ process_command (argc, argv)
} }
} }
GET_ENV_PATH_LIST (temp, "LIBRARY_PATH"); GET_ENV_PATH_LIST (temp, LIBRARY_PATH_ENV);
if (temp && *cross_compile == '0') if (temp && *cross_compile == '0')
{ {
const char *startp, *endp; const char *startp, *endp;
...@@ -4935,6 +4942,37 @@ is_directory (path1, path2, linker) ...@@ -4935,6 +4942,37 @@ is_directory (path1, path2, linker)
return (stat (path, &st) >= 0 && S_ISDIR (st.st_mode)); return (stat (path, &st) >= 0 && S_ISDIR (st.st_mode));
} }
/* Set up the various global variables to indicate that we're processing
the input file named FILENAME. */
static void
set_input (filename)
const char *filename;
{
register const char *p;
input_filename = filename;
input_filename_length = strlen (input_filename);
input_basename = input_filename;
for (p = input_filename; *p; p++)
if (IS_DIR_SEPARATOR (*p))
input_basename = p + 1;
/* Find a suffix starting with the last period,
and set basename_length to exclude that suffix. */
basename_length = strlen (input_basename);
p = input_basename + basename_length;
while (p != input_basename && *p != '.') --p;
if (*p == '.' && p != input_basename)
{
basename_length = p - input_basename;
input_suffix = p + 1;
}
else
input_suffix = "";
}
/* On fatal signals, delete all the temporary files. */ /* On fatal signals, delete all the temporary files. */
...@@ -5335,9 +5373,8 @@ main (argc, argv) ...@@ -5335,9 +5373,8 @@ main (argc, argv)
/* Tell do_spec what to substitute for %i. */ /* Tell do_spec what to substitute for %i. */
input_filename = infiles[i].name;
input_filename_length = strlen (input_filename);
input_file_number = i; input_file_number = i;
set_input (infiles[i].name);
/* Use the same thing in %o, unless cp->spec says otherwise. */ /* Use the same thing in %o, unless cp->spec says otherwise. */
...@@ -5352,31 +5389,12 @@ main (argc, argv) ...@@ -5352,31 +5389,12 @@ main (argc, argv)
{ {
/* Ok, we found an applicable compiler. Run its spec. */ /* Ok, we found an applicable compiler. Run its spec. */
/* First say how much of input_filename to substitute for %b */ /* First say how much of input_filename to substitute for %b */
register const char *p;
int len; int len;
if (cp->spec[0][0] == '#') if (cp->spec[0][0] == '#')
error ("%s: %s compiler not installed on this system", error ("%s: %s compiler not installed on this system",
input_filename, &cp->spec[0][1]); input_filename, &cp->spec[0][1]);
input_basename = input_filename;
for (p = input_filename; *p; p++)
if (IS_DIR_SEPARATOR (*p))
input_basename = p + 1;
/* Find a suffix starting with the last period,
and set basename_length to exclude that suffix. */
basename_length = strlen (input_basename);
p = input_basename + basename_length;
while (p != input_basename && *p != '.') --p;
if (*p == '.' && p != input_basename)
{
basename_length = p - input_basename;
input_suffix = p + 1;
}
else
input_suffix = "";
len = 0; len = 0;
for (j = 0; j < sizeof cp->spec / sizeof cp->spec[0]; j++) for (j = 0; j < sizeof cp->spec / sizeof cp->spec[0]; j++)
if (cp->spec[j]) if (cp->spec[j])
...@@ -5418,6 +5436,12 @@ main (argc, argv) ...@@ -5418,6 +5436,12 @@ main (argc, argv)
clear_failure_queue (); clear_failure_queue ();
} }
/* Reset the output file name to the first input file name, for use
with %b in LINK_SPEC on a target that prefers not to emit a.out
by default. */
if (n_infiles > 0)
set_input (infiles[0].name);
if (error_count == 0) if (error_count == 0)
{ {
/* Make sure INPUT_FILE_NUMBER points to first available open /* Make sure INPUT_FILE_NUMBER points to first available open
...@@ -5442,8 +5466,8 @@ main (argc, argv) ...@@ -5442,8 +5466,8 @@ main (argc, argv)
} }
/* Rebuild the COMPILER_PATH and LIBRARY_PATH environment variables /* Rebuild the COMPILER_PATH and LIBRARY_PATH environment variables
for collect. */ for collect. */
putenv_from_prefixes (&exec_prefixes, "COMPILER_PATH="); putenv_from_prefixes (&exec_prefixes, "COMPILER_PATH");
putenv_from_prefixes (&startfile_prefixes, "LIBRARY_PATH="); putenv_from_prefixes (&startfile_prefixes, LIBRARY_PATH_ENV);
value = do_spec (link_command_spec); value = do_spec (link_command_spec);
if (value < 0) if (value < 0)
......
...@@ -105,7 +105,10 @@ typedef __gnuc_va_list va_list; ...@@ -105,7 +105,10 @@ typedef __gnuc_va_list va_list;
#ifndef _VA_LIST #ifndef _VA_LIST
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */ /* The macro _VA_LIST_T_H is used in the Bull dpx2 */
#ifndef _VA_LIST_T_H #ifndef _VA_LIST_T_H
/* The macro __va_list__ is used by BeOS. */
#ifndef __va_list__
typedef __gnuc_va_list va_list; typedef __gnuc_va_list va_list;
#endif /* not __va_list__ */
#endif /* not _VA_LIST_T_H */ #endif /* not _VA_LIST_T_H */
#endif /* not _VA_LIST */ #endif /* not _VA_LIST */
#endif /* not _VA_LIST_DEFINED */ #endif /* not _VA_LIST_DEFINED */
...@@ -121,6 +124,9 @@ typedef __gnuc_va_list va_list; ...@@ -121,6 +124,9 @@ typedef __gnuc_va_list va_list;
#ifndef _VA_LIST_T_H #ifndef _VA_LIST_T_H
#define _VA_LIST_T_H #define _VA_LIST_T_H
#endif #endif
#ifndef __va_list__
#define __va_list__
#endif
#endif /* not _VA_LIST_, except on certain systems */ #endif /* not _VA_LIST_, except on certain systems */
......
...@@ -274,12 +274,8 @@ typedef _BSD_RUNE_T_ rune_t; ...@@ -274,12 +274,8 @@ typedef _BSD_RUNE_T_ rune_t;
#endif #endif
#ifndef __WCHAR_TYPE__ #ifndef __WCHAR_TYPE__
#ifdef __BEOS__
#define __WCHAR_TYPE__ unsigned char
#else
#define __WCHAR_TYPE__ int #define __WCHAR_TYPE__ int
#endif #endif
#endif
#ifndef __cplusplus #ifndef __cplusplus
typedef __WCHAR_TYPE__ wchar_t; typedef __WCHAR_TYPE__ wchar_t;
#endif #endif
......
...@@ -108,7 +108,10 @@ typedef __gnuc_va_list va_list; ...@@ -108,7 +108,10 @@ typedef __gnuc_va_list va_list;
#ifndef _VA_LIST #ifndef _VA_LIST
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */ /* The macro _VA_LIST_T_H is used in the Bull dpx2 */
#ifndef _VA_LIST_T_H #ifndef _VA_LIST_T_H
/* The macro __va_list__ is used by BeOS. */
#ifndef __va_list__
typedef __gnuc_va_list va_list; typedef __gnuc_va_list va_list;
#endif /* not __va_list__ */
#endif /* not _VA_LIST_T_H */ #endif /* not _VA_LIST_T_H */
#endif /* not _VA_LIST */ #endif /* not _VA_LIST */
#endif /* not _VA_LIST_DEFINED */ #endif /* not _VA_LIST_DEFINED */
...@@ -124,6 +127,9 @@ typedef __gnuc_va_list va_list; ...@@ -124,6 +127,9 @@ typedef __gnuc_va_list va_list;
#ifndef _VA_LIST_T_H #ifndef _VA_LIST_T_H
#define _VA_LIST_T_H #define _VA_LIST_T_H
#endif #endif
#ifndef __va_list__
#define __va_list__
#endif
#endif /* not _VA_LIST_, except on certain systems */ #endif /* not _VA_LIST_, except on certain systems */
......
...@@ -25,6 +25,10 @@ Boston, MA 02111-1307, USA. */ ...@@ -25,6 +25,10 @@ Boston, MA 02111-1307, USA. */
#include "obstack.h" #include "obstack.h"
#undef false
#undef true
#undef boolean
typedef enum {false, true} boolean; typedef enum {false, true} boolean;
typedef PTR hash_table_key; typedef PTR hash_table_key;
......
...@@ -176,6 +176,11 @@ extern int errno; ...@@ -176,6 +176,11 @@ extern int errno;
#ifdef HAVE_STDLIB_H #ifdef HAVE_STDLIB_H
# include <stdlib.h> # include <stdlib.h>
# ifdef USE_C_ALLOCA
/* Note that systems that use glibc have a <stdlib.h> that includes
<alloca.h> that defines alloca, so let USE_C_ALLOCA override this. */
# undef alloca
#endif
#endif #endif
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
......
...@@ -461,7 +461,7 @@ The environment variable @code{GCC_EXEC_PREFIX}, if any. ...@@ -461,7 +461,7 @@ The environment variable @code{GCC_EXEC_PREFIX}, if any.
@item @item
The directories specified by the environment variable @code{LIBRARY_PATH} The directories specified by the environment variable @code{LIBRARY_PATH}
(native only, cross compilers do not use this). (or port-specific name; native only, cross compilers do not use this).
@item @item
The macro @code{STANDARD_EXEC_PREFIX}. The macro @code{STANDARD_EXEC_PREFIX}.
...@@ -2281,6 +2281,12 @@ during virtual register instantiation. ...@@ -2281,6 +2281,12 @@ during virtual register instantiation.
You only need to define this macro if you want to support call frame You only need to define this macro if you want to support call frame
debugging information like that provided by DWARF 2. debugging information like that provided by DWARF 2.
@findex SMALL_STACK
@item SMALL_STACK
Define this macro if the stack size for the target is very small. This
has the effect of disabling gcc's builtin @samp{alloca}, though
@samp{__builtin_alloca} is not affected.
@end table @end table
@node Stack Checking @node Stack Checking
...@@ -7784,4 +7790,12 @@ in the system math library, or @samp{""} if the target does not have a ...@@ -7784,4 +7790,12 @@ in the system math library, or @samp{""} if the target does not have a
separate math library. separate math library.
You need only define this macro if the default of @samp{"-lm"} is wrong. You need only define this macro if the default of @samp{"-lm"} is wrong.
@findex LIBRARY_PATH_ENV
@item LIBRARY_PATH_ENV
Define this macro as a C string constant for the environment variable that
specifies where the linker should look for libraries.
You need only define this macro if the default of @samp{"LIBRARY_PATH"}
is wrong.
@end table @end table
...@@ -138,7 +138,7 @@ You Lose! You must define PREFERRED_DEBUGGING_TYPE! ...@@ -138,7 +138,7 @@ You Lose! You must define PREFERRED_DEBUGGING_TYPE!
#define PREFERRED_DEBUGGING_TYPE NO_DEBUG #define PREFERRED_DEBUGGING_TYPE NO_DEBUG
#endif #endif
#if ! (defined (VMS) || defined (OS2)) #ifdef NEED_DECLARATION_ENVIRON
extern char **environ; extern char **environ;
#endif #endif
extern char *version_string; extern char *version_string;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment