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>
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>
* gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
......
......@@ -6,7 +6,7 @@
* *
* 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 *
* 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)
}
}
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_GCC
char *
ada_demangle (const char *coded_name)
......@@ -402,3 +406,7 @@ get_encoding (const char *coded_name, char *encoding)
*dest_index = '\0';
}
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -29,6 +29,10 @@
* *
****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/* 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.
see exp_dbug.ads for full encoding rules, a short description is added
......@@ -51,3 +55,7 @@ extern void get_encoding (const char *, char *);
function used in the binutils and GDB. Always consider using __gnat_decode
instead of ada_demangle. Caller must free the pointer returned. */
extern char *ada_demangle (const char *);
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -34,6 +34,10 @@
package Osint. Many of the subprograms in OS_Lib import standard
library calls directly. This file contains all other routines. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __vxworks
/* No need to redefine exit here. */
......@@ -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
system. */
#ifdef VMS
const int __gnat_vmsp = 1;
int __gnat_vmsp = 1;
#else
const int __gnat_vmsp = 0;
int __gnat_vmsp = 0;
#endif
#if defined (VMS)
......@@ -324,7 +328,7 @@ const int __gnat_vmsp = 0;
#endif
/* 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 */
void __gnat_stat_to_attr (int fd, char* name, struct file_attributes* attr);
......@@ -3686,3 +3690,7 @@ void *__gnat_lwp_self (void)
return (void *) syscall (__NR_gettid);
}
#endif
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -29,6 +29,10 @@
* *
****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/stat.h>
#include <stdio.h>
......@@ -262,3 +266,7 @@ extern int get_gcc_version (void);
extern int __gnat_binder_supports_auto_init (void);
extern int __gnat_sals_init_using_constructors (void);
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -42,6 +42,10 @@
main program, and these routines are accessed from the
Ada.Command_Line.Environment package. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS
#include "tconfig.h"
#include "tsystem.h"
......@@ -116,3 +120,7 @@ __gnat_fill_env (char *a, int i)
if (gnat_envp != NULL)
strncpy (a, gnat_envp[i], strlen (gnat_envp[i]));
}
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -31,6 +31,10 @@
Note that only routines for reading the tree are included, since the tree
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
an Nkind. */
......@@ -734,3 +738,6 @@ extern Node_Id Current_Error_Node;
#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)
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -29,6 +29,10 @@
* *
****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS
#include "tconfig.h"
#include "tsystem.h"
......@@ -129,3 +133,7 @@ mktemp (char *template)
return tmpnam (NULL);
}
#endif
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -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
#include "vxWorks.h"
......@@ -242,3 +246,7 @@ __gnat_full_name (char *nam, char *buffer)
return buffer;
}
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -37,6 +37,10 @@
#define _BSD
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS
#include "tconfig.h"
#include "tsystem.h"
......@@ -323,3 +327,7 @@ void __gnat_clearenv (void) {
clearenv ();
#endif
}
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -29,6 +29,10 @@
* *
****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __alpha_vxworks
#include "vxWorks.h"
#endif
......@@ -44,7 +48,7 @@
#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;
......@@ -53,3 +57,7 @@ __gnat_set_exit_status (int i)
{
gnat_exit_status = i;
}
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -32,6 +32,10 @@
/* This file contains definitions to access front-end functions and
variables used by gigi. */
#ifdef __cplusplus
extern "C" {
#endif
/* comperr: */
#define Compiler_Abort comperr__compiler_abort
......@@ -251,3 +255,7 @@ extern void Set_Has_No_Elaboration_Code (Node_Id, Boolean);
extern Boolean Backend_Overflow_Checks_On_Target;
extern Boolean Stack_Check_Probes_On_Target;
extern Boolean Stack_Check_Limits_On_Target;
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -29,6 +29,10 @@
* *
****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
extern void __gnat_finalize (void);
/* This routine is called at the extreme end of execution of an Ada program
......@@ -40,3 +44,7 @@ void
__gnat_finalize (void)
{
}
#ifdef __cplusplus
}
#endif
......@@ -104,19 +104,19 @@ ADA_TOOLS_FLAGS_TO_PASS=\
"GNATLINK=../../gnatlink" \
"GNATBIND=../../gnatbind"
GCC_LINK=$(CC) -static-libgcc $(LDFLAGS)
GCC_LINK=$(LINKER) $(ALL_LINKERFLAGS) -static-libgcc $(LDFLAGS)
# Lists of files for various purposes.
# Languages-specific object files for Ada.
# Object files for gnat1 from C sources.
GNAT1_C_OBJS = ada/b_gnat1.o ada/adadecode.o ada/adaint.o ada/cstreams.o \
ada/cio.o ada/targtyps.o ada/decl.o ada/misc.o ada/utils.o ada/utils2.o \
ada/trans.o ada/cuintp.o ada/argv.o ada/raise.o ada/init.o ada/tracebak.o \
ada/initialize.o ada/env.o
GNAT1_C_OBJS = ada/adadecode.o ada/adaint.o ada/argv.o ada/cio.o \
ada/cstreams.o ada/env.o ada/init.o ada/initialize.o ada/raise.o \
ada/seh_init.o ada/targext.o ada/tracebak.o ada/cuintp.o ada/decl.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
GNAT_ADA_OBJS = \
ada/a-charac.o \
ada/a-chlat1.o \
......@@ -270,7 +270,6 @@ GNAT_ADA_OBJS = \
ada/scng.o \
ada/scos.o \
ada/sdefault.o \
ada/seh_init.o \
ada/sem.o \
ada/sem_aggr.o \
ada/sem_attr.o \
......@@ -320,7 +319,6 @@ GNAT_ADA_OBJS = \
ada/switch.o \
ada/system.o \
ada/table.o \
ada/targext.o \
ada/targparm.o \
ada/tbuild.o \
ada/tree_gen.o \
......@@ -338,24 +336,24 @@ GNAT_ADA_OBJS = \
ada/widechar.o
# 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)
GNATBIND_OBJS = \
ada/adaint.o \
ada/argv.o \
ada/exit.o \
ada/cio.o \
ada/cstreams.o \
ada/env.o \
ada/exit.o \
ada/final.o \
ada/init.o \
ada/initialize.o \
ada/seh_init.o \
ada/link.o \
ada/targext.o \
ada/raise.o \
ada/seh_init.o \
ada/targext.o \
ada/tracebak.o \
ada/ada.o \
ada/a-clrefi.o \
......
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -30,6 +30,14 @@
#ifndef GCC_ADAINT_H
#define GCC_ADAINT_H
#ifdef __cplusplus
extern "C" {
#endif
extern char *__gnat_to_canonical_file_spec (char *);
#ifdef __cplusplus
}
#endif
#endif /* GCC_ADAINT_H */
......@@ -199,6 +199,10 @@ struct File_Info_Type
Nat Num_Source_Lines;
};
#ifdef __cplusplus
extern "C" {
#endif
/* This is the main program of the back-end. It sets up all the table
structures and then generates code. */
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,
Int gigi_operating_mode);
#ifdef __cplusplus
}
#endif
/* 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;
we just return an equivalent tree which is used elsewhere to generate
......@@ -929,6 +937,11 @@ extern int fp_size_to_prec (int size);
/* These functions return the basic data type sizes and related parameters
about the target machine. */
#ifdef __cplusplus
extern "C" {
#endif
extern Pos get_target_bits_per_unit (void);
extern Pos get_target_bits_per_word (void);
extern Pos get_target_char_size (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_scalar_alignment (void);
#ifdef __cplusplus
}
#endif
/* Let code know whether we are targetting VMS without need of
intrusive preprocessor directives. */
#ifndef TARGET_ABI_OPEN_VMS
......
......@@ -68,12 +68,20 @@ const char **save_argv;
extern int gnat_argc;
extern char **gnat_argv;
#ifdef __cplusplus
extern "C" {
#endif
/* Declare functions we use as part of startup. */
extern void __gnat_initialize (void *);
extern void __gnat_install_SEH_handler (void *);
extern void adainit (void);
extern void _ada_gnat1drv (void);
#ifdef __cplusplus
}
#endif
/* The parser for the language. For us, we process the GNAT tree. */
static void
......
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -38,6 +38,10 @@
installed by this file are used to catch the resulting signals that come
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,
s-init-ae653-cert.adb and s-init-xi-sparc.adb. All these files implement
the required functionality for different targets. */
......@@ -2403,3 +2407,7 @@ __gnat_adjust_context_for_raise (int signo ATTRIBUTE_UNUSED,
}
#endif
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -34,6 +34,10 @@
in a separate file/object so that users can replace it easily.
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
that the __vxworks header appear before any other include. */
#ifdef __vxworks
......@@ -359,3 +363,7 @@ __gnat_initialize (void *eh ATTRIBUTE_UNUSED)
}
#endif
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -29,9 +29,12 @@
* *
****************************************************************************/
/* This file contains host-specific parameters describing the behavior */
/* of the linker. It is used by gnatlink as well as all tools that use */
/* Mlib. */
/* This file contains host-specific parameters describing the behavior of the
linker. It is used by gnatlink as well as all tools that use Mlib. */
#ifdef __cplusplus
extern "C" {
#endif
#include <string.h>
......@@ -254,3 +257,7 @@ const char *__gnat_object_library_extension = ".a";
unsigned char __gnat_separate_run_path_options = 0;
const char *__gnat_default_libgcc_subdir = "lib";
#endif
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -26,6 +26,10 @@
/* This is the C file that corresponds to the Ada package specification
Namet. It was created manually from files namet.ads and namet.adb. */
#ifdef __cplusplus
extern "C" {
#endif
/* Structure defining a names table entry. */
struct Name_Entry
......@@ -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 Column_Number Get_Column_Number (Source_Ptr);
extern Source_Ptr Instantiation (Source_File_Index);
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -31,6 +31,10 @@
Note that only routines for reading the tree are included, since the
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 */
struct List_Header
......@@ -128,3 +132,7 @@ List_Containing (Node_Id Node)
{
return Nodes_Ptr[Node - First_Node_Id].V.NX.link;
}
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -32,6 +32,10 @@
/* Shared routines to support exception handling. __gnat_unhandled_terminate
is shared between all exception handling mechanisms. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS
#include "tconfig.h"
#include "tsystem.h"
......@@ -79,3 +83,7 @@ __gnat_unhandled_terminate (void)
/* Default termination handling */
__gnat_os_exit (1);
}
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -29,6 +29,10 @@
* *
****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/* C counterparts of what System.Standard_Library defines. */
typedef unsigned Exception_Code;
......@@ -60,3 +64,7 @@ extern void __gnat_install_SEH_handler (void *);
extern void __gnat_adjust_context_for_raise (int, void *);
extern int gnat_exit_status;
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -31,6 +31,10 @@
/* This file corresponds to the Ada file repinfo.ads. */
#ifdef __cplusplus
extern "C" {
#endif
typedef Uint Node_Ref;
typedef Uint Node_Ref_Or_Val;
typedef char TCode;
......@@ -75,3 +79,7 @@ typedef char TCode;
#define Create_Node repinfo__create_node
extern Node_Ref Create_Node (TCode, Node_Ref_Or_Val,
Node_Ref_Or_Val, Node_Ref_Or_Val);
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -32,6 +32,10 @@
/* This unit contains support for SEH (Structured Exception Handling).
Right now the only implementation is for Win32. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS
#include "tconfig.h"
#include "tsystem.h"
......@@ -311,3 +315,7 @@ void __gnat_install_SEH_handler (void *eh ATTRIBUTE_UNUSED)
{
}
#endif
#ifdef __cplusplus
}
#endif
......@@ -29,9 +29,13 @@
* *
****************************************************************************/
/* This file contains target-specific parameters describing the file */
/* extension for object and executable files. It is used by the compiler, */
/* binder and tools. */
/* This file contains target-specific parameters describing the file
extension for object and executable files. It is used by the compiler,
binder and tools. */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IN_RTS
#include "tconfig.h"
......@@ -54,3 +58,7 @@
const char *__gnat_target_object_extension = TARGET_OBJECT_SUFFIX;
const char *__gnat_target_executable_extension = TARGET_EXECUTABLE_SUFFIX;
const char *__gnat_target_debuggable_extension = TARGET_EXECUTABLE_SUFFIX;
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -46,6 +46,10 @@
Alpha/VMS
*/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __alpha_vxworks
#include "vxWorks.h"
#endif
......@@ -513,3 +517,7 @@ __gnat_backtrace (void **array ATTRIBUTE_UNUSED,
#endif
#endif
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -24,7 +24,11 @@
****************************************************************************/
/* 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 */
......@@ -94,3 +98,7 @@ extern struct Uint_Entry *uintp__uints__table;
#define Udigits_Ptr uintp__udigits__table
extern int *uintp__udigits__table;
#ifdef __cplusplus
}
#endif
......@@ -6,7 +6,7 @@
* *
* 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 *
* terms of the GNU General Public License as published by the Free Soft- *
......@@ -24,7 +24,11 @@
****************************************************************************/
/* 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. */
......@@ -48,3 +52,7 @@ enum Rounding_Mode {Floor = 0, Ceiling = 1, Round = 2, Round_Even = 3};
#define Machine eval_fat__machine
extern Ureal Machine (Entity_Id, Ureal, enum Rounding_Mode,
Node_Id);
#ifdef __cplusplus
}
#endif
......@@ -276,6 +276,10 @@ begin
Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "extern ""C"" {");
Put_Line (Ofile, "#endif");
-- Find and record pragma Inlines
loop
......@@ -492,6 +496,11 @@ begin
end loop;
Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "}");
Put_Line (Ofile, "#endif");
Put_Line
(Ofile,
"/* End of einfo.h (C version of Einfo package specification) */");
......
......@@ -162,6 +162,11 @@ begin
end loop;
Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "extern ""C"" {");
Put_Line (Ofile, "#endif");
NKV := 0;
-- Loop through node kind codes
......@@ -248,6 +253,9 @@ exception
when Done =>
Close (InS);
Put_Line (Ofile, "");
Put_Line (Ofile, "#ifdef __cplusplus");
Put_Line (Ofile, "}");
Put_Line (Ofile, "#endif");
Close (Ofile);
Set_Exit_Status (0);
......
......@@ -194,6 +194,10 @@ begin
Create (OutB, Out_File, "snames.nb");
Create (OutH, Out_File, "snames.nh");
Put_Line (OutH, "#ifdef __cplusplus");
Put_Line (OutH, "extern ""C"" {");
Put_Line (OutH, "#endif");
Anchored_Mode := True;
Val := 0;
......@@ -274,4 +278,8 @@ begin
Line := Get_Line (InH);
Put_Line (OutH, Line);
end loop;
Put_Line (OutH, "#ifdef __cplusplus");
Put_Line (OutH, "}");
Put_Line (OutH, "#endif");
end XSnamesT;
......@@ -21,10 +21,20 @@ License along with GCC; see the file COPYING3. If not see
#ifndef 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
string is always malloc-ed, and the caller is responsible for
freeing it. */
extern char *update_path (const char *path, const char *key);
extern void set_std_prefix (const char *, int);
#ifdef __cplusplus
}
#endif
#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