On Sep 26, 2018, Pierre-Marie de Rodat <dero...@adacore.com> wrote:

> This will allow us to remove the import of flag_compare_debug in
> lib-writ.adb in a second stage.

And here's the second stage.  Tested on x86_64-linux-gnu.  Ok to install?


[Ada] use -gnatd_A to disable .ali on -fcompare-debug recompile

From: Alexandre Oliva <ol...@adacore.com>

for  gcc/ada/ChangeLog

        * gcc-interface/lang-specs.h (default_compilers): When given
        fcompare-debug-second, adjust auxbase like cc1, and pass
        gnatd_A.
        * gcc-interface/misc.c (flag_compare_debug): Remove variable.
        (gnat_post_options): Do not set it.
        * lib-writ.adb (flag_compare_debug): Remove import.
        (Write_ALI): Do not test it.
---
 gcc/ada/gcc-interface/lang-specs.h |    3 ++-
 gcc/ada/gcc-interface/misc.c       |    4 ----
 gcc/ada/lib-writ.adb               |    8 +-------
 3 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/gcc/ada/gcc-interface/lang-specs.h 
b/gcc/ada/gcc-interface/lang-specs.h
index eece809343d13..c7bf32c03905d 100644
--- a/gcc/ada/gcc-interface/lang-specs.h
+++ b/gcc/ada/gcc-interface/lang-specs.h
@@ -35,7 +35,8 @@
  gnat1 %{I*} %{k8:-gnatk8} %{Wall:-gnatwa} %{w:-gnatws} %{!Q:-quiet}\
     %{nostdinc*} %{nostdlib*}\
     -dumpbase %{.adb:%b.adb}%{.ads:%b.ads}%{!.adb:%{!.ads:%b.ada}}\
-    %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}} \
+    %{fcompare-debug-second:%:compare-debug-auxbase-opt(%b) -gnatd_A} \
+    %{!fcompare-debug-second:%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase 
%b}}%{!c:%{!S:-auxbase %b}}} \
     %{O*} %{W*} %{w} %{p} %{pg:-p} %{d*} \
     %{coverage:-fprofile-arcs -ftest-coverage} "
 #if defined(TARGET_VXWORKS_RTP)
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index 16a9d2ccf8e0a..98ec2778d56d7 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -77,9 +77,6 @@ int optimize;
 #undef optimize_size
 int optimize_size;
 
-#undef flag_compare_debug
-int flag_compare_debug;
-
 #undef flag_short_enums
 int flag_short_enums;
 
@@ -284,7 +281,6 @@ gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED)
   gnat_encodings = global_options.x_gnat_encodings;
   optimize = global_options.x_optimize;
   optimize_size = global_options.x_optimize_size;
-  flag_compare_debug = global_options.x_flag_compare_debug;
   flag_stack_check = global_options.x_flag_stack_check;
   flag_short_enums = global_options.x_flag_short_enums;
 
diff --git a/gcc/ada/lib-writ.adb b/gcc/ada/lib-writ.adb
index f035b45e91331..ce35c9e8fa58c 100644
--- a/gcc/ada/lib-writ.adb
+++ b/gcc/ada/lib-writ.adb
@@ -226,10 +226,6 @@ package body Lib.Writ is
       Num_Sdep : Nat := 0;
       --  Number of active entries in Sdep_Table
 
-      flag_compare_debug : Int;
-      pragma Import (C, flag_compare_debug);
-      --  Import from toplev.c
-
       -----------------------
       -- Local Subprograms --
       -----------------------
@@ -1079,9 +1075,7 @@ package body Lib.Writ is
       --  We never write an ALI file if the original operating mode was
       --  syntax-only (-gnats switch used in compiler invocation line)
 
-      if Original_Operating_Mode = Check_Syntax
-        or flag_compare_debug /= 0
-      then
+      if Original_Operating_Mode = Check_Syntax then
          return;
       end if;
 


-- 
Alexandre Oliva, freedom fighter   https://FSFLA.org/blogs/lxo
Be the change, be Free!         FSF Latin America board member
GNU Toolchain Engineer                Free Software Evangelist

Reply via email to