aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gcc-interface')
-rw-r--r--gcc/ada/gcc-interface/Make-lang.in22
-rw-r--r--gcc/ada/gcc-interface/gadaint.h10
-rw-r--r--gcc/ada/gcc-interface/gigi.h17
-rw-r--r--gcc/ada/gcc-interface/misc.c8
4 files changed, 44 insertions, 13 deletions
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index d4344cc..c471508 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -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 \
diff --git a/gcc/ada/gcc-interface/gadaint.h b/gcc/ada/gcc-interface/gadaint.h
index 57503f0..ce27a14 100644
--- a/gcc/ada/gcc-interface/gadaint.h
+++ b/gcc/ada/gcc-interface/gadaint.h
@@ -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 */
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h
index c1f1217..8ef6097 100644
--- a/gcc/ada/gcc-interface/gigi.h
+++ b/gcc/ada/gcc-interface/gigi.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
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index 92426fd..62e7ac7 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -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