summaryrefslogtreecommitdiff
path: root/gcc/ada/bindgen.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-07 09:41:44 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-07 09:41:44 +0000
commitb6cae871b56d3701ad7db1e63ee39945560c086e (patch)
tree01f3c4e4c1db80c4fc748db751b6d49be6b68903 /gcc/ada/bindgen.adb
parentccf6b4adad882a6b65ae35364203ca6f646a5b03 (diff)
downloadgcc-b6cae871b56d3701ad7db1e63ee39945560c086e.tar.gz
2005-07-07 Vincent Celier <celier@adacore.com>
* bindgen.adb (Gen_Output_File_C): When switch -a was specified, put the destructor/constructor attributes for <lib>final/<lib>init. * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101692 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/bindgen.adb')
-rw-r--r--gcc/ada/bindgen.adb14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb
index e37a386a9be..bd3867487c1 100644
--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -2522,8 +2522,18 @@ package body Bindgen is
WBI (" (int, int, char, char, char, char,");
WBI (" const char *, const char *,");
WBI (" int, int, int, int, int);");
- WBI ("extern void " & Ada_Final_Name.all & " (void);");
- WBI ("extern void " & Ada_Init_Name.all & " (void);");
+
+ if Use_Pragma_Linker_Constructor then
+ WBI ("extern void " & Ada_Final_Name.all &
+ " (void) __attribute__((destructor));");
+ WBI ("extern void " & Ada_Init_Name.all &
+ " (void) __attribute__((constructor));");
+
+ else
+ WBI ("extern void " & Ada_Final_Name.all & " (void);");
+ WBI ("extern void " & Ada_Init_Name.all & " (void);");
+ end if;
+
WBI ("extern void system__standard_library__adafinal (void);");
if not No_Main_Subprogram then