Commit 33420a44 by Vincent Celier Committed by Arnaud Charlet

bindgen.adb (Gen_Output_File_C): When switch -a was specified...

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

From-SVN: r101692
parent 2366e7c6
...@@ -2522,8 +2522,18 @@ package body Bindgen is ...@@ -2522,8 +2522,18 @@ package body Bindgen is
WBI (" (int, int, char, char, char, char,"); WBI (" (int, int, char, char, char, char,");
WBI (" const char *, const char *,"); WBI (" const char *, const char *,");
WBI (" int, int, int, int, int);"); 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);"); WBI ("extern void system__standard_library__adafinal (void);");
if not No_Main_Subprogram then if not No_Main_Subprogram then
......
...@@ -413,9 +413,6 @@ begin ...@@ -413,9 +413,6 @@ begin
if Bind_Main_Program then if Bind_Main_Program then
Fail ("switch -a must be used in conjunction with -n or -Lxxx"); Fail ("switch -a must be used in conjunction with -n or -Lxxx");
elsif not Ada_Bind_File then
Fail ("switch -a cannot be used when C code is generated");
elsif not Gnatbind_Supports_Auto_Init then elsif not Gnatbind_Supports_Auto_Init then
Fail ("automatic initialisation of elaboration " & Fail ("automatic initialisation of elaboration " &
"not supported on this platform"); "not supported on this platform");
......
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