install issue when configured with ; --program-suffix=-X.Y.Z

Iain D Sandoe iain.sandoe@sandoe-acoustics.co.uk
Sat May 31 22:36:00 GMT 2008


Hello,

on OSX10.5/OSX10.5:
I am trying to run several versions of gcc in parallel (and also not  
to trample on the vendor-supplied one).
So I am building with --enable-version-specific-runtime-libs and  
using fully qualified version numbers (X.Y.Z)

====

When configuring with the following options

VERS=`cat /path/to/gcc-source/gcc/BASE-VER`

....
                         --enable-version-specific-runtime-libs \
                         --program-suffix=-$VERS \

I notice that the "target-apple-darwinZ-gcc-VERS" never appears  
(although the native gcc-VERS does).

this seems to be due to the following lines in gcc/Makefile.in

     install-driver: installdirs xgcc$(exeext)
         -rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
         -$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$ 
(GCC_INSTALL_NAME)$(exeext)
aaa>      -rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$ 
(version)$(exeext)
bbb>       -( cd $(DESTDIR)$(bindir) && \
          $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)- 
gcc-$(version)$(exeext) )

since:
  $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext) == $(DESTDIR)$ 
(bindir)/$(target_noncanonical)-gcc-$(version)$(exeext)

line aaaa> deletes the just-installed tool and then bbb> hard links  
to a non-existent file?

=== If this is a real bug ( and not a misunderstanding of naming  
systems on my part )

.... the following patch fixes it for me:

--- ./gcc/Makefile.in.orig      2008-05-30 19:50:09.000000000 +0100
+++ ./gcc/Makefile.in   2008-05-29 19:50:13.000000000 +0100
@@ -4011,19 +4016,23 @@ install-common: native lang.install-comm
  install-driver: installdirs xgcc$(exeext)
         -rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
         -$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$ 
(GCC_INSTALL_NAME)$(exeext)
-       -rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$ 
(version)$(exeext)
-       -( cd $(DESTDIR)$(bindir) && \
-          $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)- 
gcc-$(version)$(exeext) )
+       -if [ "$(GCC_INSTALL_NAME)" != "$(target_noncanonical)-gcc-$ 
(version)" ] ; then \
+          rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$ 
(version)$(exeext) ; \
+         ( cd $(DESTDIR)$(bindir) && \
+          $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)- 
gcc-$(version)$(exeext) ) ; \
+       fi
         -if [ -f gcc-cross$(exeext) ] ; then \
           if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
             rm -f $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
             $(INSTALL_PROGRAM) gcc-cross$(exeext) $(DESTDIR)$ 
(gcc_tooldir)/bin/gcc$(exeext); \
           else true; fi; \
         else \
-         rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$ 
(exeext); \
-         ( cd $(DESTDIR)$(bindir) && \
+         if [ "$(GCC_INSTALL_NAME)" != "$(target_noncanonical)-gcc-$ 
(version)" ] ; then \
+           rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$ 
(exeext); \
+           ( cd $(DESTDIR)$(bindir) && \
             $(LN) $(GCC_INSTALL_NAME)$(exeext) $ 
(target_noncanonical)-gcc-tmp$(exeext) && \
             mv -f $(target_noncanonical)-gcc-tmp$(exeext) $ 
(GCC_TARGET_INSTALL_NAME)$(exeext) ); \
+         fi ; \
         fi

  # Install the info files.


====
ttfn,
Iain



More information about the Gcc-help mailing list