toplevel: Unbreak Ada build [PR123490]

Message ID aWIQNPl_-SQUgscs@tucnak
State New
Headers
Series toplevel: Unbreak Ada build [PR123490] |

Commit Message

Jakub Jelinek Jan. 10, 2026, 8:39 a.m. UTC
  Hi!

As written earlier, the config-ml.in change from the
--with-multi-buildlist patch broke build of Ada, Ada uses
RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
and expects that the primary multilib will result in rts
rather than rts_. it results in after the --with-multi-buildlist
changes.

The following patch fixes it by restoring previous behavior for
ml_subdir / MULTISUBDIR such that for primary multilib it is
still empty rather than /.

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Another possibility would be the attached untested patch.

2026-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR ada/123490
	* config-ml.in: Restore ml_subdir being empty instead of /.
	for the primary multilib.


	Jakub
--- gcc/ada/Makefile.in.jj	2026-01-09 22:20:06.232570746 +0100
+++ gcc/ada/Makefile.in	2026-01-10 09:37:44.588334213 +0100
@@ -196,7 +196,11 @@ GNAT_SRC=$(fsrcpfx)ada
 
 # Multilib handling
 MULTISUBDIR =
+ifeq ($(MULTISUBDIR),/.)
+RTSDIR = rts
+else
 RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
+fi
 
 # Link flags used to build gnat tools.  By default we prefer to statically
 # link with libgcc to avoid a dependency on shared libgcc (which is tricky
  

Comments

Richard Biener Jan. 10, 2026, 10:06 a.m. UTC | #1
> Am 10.01.2026 um 09:40 schrieb Jakub Jelinek <jakub@redhat.com>:
> 
> Hi!
> 
> As written earlier, the config-ml.in change from the
> --with-multi-buildlist patch broke build of Ada, Ada uses
> RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
> and expects that the primary multilib will result in rts
> rather than rts_. it results in after the --with-multi-buildlist
> changes.
> 
> The following patch fixes it by restoring previous behavior for
> ml_subdir / MULTISUBDIR such that for primary multilib it is
> still empty rather than /.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Ok

Richard 

> Another possibility would be the attached untested patch.
> 
> 2026-01-10  Jakub Jelinek  <jakub@redhat.com>
> 
>    PR ada/123490
>    * config-ml.in: Restore ml_subdir being empty instead of /.
>    for the primary multilib.
> 
> --- config-ml.in.jj    2026-01-09 12:06:40.247967156 +0100
> +++ config-ml.in    2026-01-09 22:15:02.891647668 +0100
> @@ -615,7 +615,11 @@ fi
> 
> if [ -z "${with_multisubdir}" ]; then
>   ml_top_subdir=`${CC-gcc} --print-multi-directory 2>/dev/null`
> -  ml_subdir=/$ml_top_subdir
> +  if [ "$ml_top_subdir" = . ]; then
> +    ml_subdir=
> +  else
> +    ml_subdir=/$ml_top_subdir
> +  fi
>   ml_builddotdot=
>   : # ml_srcdotdot= # already set
> else
> 
>    Jakub
> <X>
  

Patch

--- config-ml.in.jj	2026-01-09 12:06:40.247967156 +0100
+++ config-ml.in	2026-01-09 22:15:02.891647668 +0100
@@ -615,7 +615,11 @@  fi
 
 if [ -z "${with_multisubdir}" ]; then
   ml_top_subdir=`${CC-gcc} --print-multi-directory 2>/dev/null`
-  ml_subdir=/$ml_top_subdir
+  if [ "$ml_top_subdir" = . ]; then
+    ml_subdir=
+  else
+    ml_subdir=/$ml_top_subdir
+  fi
   ml_builddotdot=
   : # ml_srcdotdot= # already set
 else