diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb
index b4d7cec..daf4fa0 100644
--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -1603,6 +1603,7 @@ package body Bindgen is
 
       if not CodePeer_Mode
         and then not Cumulative_Restrictions.Set (No_Finalization)
+        and then not Suppress_Standard_Library_On_Target
       then
          WBI ("      procedure Initialize (Addr : System.Address);");
          WBI ("      pragma Import (C, Initialize, ""__gnat_initialize"");");
@@ -1706,6 +1707,7 @@ package body Bindgen is
       end if;
 
       if not Cumulative_Restrictions.Set (No_Finalization)
+        and then not Suppress_Standard_Library_On_Target
         and then not CodePeer_Mode
       then
          if not No_Main_Subprogram
@@ -1736,9 +1738,12 @@ package body Bindgen is
          end if;
       end if;
 
-      --  Adafinal call is skipped if no finalization
+      --  Adafinal call is skipped if no finalization or no exception
+      --  propagation
 
-      if not Cumulative_Restrictions.Set (No_Finalization) then
+      if not Cumulative_Restrictions.Set (No_Finalization)
+        and then not Suppress_Standard_Library_On_Target
+      then
          WBI ("      adafinal;");
       end if;
 
@@ -1751,6 +1756,7 @@ package body Bindgen is
       --  Finalize is only called if we have a run time
 
       if not Cumulative_Restrictions.Set (No_Finalization)
+        and then not Suppress_Standard_Library_On_Target
         and then not CodePeer_Mode
       then
          WBI ("      Finalize;");
@@ -2203,7 +2209,9 @@ package body Bindgen is
          WBI ("   pragma Linker_Constructor (" & Ada_Init_Name.all & ");");
       end if;
 
-      if not Cumulative_Restrictions.Set (No_Finalization) then
+      if not Cumulative_Restrictions.Set (No_Finalization)
+        and then not Suppress_Standard_Library_On_Target
+      then
          WBI ("");
          WBI ("   procedure " & Ada_Final_Name.all & ";");
          WBI ("   pragma Export (C, " & Ada_Final_Name.all & ", """ &
@@ -2388,7 +2396,9 @@ package body Bindgen is
 
       --  Generate the adafinal routine unless there is no finalization to do
 
-      if not Cumulative_Restrictions.Set (No_Finalization) then
+      if not Cumulative_Restrictions.Set (No_Finalization)
+        and then not Suppress_Standard_Library_On_Target
+      then
          if Needs_Library_Finalization then
             Gen_Finalize_Library (Elab_Order);
          end if;
