Commit 9e9bd455 by Laurent GUERBY Committed by Eric Botcazou

prefix.h: Wrap up in extern "C" block.

	* prefix.h: Wrap up in extern "C" block.
ada/
	* adadecode.c: Wrap up in extern "C" block.
	* adadecode.h: Likewise.
	* adaint.c: Likewise.  Remove 'const' keyword.
	* adaint.h: Likewise.
	* argv.c: Likewise.
	* atree.h: Likewise.
	* cio.c: Likewise.
	* cstreams.c: Likewise.
	* env.c: Likewise.
	* exit.c: Likewise.
	* fe.h: Likewise.
	* final.c: Likewise.
	* init.c: Likewise.
	* initialize.c: Likewise.
	* link.c: Likewise.
	* namet.h: Likewise.
	* nlists.h: Likewise.
	* raise.c: Likewise.
	* raise.h: Likewise.
	* repinfo.h: Likewise.
	* seh_init.c: Likewise.
	* targext.c: Likewise.
	* tracebak.c: Likewise.
	* uintp.h: Likewise.
	* urealp.h: Likewise.
	* xeinfo.adb: Wrap up generated C code in extern "C" block.
	* xsinfo.adb: Likewise.
	* xsnamest.adb: Likewise.
	* gcc-interface/gadaint.h: Wrap up in extern "C" block.
	* gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
	* gcc-interface/misc.c: Likewise.
	* gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
	(GNAT1_C_OBJS): Remove ada/b_gnat1.o.  List ada/seh_init.o and
	ada/targext.o here...
	(GNAT_ADA_OBJS): ...and not here.
	(GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
	(GNATBIND_OBJS): Reorder.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r176210
parent 4d652a18
2011-07-12 Laurent GUERBY <laurent@guerby.net>
Eric Botcazou <ebotcazou@adacore.com>
* prefix.h: Wrap up in extern "C" block.
2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com> 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
AMD bdver2 Enablement AMD bdver2 Enablement
......
2011-07-12 Laurent GUERBY <laurent@guerby.net>
Eric Botcazou <ebotcazou@adacore.com>
* adadecode.c: Wrap up in extern "C" block.
* adadecode.h: Likewise.
* adaint.c: Likewise. Remove 'const' keyword.
* adaint.h: Likewise.
* argv.c: Likewise.
* atree.h: Likewise.
* cio.c: Likewise.
* cstreams.c: Likewise.
* env.c: Likewise.
* exit.c: Likewise.
* fe.h: Likewise.
* final.c: Likewise.
* init.c: Likewise.
* initialize.c: Likewise.
* link.c: Likewise.
* namet.h: Likewise.
* nlists.h: Likewise.
* raise.c: Likewise.
* raise.h: Likewise.
* repinfo.h: Likewise.
* seh_init.c: Likewise.
* targext.c: Likewise.
* tracebak.c: Likewise.
* uintp.h: Likewise.
* urealp.h: Likewise.
* xeinfo.adb: Wrap up generated C code in extern "C" block.
* xsinfo.adb: Likewise.
* xsnamest.adb: Likewise.
* gcc-interface/gadaint.h: Wrap up in extern "C" block.
* gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
* gcc-interface/misc.c: Likewise.
* gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
(GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
ada/targext.o here...
(GNAT_ADA_OBJS): ...and not here.
(GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
(GNATBIND_OBJS): Reorder.
2011-07-07 Richard Henderson <rth@redhat.com> 2011-07-07 Richard Henderson <rth@redhat.com>
* gcc-interface/misc.c (gnat_init_gcc_eh): Don't call * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 2001-2009, Free Software Foundation, Inc. * * Copyright (C) 2001-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -352,6 +352,10 @@ __gnat_decode (const char *coded_name, char *ada_name, int verbose) ...@@ -352,6 +352,10 @@ __gnat_decode (const char *coded_name, char *ada_name, int verbose)
} }
} }
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_GCC #ifdef IN_GCC
char * char *
ada_demangle (const char *coded_name) ada_demangle (const char *coded_name)
...@@ -402,3 +406,7 @@ get_encoding (const char *coded_name, char *encoding) ...@@ -402,3 +406,7 @@ get_encoding (const char *coded_name, char *encoding)
*dest_index = '\0'; *dest_index = '\0';
} }
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 2001-2009, Free Software Foundation, Inc. * * Copyright (C) 2001-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,6 +29,10 @@ ...@@ -29,6 +29,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/* This function will return the Ada name from the encoded form. /* This function will return the Ada name from the encoded form.
The Ada coding is done in exp_dbug.ads and this is the inverse function. The Ada coding is done in exp_dbug.ads and this is the inverse function.
see exp_dbug.ads for full encoding rules, a short description is added see exp_dbug.ads for full encoding rules, a short description is added
...@@ -51,3 +55,7 @@ extern void get_encoding (const char *, char *); ...@@ -51,3 +55,7 @@ extern void get_encoding (const char *, char *);
function used in the binutils and GDB. Always consider using __gnat_decode function used in the binutils and GDB. Always consider using __gnat_decode
instead of ada_demangle. Caller must free the pointer returned. */ instead of ada_demangle. Caller must free the pointer returned. */
extern char *ada_demangle (const char *); extern char *ada_demangle (const char *);
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2010, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -34,6 +34,10 @@ ...@@ -34,6 +34,10 @@
package Osint. Many of the subprograms in OS_Lib import standard package Osint. Many of the subprograms in OS_Lib import standard
library calls directly. This file contains all other routines. */ library calls directly. This file contains all other routines. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __vxworks #ifdef __vxworks
/* No need to redefine exit here. */ /* No need to redefine exit here. */
...@@ -291,9 +295,9 @@ const char *__gnat_library_template = GNAT_LIBRARY_TEMPLATE; ...@@ -291,9 +295,9 @@ const char *__gnat_library_template = GNAT_LIBRARY_TEMPLATE;
/* This variable is used in hostparm.ads to say whether the host is a VMS /* This variable is used in hostparm.ads to say whether the host is a VMS
system. */ system. */
#ifdef VMS #ifdef VMS
const int __gnat_vmsp = 1; int __gnat_vmsp = 1;
#else #else
const int __gnat_vmsp = 0; int __gnat_vmsp = 0;
#endif #endif
#if defined (VMS) #if defined (VMS)
...@@ -324,7 +328,7 @@ const int __gnat_vmsp = 0; ...@@ -324,7 +328,7 @@ const int __gnat_vmsp = 0;
#endif #endif
/* Used for Ada bindings */ /* Used for Ada bindings */
const int __gnat_size_of_file_attributes = sizeof (struct file_attributes); int __gnat_size_of_file_attributes = sizeof (struct file_attributes);
/* Reset the file attributes as if no system call had been performed */ /* Reset the file attributes as if no system call had been performed */
void __gnat_stat_to_attr (int fd, char* name, struct file_attributes* attr); void __gnat_stat_to_attr (int fd, char* name, struct file_attributes* attr);
...@@ -3686,3 +3690,7 @@ void *__gnat_lwp_self (void) ...@@ -3686,3 +3690,7 @@ void *__gnat_lwp_self (void)
return (void *) syscall (__NR_gettid); return (void *) syscall (__NR_gettid);
} }
#endif #endif
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2010, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,6 +29,10 @@ ...@@ -29,6 +29,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/stat.h> #include <sys/stat.h>
#include <stdio.h> #include <stdio.h>
...@@ -262,3 +266,7 @@ extern int get_gcc_version (void); ...@@ -262,3 +266,7 @@ extern int get_gcc_version (void);
extern int __gnat_binder_supports_auto_init (void); extern int __gnat_binder_supports_auto_init (void);
extern int __gnat_sals_init_using_constructors (void); extern int __gnat_sals_init_using_constructors (void);
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2009, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -30,17 +30,21 @@ ...@@ -30,17 +30,21 @@
****************************************************************************/ ****************************************************************************/
/* Routines for accessing command line arguments from both the runtime /* Routines for accessing command line arguments from both the runtime
library and from the compiler itself. In the former case, gnat_argc library and from the compiler itself. In the former case, gnat_argc
and gnat_argv are the original argc and argv values as stored by the and gnat_argv are the original argc and argv values as stored by the
binder generated main program, and these routines are accessed from binder generated main program, and these routines are accessed from
the Ada.Command_Line package. In the compiler case, gnat_argc and the Ada.Command_Line package. In the compiler case, gnat_argc and
gnat_argv are the values as modified by toplev, and these routines gnat_argv are the values as modified by toplev, and these routines
are accessed from the Osint package. */ are accessed from the Osint package. */
/* Also routines for accessing the environment from the runtime library. /* Also routines for accessing the environment from the runtime library.
Gnat_envp is the original envp value as stored by the binder generated Gnat_envp is the original envp value as stored by the binder generated
main program, and these routines are accessed from the main program, and these routines are accessed from the
Ada.Command_Line.Environment package. */ Ada.Command_Line.Environment package. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS #ifdef IN_RTS
#include "tconfig.h" #include "tconfig.h"
...@@ -116,3 +120,7 @@ __gnat_fill_env (char *a, int i) ...@@ -116,3 +120,7 @@ __gnat_fill_env (char *a, int i)
if (gnat_envp != NULL) if (gnat_envp != NULL)
strncpy (a, gnat_envp[i], strlen (gnat_envp[i])); strncpy (a, gnat_envp[i], strlen (gnat_envp[i]));
} }
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2010, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,7 +29,11 @@ ...@@ -29,7 +29,11 @@
atree.adb and must be kept synchronized with changes in these files. atree.adb and must be kept synchronized with changes in these files.
Note that only routines for reading the tree are included, since the tree Note that only routines for reading the tree are included, since the tree
transformer is not supposed to modify the tree in any way. */ transformer is not supposed to modify the tree in any way. */
#ifdef __cplusplus
extern "C" {
#endif
/* Structure used for the first part of the node in the case where we have /* Structure used for the first part of the node in the case where we have
an Nkind. */ an Nkind. */
...@@ -734,3 +738,6 @@ extern Node_Id Current_Error_Node; ...@@ -734,3 +738,6 @@ extern Node_Id Current_Error_Node;
#define Flag253(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag71) #define Flag253(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag71)
#define Flag254(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag72) #define Flag254(N) (Nodes_Ptr[(N) - First_Node_Id + 4].U.NK.flag72)
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2009, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,6 +29,10 @@ ...@@ -29,6 +29,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS #ifdef IN_RTS
#include "tconfig.h" #include "tconfig.h"
#include "tsystem.h" #include "tsystem.h"
...@@ -129,3 +133,7 @@ mktemp (char *template) ...@@ -129,3 +133,7 @@ mktemp (char *template)
return tmpnam (NULL); return tmpnam (NULL);
} }
#endif #endif
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* Auxiliary C functions for Interfaces.C.Streams * * Auxiliary C functions for Interfaces.C.Streams *
* * * *
* Copyright (C) 1992-2010, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,7 +29,11 @@ ...@@ -29,7 +29,11 @@
* * * *
****************************************************************************/ ****************************************************************************/
/* Routines required for implementing routines in Interfaces.C.Streams */ /* Routines required for implementing routines in Interfaces.C.Streams. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __vxworks #ifdef __vxworks
#include "vxWorks.h" #include "vxWorks.h"
...@@ -242,3 +246,7 @@ __gnat_full_name (char *nam, char *buffer) ...@@ -242,3 +246,7 @@ __gnat_full_name (char *nam, char *buffer)
return buffer; return buffer;
} }
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 2005-2010, Free Software Foundation, Inc. * * Copyright (C) 2005-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -37,6 +37,10 @@ ...@@ -37,6 +37,10 @@
#define _BSD #define _BSD
#endif #endif
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS #ifdef IN_RTS
#include "tconfig.h" #include "tconfig.h"
#include "tsystem.h" #include "tsystem.h"
...@@ -323,3 +327,7 @@ void __gnat_clearenv (void) { ...@@ -323,3 +327,7 @@ void __gnat_clearenv (void) {
clearenv (); clearenv ();
#endif #endif
} }
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2009 Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,6 +29,10 @@ ...@@ -29,6 +29,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __alpha_vxworks #ifdef __alpha_vxworks
#include "vxWorks.h" #include "vxWorks.h"
#endif #endif
...@@ -44,7 +48,7 @@ ...@@ -44,7 +48,7 @@
#include "adaint.h" #include "adaint.h"
/* Routine used by Ada.Command_Line.Set_Exit_Status */ /* Routine used by Ada.Command_Line.Set_Exit_Status. */
int gnat_exit_status = 0; int gnat_exit_status = 0;
...@@ -53,3 +57,7 @@ __gnat_set_exit_status (int i) ...@@ -53,3 +57,7 @@ __gnat_set_exit_status (int i)
{ {
gnat_exit_status = i; gnat_exit_status = i;
} }
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2010, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -32,6 +32,10 @@ ...@@ -32,6 +32,10 @@
/* This file contains definitions to access front-end functions and /* This file contains definitions to access front-end functions and
variables used by gigi. */ variables used by gigi. */
#ifdef __cplusplus
extern "C" {
#endif
/* comperr: */ /* comperr: */
#define Compiler_Abort comperr__compiler_abort #define Compiler_Abort comperr__compiler_abort
...@@ -251,3 +255,7 @@ extern void Set_Has_No_Elaboration_Code (Node_Id, Boolean); ...@@ -251,3 +255,7 @@ extern void Set_Has_No_Elaboration_Code (Node_Id, Boolean);
extern Boolean Backend_Overflow_Checks_On_Target; extern Boolean Backend_Overflow_Checks_On_Target;
extern Boolean Stack_Check_Probes_On_Target; extern Boolean Stack_Check_Probes_On_Target;
extern Boolean Stack_Check_Limits_On_Target; extern Boolean Stack_Check_Limits_On_Target;
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2009 Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,14 +29,22 @@ ...@@ -29,14 +29,22 @@
* * * *
****************************************************************************/ ****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
extern void __gnat_finalize (void); extern void __gnat_finalize (void);
/* This routine is called at the extreme end of execution of an Ada program /* This routine is called at the extreme end of execution of an Ada program
(the call is generated by the binder). The standard routine does nothing (the call is generated by the binder). The standard routine does nothing
at all, the intention is that this be replaced by system specific code at all, the intention is that this be replaced by system specific code
where finalization is required. */ where finalization is required. */
void void
__gnat_finalize (void) __gnat_finalize (void)
{ {
} }
#ifdef __cplusplus
}
#endif
...@@ -104,19 +104,19 @@ ADA_TOOLS_FLAGS_TO_PASS=\ ...@@ -104,19 +104,19 @@ ADA_TOOLS_FLAGS_TO_PASS=\
"GNATLINK=../../gnatlink" \ "GNATLINK=../../gnatlink" \
"GNATBIND=../../gnatbind" "GNATBIND=../../gnatbind"
GCC_LINK=$(CC) -static-libgcc $(LDFLAGS) GCC_LINK=$(LINKER) $(ALL_LINKERFLAGS) -static-libgcc $(LDFLAGS)
# Lists of files for various purposes. # Lists of files for various purposes.
# Languages-specific object files for Ada. # Languages-specific object files for Ada.
# Object files for gnat1 from C sources. # Object files for gnat1 from C sources.
GNAT1_C_OBJS = ada/b_gnat1.o ada/adadecode.o ada/adaint.o ada/cstreams.o \ GNAT1_C_OBJS = ada/adadecode.o ada/adaint.o ada/argv.o ada/cio.o \
ada/cio.o ada/targtyps.o ada/decl.o ada/misc.o ada/utils.o ada/utils2.o \ ada/cstreams.o ada/env.o ada/init.o ada/initialize.o ada/raise.o \
ada/trans.o ada/cuintp.o ada/argv.o ada/raise.o ada/init.o ada/tracebak.o \ ada/seh_init.o ada/targext.o ada/tracebak.o ada/cuintp.o ada/decl.o \
ada/initialize.o ada/env.o ada/misc.o ada/utils.o ada/utils2.o ada/trans.o ada/targtyps.o
# Object files from Ada sources that are used by gnat1 # Object files from Ada sources that are used by gnat1
GNAT_ADA_OBJS = \ GNAT_ADA_OBJS = \
ada/a-charac.o \ ada/a-charac.o \
ada/a-chlat1.o \ ada/a-chlat1.o \
...@@ -270,7 +270,6 @@ GNAT_ADA_OBJS = \ ...@@ -270,7 +270,6 @@ GNAT_ADA_OBJS = \
ada/scng.o \ ada/scng.o \
ada/scos.o \ ada/scos.o \
ada/sdefault.o \ ada/sdefault.o \
ada/seh_init.o \
ada/sem.o \ ada/sem.o \
ada/sem_aggr.o \ ada/sem_aggr.o \
ada/sem_attr.o \ ada/sem_attr.o \
...@@ -320,7 +319,6 @@ GNAT_ADA_OBJS = \ ...@@ -320,7 +319,6 @@ GNAT_ADA_OBJS = \
ada/switch.o \ ada/switch.o \
ada/system.o \ ada/system.o \
ada/table.o \ ada/table.o \
ada/targext.o \
ada/targparm.o \ ada/targparm.o \
ada/tbuild.o \ ada/tbuild.o \
ada/tree_gen.o \ ada/tree_gen.o \
...@@ -338,24 +336,24 @@ GNAT_ADA_OBJS = \ ...@@ -338,24 +336,24 @@ GNAT_ADA_OBJS = \
ada/widechar.o ada/widechar.o
# Object files for gnat executables # Object files for gnat executables
GNAT1_ADA_OBJS = $(GNAT_ADA_OBJS) ada/back_end.o ada/gnat1drv.o GNAT1_ADA_OBJS = $(GNAT_ADA_OBJS) ada/back_end.o ada/gnat1drv.o ada/b_gnat1.o
GNAT1_OBJS = $(GNAT1_C_OBJS) $(GNAT1_ADA_OBJS) GNAT1_OBJS = $(GNAT1_C_OBJS) $(GNAT1_ADA_OBJS)
GNATBIND_OBJS = \ GNATBIND_OBJS = \
ada/adaint.o \ ada/adaint.o \
ada/argv.o \ ada/argv.o \
ada/exit.o \
ada/cio.o \ ada/cio.o \
ada/cstreams.o \ ada/cstreams.o \
ada/env.o \ ada/env.o \
ada/exit.o \
ada/final.o \ ada/final.o \
ada/init.o \ ada/init.o \
ada/initialize.o \ ada/initialize.o \
ada/seh_init.o \
ada/link.o \ ada/link.o \
ada/targext.o \
ada/raise.o \ ada/raise.o \
ada/seh_init.o \
ada/targext.o \
ada/tracebak.o \ ada/tracebak.o \
ada/ada.o \ ada/ada.o \
ada/a-clrefi.o \ ada/a-clrefi.o \
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 2010, Free Software Foundation, Inc. * * Copyright (C) 2010-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -30,6 +30,14 @@ ...@@ -30,6 +30,14 @@
#ifndef GCC_ADAINT_H #ifndef GCC_ADAINT_H
#define GCC_ADAINT_H #define GCC_ADAINT_H
#ifdef __cplusplus
extern "C" {
#endif
extern char *__gnat_to_canonical_file_spec (char *); extern char *__gnat_to_canonical_file_spec (char *);
#ifdef __cplusplus
}
#endif
#endif /* GCC_ADAINT_H */ #endif /* GCC_ADAINT_H */
...@@ -199,6 +199,10 @@ struct File_Info_Type ...@@ -199,6 +199,10 @@ struct File_Info_Type
Nat Num_Source_Lines; Nat Num_Source_Lines;
}; };
#ifdef __cplusplus
extern "C" {
#endif
/* This is the main program of the back-end. It sets up all the table /* This is the main program of the back-end. It sets up all the table
structures and then generates code. */ structures and then generates code. */
extern void gigi (Node_Id gnat_root, int max_gnat_node, extern void gigi (Node_Id gnat_root, int max_gnat_node,
...@@ -218,6 +222,10 @@ extern void gigi (Node_Id gnat_root, int max_gnat_node, ...@@ -218,6 +222,10 @@ extern void gigi (Node_Id gnat_root, int max_gnat_node,
Entity_Id standard_exception_type, Entity_Id standard_exception_type,
Int gigi_operating_mode); Int gigi_operating_mode);
#ifdef __cplusplus
}
#endif
/* GNAT_NODE is the root of some GNAT tree. Return the root of the /* GNAT_NODE is the root of some GNAT tree. Return the root of the
GCC tree corresponding to that GNAT tree. Normally, no code is generated; GCC tree corresponding to that GNAT tree. Normally, no code is generated;
we just return an equivalent tree which is used elsewhere to generate we just return an equivalent tree which is used elsewhere to generate
...@@ -929,6 +937,11 @@ extern int fp_size_to_prec (int size); ...@@ -929,6 +937,11 @@ extern int fp_size_to_prec (int size);
/* These functions return the basic data type sizes and related parameters /* These functions return the basic data type sizes and related parameters
about the target machine. */ about the target machine. */
#ifdef __cplusplus
extern "C" {
#endif
extern Pos get_target_bits_per_unit (void); extern Pos get_target_bits_per_unit (void);
extern Pos get_target_bits_per_word (void); extern Pos get_target_bits_per_word (void);
extern Pos get_target_char_size (void); extern Pos get_target_char_size (void);
...@@ -953,6 +966,10 @@ extern Nat get_target_strict_alignment (void); ...@@ -953,6 +966,10 @@ extern Nat get_target_strict_alignment (void);
extern Nat get_target_double_float_alignment (void); extern Nat get_target_double_float_alignment (void);
extern Nat get_target_double_scalar_alignment (void); extern Nat get_target_double_scalar_alignment (void);
#ifdef __cplusplus
}
#endif
/* Let code know whether we are targetting VMS without need of /* Let code know whether we are targetting VMS without need of
intrusive preprocessor directives. */ intrusive preprocessor directives. */
#ifndef TARGET_ABI_OPEN_VMS #ifndef TARGET_ABI_OPEN_VMS
......
...@@ -68,12 +68,20 @@ const char **save_argv; ...@@ -68,12 +68,20 @@ const char **save_argv;
extern int gnat_argc; extern int gnat_argc;
extern char **gnat_argv; extern char **gnat_argv;
#ifdef __cplusplus
extern "C" {
#endif
/* Declare functions we use as part of startup. */ /* Declare functions we use as part of startup. */
extern void __gnat_initialize (void *); extern void __gnat_initialize (void *);
extern void __gnat_install_SEH_handler (void *); extern void __gnat_install_SEH_handler (void *);
extern void adainit (void); extern void adainit (void);
extern void _ada_gnat1drv (void); extern void _ada_gnat1drv (void);
#ifdef __cplusplus
}
#endif
/* The parser for the language. For us, we process the GNAT tree. */ /* The parser for the language. For us, we process the GNAT tree. */
static void static void
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2010, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -38,6 +38,10 @@ ...@@ -38,6 +38,10 @@
installed by this file are used to catch the resulting signals that come installed by this file are used to catch the resulting signals that come
from these probes failing (i.e. touching protected pages). */ from these probes failing (i.e. touching protected pages). */
#ifdef __cplusplus
extern "C" {
#endif
/* This file should be kept synchronized with 2sinit.ads, 2sinit.adb, /* This file should be kept synchronized with 2sinit.ads, 2sinit.adb,
s-init-ae653-cert.adb and s-init-xi-sparc.adb. All these files implement s-init-ae653-cert.adb and s-init-xi-sparc.adb. All these files implement
the required functionality for different targets. */ the required functionality for different targets. */
...@@ -2403,3 +2407,7 @@ __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED, ...@@ -2403,3 +2407,7 @@ __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED,
} }
#endif #endif
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2009, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -32,10 +32,14 @@ ...@@ -32,10 +32,14 @@
/* This unit provides default implementation for __gnat_initialize () /* This unit provides default implementation for __gnat_initialize ()
which is called before the elaboration of the partition. It is provided which is called before the elaboration of the partition. It is provided
in a separate file/object so that users can replace it easily. in a separate file/object so that users can replace it easily.
The default implementation should be null on most targets. */ The default implementation should be null on most targets. */
#ifdef __cplusplus
extern "C" {
#endif
/* The following include is here to meet the published VxWorks requirement /* The following include is here to meet the published VxWorks requirement
that the __vxworks header appear before any other include. */ that the __vxworks header appear before any other include. */
#ifdef __vxworks #ifdef __vxworks
#include "vxWorks.h" #include "vxWorks.h"
#endif #endif
...@@ -359,3 +363,7 @@ __gnat_initialize (void *eh ATTRIBUTE_UNUSED) ...@@ -359,3 +363,7 @@ __gnat_initialize (void *eh ATTRIBUTE_UNUSED)
} }
#endif #endif
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2009, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,9 +29,12 @@ ...@@ -29,9 +29,12 @@
* * * *
****************************************************************************/ ****************************************************************************/
/* This file contains host-specific parameters describing the behavior */ /* This file contains host-specific parameters describing the behavior of the
/* of the linker. It is used by gnatlink as well as all tools that use */ linker. It is used by gnatlink as well as all tools that use Mlib. */
/* Mlib. */
#ifdef __cplusplus
extern "C" {
#endif
#include <string.h> #include <string.h>
...@@ -254,3 +257,7 @@ const char *__gnat_object_library_extension = ".a"; ...@@ -254,3 +257,7 @@ const char *__gnat_object_library_extension = ".a";
unsigned char __gnat_separate_run_path_options = 0; unsigned char __gnat_separate_run_path_options = 0;
const char *__gnat_default_libgcc_subdir = "lib"; const char *__gnat_default_libgcc_subdir = "lib";
#endif #endif
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2008, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -24,7 +24,11 @@ ...@@ -24,7 +24,11 @@
****************************************************************************/ ****************************************************************************/
/* This is the C file that corresponds to the Ada package specification /* This is the C file that corresponds to the Ada package specification
Namet. It was created manually from files namet.ads and namet.adb. */ Namet. It was created manually from files namet.ads and namet.adb. */
#ifdef __cplusplus
extern "C" {
#endif
/* Structure defining a names table entry. */ /* Structure defining a names table entry. */
...@@ -127,3 +131,7 @@ extern Source_File_Index Get_Source_File_Index (Source_Ptr); ...@@ -127,3 +131,7 @@ extern Source_File_Index Get_Source_File_Index (Source_Ptr);
extern Logical_Line_Number Get_Logical_Line_Number (Source_Ptr); extern Logical_Line_Number Get_Logical_Line_Number (Source_Ptr);
extern Column_Number Get_Column_Number (Source_Ptr); extern Column_Number Get_Column_Number (Source_Ptr);
extern Source_Ptr Instantiation (Source_File_Index); extern Source_Ptr Instantiation (Source_File_Index);
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2008, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,7 +29,11 @@ ...@@ -29,7 +29,11 @@
nlists.adb and must be kept synchronized with changes in these files. nlists.adb and must be kept synchronized with changes in these files.
Note that only routines for reading the tree are included, since the Note that only routines for reading the tree are included, since the
tree transformer is not supposed to modify the tree in any way. */ tree transformer is not supposed to modify the tree in any way. */
#ifdef __cplusplus
extern "C" {
#endif
/* The following is the structure used for the list headers table */ /* The following is the structure used for the list headers table */
...@@ -128,3 +132,7 @@ List_Containing (Node_Id Node) ...@@ -128,3 +132,7 @@ List_Containing (Node_Id Node)
{ {
return Nodes_Ptr[Node - First_Node_Id].V.NX.link; return Nodes_Ptr[Node - First_Node_Id].V.NX.link;
} }
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 1992-2009, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -32,6 +32,10 @@ ...@@ -32,6 +32,10 @@
/* Shared routines to support exception handling. __gnat_unhandled_terminate /* Shared routines to support exception handling. __gnat_unhandled_terminate
is shared between all exception handling mechanisms. */ is shared between all exception handling mechanisms. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS #ifdef IN_RTS
#include "tconfig.h" #include "tconfig.h"
#include "tsystem.h" #include "tsystem.h"
...@@ -79,3 +83,7 @@ __gnat_unhandled_terminate (void) ...@@ -79,3 +83,7 @@ __gnat_unhandled_terminate (void)
/* Default termination handling */ /* Default termination handling */
__gnat_os_exit (1); __gnat_os_exit (1);
} }
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2009, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -29,6 +29,10 @@ ...@@ -29,6 +29,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/* C counterparts of what System.Standard_Library defines. */ /* C counterparts of what System.Standard_Library defines. */
typedef unsigned Exception_Code; typedef unsigned Exception_Code;
...@@ -60,3 +64,7 @@ extern void __gnat_install_SEH_handler (void *); ...@@ -60,3 +64,7 @@ extern void __gnat_install_SEH_handler (void *);
extern void __gnat_adjust_context_for_raise (int, void *); extern void __gnat_adjust_context_for_raise (int, void *);
extern int gnat_exit_status; extern int gnat_exit_status;
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1999-2009 Free Software Foundation, Inc. * * Copyright (C) 1999-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -31,6 +31,10 @@ ...@@ -31,6 +31,10 @@
/* This file corresponds to the Ada file repinfo.ads. */ /* This file corresponds to the Ada file repinfo.ads. */
#ifdef __cplusplus
extern "C" {
#endif
typedef Uint Node_Ref; typedef Uint Node_Ref;
typedef Uint Node_Ref_Or_Val; typedef Uint Node_Ref_Or_Val;
typedef char TCode; typedef char TCode;
...@@ -75,3 +79,7 @@ typedef char TCode; ...@@ -75,3 +79,7 @@ typedef char TCode;
#define Create_Node repinfo__create_node #define Create_Node repinfo__create_node
extern Node_Ref Create_Node (TCode, Node_Ref_Or_Val, extern Node_Ref Create_Node (TCode, Node_Ref_Or_Val,
Node_Ref_Or_Val, Node_Ref_Or_Val); Node_Ref_Or_Val, Node_Ref_Or_Val);
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 2005-2009, Free Software Foundation, Inc. * * Copyright (C) 2005-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -32,6 +32,10 @@ ...@@ -32,6 +32,10 @@
/* This unit contains support for SEH (Structured Exception Handling). /* This unit contains support for SEH (Structured Exception Handling).
Right now the only implementation is for Win32. */ Right now the only implementation is for Win32. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS #ifdef IN_RTS
#include "tconfig.h" #include "tconfig.h"
#include "tsystem.h" #include "tsystem.h"
...@@ -311,3 +315,7 @@ void __gnat_install_SEH_handler (void *eh ATTRIBUTE_UNUSED) ...@@ -311,3 +315,7 @@ void __gnat_install_SEH_handler (void *eh ATTRIBUTE_UNUSED)
{ {
} }
#endif #endif
#ifdef __cplusplus
}
#endif
...@@ -29,9 +29,13 @@ ...@@ -29,9 +29,13 @@
* * * *
****************************************************************************/ ****************************************************************************/
/* This file contains target-specific parameters describing the file */ /* This file contains target-specific parameters describing the file
/* extension for object and executable files. It is used by the compiler, */ extension for object and executable files. It is used by the compiler,
/* binder and tools. */ binder and tools. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS #ifdef IN_RTS
#include "tconfig.h" #include "tconfig.h"
...@@ -54,3 +58,7 @@ ...@@ -54,3 +58,7 @@
const char *__gnat_target_object_extension = TARGET_OBJECT_SUFFIX; const char *__gnat_target_object_extension = TARGET_OBJECT_SUFFIX;
const char *__gnat_target_executable_extension = TARGET_EXECUTABLE_SUFFIX; const char *__gnat_target_executable_extension = TARGET_EXECUTABLE_SUFFIX;
const char *__gnat_target_debuggable_extension = TARGET_EXECUTABLE_SUFFIX; const char *__gnat_target_debuggable_extension = TARGET_EXECUTABLE_SUFFIX;
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Implementation File * * C Implementation File *
* * * *
* Copyright (C) 2000-2010, AdaCore * * Copyright (C) 2000-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -46,6 +46,10 @@ ...@@ -46,6 +46,10 @@
Alpha/VMS Alpha/VMS
*/ */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __alpha_vxworks #ifdef __alpha_vxworks
#include "vxWorks.h" #include "vxWorks.h"
#endif #endif
...@@ -513,3 +517,7 @@ __gnat_backtrace (void **array ATTRIBUTE_UNUSED, ...@@ -513,3 +517,7 @@ __gnat_backtrace (void **array ATTRIBUTE_UNUSED,
#endif #endif
#endif #endif
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2010, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -23,8 +23,12 @@ ...@@ -23,8 +23,12 @@
* * * *
****************************************************************************/ ****************************************************************************/
/* This file corresponds to the Ada package specification Uintp. It was /* This file corresponds to the Ada package specification Uintp. It was
created manually from the files uintp.ads and uintp.adb */ created manually from the files uintp.ads and uintp.adb. */
#ifdef __cplusplus
extern "C" {
#endif
/* Support for universal integer arithmetic */ /* Support for universal integer arithmetic */
...@@ -94,3 +98,7 @@ extern struct Uint_Entry *uintp__uints__table; ...@@ -94,3 +98,7 @@ extern struct Uint_Entry *uintp__uints__table;
#define Udigits_Ptr uintp__udigits__table #define Udigits_Ptr uintp__udigits__table
extern int *uintp__udigits__table; extern int *uintp__udigits__table;
#ifdef __cplusplus
}
#endif
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* * * *
* C Header File * * C Header File *
* * * *
* Copyright (C) 1992-2007, Free Software Foundation, Inc. * * Copyright (C) 1992-2011, Free Software Foundation, Inc. *
* * * *
* GNAT is free software; you can redistribute it and/or modify it under * * GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- * * terms of the GNU General Public License as published by the Free Soft- *
...@@ -23,8 +23,12 @@ ...@@ -23,8 +23,12 @@
* * * *
****************************************************************************/ ****************************************************************************/
/* This file corresponds to the Ada package specification Urealp. It was /* This file corresponds to the Ada package specification Urealp. It was
created manually from the files urealp.ads and urealp.adb */ created manually from the files urealp.ads and urealp.adb. */
#ifdef __cplusplus
extern "C" {
#endif
/* Support for universal real arithmetic. */ /* Support for universal real arithmetic. */
...@@ -48,3 +52,7 @@ enum Rounding_Mode {Floor = 0, Ceiling = 1, Round = 2, Round_Even = 3}; ...@@ -48,3 +52,7 @@ enum Rounding_Mode {Floor = 0, Ceiling = 1, Round = 2, Round_Even = 3};
#define Machine eval_fat__machine #define Machine eval_fat__machine
extern Ureal Machine (Entity_Id, Ureal, enum Rounding_Mode, extern Ureal Machine (Entity_Id, Ureal, enum Rounding_Mode,
Node_Id); Node_Id);
#ifdef __cplusplus
}
#endif
...@@ -276,6 +276,10 @@ begin ...@@ -276,6 +276,10 @@ begin
Put_Line (Ofile, ""); Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "extern ""C"" {");
Put_Line (Ofile, "#endif");
-- Find and record pragma Inlines -- Find and record pragma Inlines
loop loop
...@@ -492,6 +496,11 @@ begin ...@@ -492,6 +496,11 @@ begin
end loop; end loop;
Put_Line (Ofile, ""); Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "}");
Put_Line (Ofile, "#endif");
Put_Line Put_Line
(Ofile, (Ofile,
"/* End of einfo.h (C version of Einfo package specification) */"); "/* End of einfo.h (C version of Einfo package specification) */");
......
...@@ -162,6 +162,11 @@ begin ...@@ -162,6 +162,11 @@ begin
end loop; end loop;
Put_Line (Ofile, ""); Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "extern ""C"" {");
Put_Line (Ofile, "#endif");
NKV := 0; NKV := 0;
-- Loop through node kind codes -- Loop through node kind codes
...@@ -248,6 +253,9 @@ exception ...@@ -248,6 +253,9 @@ exception
when Done => when Done =>
Close (InS); Close (InS);
Put_Line (Ofile, ""); Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "}");
Put_Line (Ofile, "#endif");
Close (Ofile); Close (Ofile);
Set_Exit_Status (0); Set_Exit_Status (0);
......
...@@ -194,6 +194,10 @@ begin ...@@ -194,6 +194,10 @@ begin
Create (OutB, Out_File, "snames.nb"); Create (OutB, Out_File, "snames.nb");
Create (OutH, Out_File, "snames.nh"); Create (OutH, Out_File, "snames.nh");
Put_Line (OutH, "#ifdef __cplusplus");
Put_Line (OutH, "extern ""C"" {");
Put_Line (OutH, "#endif");
Anchored_Mode := True; Anchored_Mode := True;
Val := 0; Val := 0;
...@@ -274,4 +278,8 @@ begin ...@@ -274,4 +278,8 @@ begin
Line := Get_Line (InH); Line := Get_Line (InH);
Put_Line (OutH, Line); Put_Line (OutH, Line);
end loop; end loop;
Put_Line (OutH, "#ifdef __cplusplus");
Put_Line (OutH, "}");
Put_Line (OutH, "#endif");
end XSnamesT; end XSnamesT;
...@@ -21,10 +21,20 @@ License along with GCC; see the file COPYING3. If not see ...@@ -21,10 +21,20 @@ License along with GCC; see the file COPYING3. If not see
#ifndef GCC_PREFIX_H #ifndef GCC_PREFIX_H
#define GCC_PREFIX_H #define GCC_PREFIX_H
#ifdef __cplusplus
extern "C" {
#endif
/* These functions are called by the Ada frontend with C convention. */
/* Update PATH using KEY if PATH starts with PREFIX. The returned /* Update PATH using KEY if PATH starts with PREFIX. The returned
string is always malloc-ed, and the caller is responsible for string is always malloc-ed, and the caller is responsible for
freeing it. */ freeing it. */
extern char *update_path (const char *path, const char *key); extern char *update_path (const char *path, const char *key);
extern void set_std_prefix (const char *, int); extern void set_std_prefix (const char *, int);
#ifdef __cplusplus
}
#endif
#endif /* ! GCC_PREFIX_H */ #endif /* ! GCC_PREFIX_H */
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