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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux