scripts: remove . from $PATH
Add CT_SanitizePath function which removes entries referring to ., /tmp
and non-existing directories from $PATH, and call it early in the
build script.
If . is in PATH, gcc-4.4.4 build breaks:
[ALL ] checking what assembler to use...
/tmp/build/targets/arm-unknown-linux-uclibcgnueabi/build/gcc-core-static/arm-unknown-linux-uclibcgnueabi/bin/as
...
[ALL ] config.status: creating as
i.e. "as" is supposed to be the arm-unknown-linux-uclibcgnueabi cross assembler,
but config.status creates a local "as" script which is calling the
host assembler.
Signed-off-by: Johannes Stezenbach <js@sig21.net>
[Yann E. MORIN: style fixes + explanations]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
(transplanted from 20dd8cef1c8adff0aa3e78ae6d7acfbc45ed5a83)
1 On 20090111.1151+0100, Thomas Jourdan <tjourdan@neuf.fr> wrote:
3 I'm still working on the solaris port an I have the same issue here.
4 While trying to build the i686-nptl-linux-gnu toolchain under
5 OpenSolaris, the problems appears during the make install rule of the
8 The problem is that solaris tries to execute ld-linux.so.2, which is an
9 elf 32 bits dyn lib, and it fails with a memory fault, not a "cannot
10 execute binary file". Hence the build stops on this error.
12 And on 20090111.1339+0100, he replied with:
14 After digging a little, the problem comes from the
15 glibc-2.6.1/posix/Makefile. It has been solved starting from glibc 2.7
16 so I extracted a patch for glibc 2.6.1.
18 --- glibc-2.6.1/posix/Makefile 2007-04-04 01:28:20.000000000 +0200
19 +++ glibc-2.7/posix/Makefile 2007-09-12 01:57:22.000000000 +0200
23 install-bin := getconf
24 -install-others := $(inst_libexecdir)/getconf
25 +install-others-programs := $(inst_libexecdir)/getconf
27 before-compile := testcases.h ptestcases.h
30 tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \
31 tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \
32 bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \
33 - tst-vfork3-mem tst-vfork3.mtrace
34 + tst-vfork3-mem tst-vfork3.mtrace getconf.speclist
39 $(objpfx)bug-glob2-mem: $(objpfx)bug-glob2.out
40 $(common-objpfx)malloc/mtrace $(objpfx)bug-glob2.mtrace > $@
42 -$(inst_libexecdir)/getconf: $(objpfx)getconf FORCE
43 +$(inst_libexecdir)/getconf: $(inst_bindir)/getconf \
44 + $(objpfx)getconf.speclist FORCE
45 $(addprefix $(..)./scripts/mkinstalldirs ,\
46 $(filter-out $(wildcard $@),$@))
47 - for spec in `LC_ALL=C GETCONF_DIR=/dev/null \
48 - $(run-program-prefix) $< \
49 - _POSIX_V6_WIDTH_RESTRICTED_ENVS`; do \
50 - $(INSTALL_PROGRAM) $< $@/$$spec.new; \
51 - mv -f $@/$$spec.new $@/$$spec; \
53 + while read spec; do \
54 + ln -f $< $@/$$spec.new || $(INSTALL_PROGRAM) $< $@/$$spec.new; \
55 + mv -f $@/$$spec.new $@/$$spec; \
56 + done < $(objpfx)getconf.speclist
58 +$(objpfx)getconf.speclist: $(objpfx)getconf
59 +ifeq (no,$(cross-compiling))
60 + LC_ALL=C GETCONF_DIR=/dev/null \
61 + $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new