https://gcc.gnu.org/g:144ddb0cdfa7a09ccbaaea5ec72837346fbc1d8d

commit r15-6600-g144ddb0cdfa7a09ccbaaea5ec72837346fbc1d8d
Author: Eric Botcazou <ebotca...@adacore.com>
Date:   Mon Jan 6 12:20:00 2025 +0100

    Ada: fix spurious relinking of gnatbind for cross compilers
    
    The problem has been introduced by r15-1881.
    
    gcc/ada
            PR ada/118247
            * gcc-interface/Make-lang.in (GNATTOOLS_CROSS_MV): Copy gnatbind
            instead of moving it.

Diff:
---
 gcc/ada/gcc-interface/Make-lang.in | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gcc/ada/gcc-interface/Make-lang.in 
b/gcc/ada/gcc-interface/Make-lang.in
index 1d8f09709806..b0c568ad60ba 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -833,10 +833,14 @@ gnatlib gnatlib-sjlj gnatlib-zcx gnatlib-shared: force
 gnattools-cross-mv:
        $(GNATTOOLS_CROSS_MV)
 
+# gnatbind$(exeext) is a prerequisite of the ada target and
+# thus needs to be copied instead of moved.
 GNATTOOLS_CROSS_MV=\
-  for tool in $(ADA_TOOLS) ; do \
-    if [ -f $$tool$(exeext) ] ; \
-    then \
+  if [ -f gnatbind$(exeext) ] ; then \
+    $(CP) gnatbind$(exeext) gnatbind-cross$(exeext); \
+  fi; \
+  for tool in $(filter-out gnatbind, $(ADA_TOOLS)) ; do \
+    if [ -f $$tool$(exeext) ] ; then \
       $(MV) $$tool$(exeext) $$tool-cross$(exeext); \
     fi; \
   done

Reply via email to