From 27e0e23ec87cdfed5a2843fa8af35b1e0ac2e615 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Mon, 18 Mar 2019 18:59:31 +0000 Subject: Reseting path in script to make symbolic links to system programs Until recently, there was no problem with the `makelink' script of `dependencies-basic.mk' because it was called on separate recipe lines (and thus separate shells). But recently we added a call to it within a single shell (for GCC on Mac OS systems). So a previous call to it would effect the next call. To fix this, in this commit, we are re-setting PATH to its original value after each call finishes. --- reproduce/src/make/dependencies-basic.mk | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'reproduce/src/make') diff --git a/reproduce/src/make/dependencies-basic.mk b/reproduce/src/make/dependencies-basic.mk index c08e6eb..2e6caf4 100644 --- a/reproduce/src/make/dependencies-basic.mk +++ b/reproduce/src/make/dependencies-basic.mk @@ -202,11 +202,13 @@ $(tarballs): $(tdir)/%: # is very annoying and can cause many complications. We thus remove any # part of PATH of that has `ccache' in it before making symbolic links to # the programs we are not building ourselves. -makelink = export PATH=$$(echo $(syspath)| tr : '\n' |grep -v ccache \ - | paste -s -d:); \ - a=$$(which $(1) 2> /dev/null); \ - if [ -f $(ibdir)/$(1) ]; then rm $(ibdir)/$(1); fi; \ - if [ x$$a != x ]; then ln -s $$a $(ibdir)/$(1); fi +makelink = origpath="$$PATH"; \ + export PATH=$$(echo $(syspath) | tr : '\n' | grep -v ccache \ + | paste -s -d:); \ + a=$$(which $(1) 2> /dev/null); \ + if [ -f $(ibdir)/$(1) ]; then rm $(ibdir)/$(1); fi; \ + if [ x$$a != x ]; then ln -s $$a $(ibdir)/$(1); fi; \ + export PATH="$$origpath" $(ibdir) $(ildir):; mkdir $@ $(ibdir)/low-level-links: | $(ibdir) $(ildir) @@ -748,12 +750,12 @@ $(ibdir)/gcc: $(gcc-prerequisites) \ $(ibdir)/which # On a macOS, we (currently!) won't build GCC because of some - # errors we are still trying to find. So, we'll just make a - # symbolic link to the host's executables. + # errors we are still trying to fix. So, we'll just make a symbolic + # link to the host's executables. if [ "x$(on_mac_os)" = xyes ]; then \ $(call makelink,gfortran); \ - $(call makelink,gcc); \ $(call makelink,g++); \ + $(call makelink,gcc); \ else \ \ rm -f $(ibdir)/gcc* $(ibdir)/g++ $(ibdir)/gfortran $(ibdir)/gcov*;\ -- cgit v1.2.1