[Ada] Update configure to check for a recent gnat Ada compiler.

Message ID 004601d8a460$940e7220$bc2b5660$@nextmovesoftware.com
State New
Headers
Series [Ada] Update configure to check for a recent gnat Ada compiler. |

Commit Message

Roger Sayle July 30, 2022, 10:06 p.m. UTC
  GCC fails to bootstrap when configured with --enable-languages=all on
machines that have older versions of GNAT installed as the system Ada
compiler.  In configure, it's not sufficient to check whether gnat is
available, but whether a sufficiently recent version of GNAT is
installed.  This patch tweaks config/acx.m4 so that conftest.adb also
contains a reference to System.CRTL.int64 as required by the current
version of gcc/ada/osint.adb.  This fixes the build when the system
Ada is GNAT v4.8.5 (on Redhat 7) by disabling ada, but continues to
work fine when the system Ada is GNAT v11.3.1.

Tested in x86_64-pc-linux-gnu.  Ok for mainline?


2022-07-30  Roger Sayle  <roger@nextmovesoftware.com>

ChangeLog
        * config/acx.me (AC_PROG_GNAT): Update conftest.adb to include
        features required of the host gnat compiler.
        * configure: Regenerate.

Thanks in advance,
Roger
--
  

Comments

Arnaud Charlet Aug. 1, 2022, 7:25 a.m. UTC | #1
> GCC fails to bootstrap when configured with --enable-languages=all on
> machines that have older versions of GNAT installed as the system Ada
> compiler.  In configure, it's not sufficient to check whether gnat is
> available, but whether a sufficiently recent version of GNAT is
> installed.  This patch tweaks config/acx.m4 so that conftest.adb also
> contains a reference to System.CRTL.int64 as required by the current
> version of gcc/ada/osint.adb.  This fixes the build when the system
> Ada is GNAT v4.8.5 (on Redhat 7) by disabling ada, but continues to
> work fine when the system Ada is GNAT v11.3.1.
> 
> Tested in x86_64-pc-linux-gnu.  Ok for mainline?
> 
> 
> 2022-07-30  Roger Sayle  <roger@nextmovesoftware.com>
> 
> ChangeLog
>         * config/acx.me (AC_PROG_GNAT): Update conftest.adb to include
>         features required of the host gnat compiler.
>         * configure: Regenerate.
> 
> Thanks in advance,
> Roger
> --
> 

> diff --git a/config/acx.m4 b/config/acx.m4
> index b86c4f9..bd3e7f8 100644
> --- a/config/acx.m4
> +++ b/config/acx.m4
> @@ -396,6 +396,10 @@ AC_CHECK_TOOL(GNATMAKE, gnatmake, no)
>  AC_CACHE_CHECK([whether compiler driver understands Ada],

I'd suggest changing the text above to e.g. "whether compiler driver understands Ada and is recent enough"

OK with this change, thanks!

>  		 acx_cv_cc_gcc_supports_ada,
>  [cat >conftest.adb <<EOF
> +pragma Warnings (Off);
> +with System.CRTL;
> +pragma Warnings (On);
> +use type System.CRTL.int64;
>  procedure conftest is begin null; end conftest;
>  EOF
>  acx_cv_cc_gcc_supports_ada=no
> diff --git a/configure b/configure
> index 65d7078..3ddcc9f 100755
> --- a/configure
> +++ b/configure
> @@ -5608,6 +5608,10 @@ if ${acx_cv_cc_gcc_supports_ada+:} false; then :
>    $as_echo_n "(cached) " >&6
>  else
>    cat >conftest.adb <<EOF
> +pragma Warnings (Off);
> +with System.CRTL;
> +pragma Warnings (On);
> +use type System.CRTL.int64;
>  procedure conftest is begin null; end conftest;
>  EOF
>  acx_cv_cc_gcc_supports_ada=no
  

Patch

diff --git a/config/acx.m4 b/config/acx.m4
index b86c4f9..bd3e7f8 100644
--- a/config/acx.m4
+++ b/config/acx.m4
@@ -396,6 +396,10 @@  AC_CHECK_TOOL(GNATMAKE, gnatmake, no)
 AC_CACHE_CHECK([whether compiler driver understands Ada],
 		 acx_cv_cc_gcc_supports_ada,
 [cat >conftest.adb <<EOF
+pragma Warnings (Off);
+with System.CRTL;
+pragma Warnings (On);
+use type System.CRTL.int64;
 procedure conftest is begin null; end conftest;
 EOF
 acx_cv_cc_gcc_supports_ada=no
diff --git a/configure b/configure
index 65d7078..3ddcc9f 100755
--- a/configure
+++ b/configure
@@ -5608,6 +5608,10 @@  if ${acx_cv_cc_gcc_supports_ada+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.adb <<EOF
+pragma Warnings (Off);
+with System.CRTL;
+pragma Warnings (On);
+use type System.CRTL.int64;
 procedure conftest is begin null; end conftest;
 EOF
 acx_cv_cc_gcc_supports_ada=no