>> 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?

This is OK, thanks.

> [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