yann@1136: On 20090111.1151+0100, Thomas Jourdan wrote: yann@1136: yann@1136: I'm still working on the solaris port an I have the same issue here. yann@1136: While trying to build the i686-nptl-linux-gnu toolchain under yann@1136: OpenSolaris, the problems appears during the make install rule of the yann@1136: libc function. yann@1136: yann@1136: The problem is that solaris tries to execute ld-linux.so.2, which is an yann@1136: elf 32 bits dyn lib, and it fails with a memory fault, not a "cannot yann@1136: execute binary file". Hence the build stops on this error. yann@1136: yann@1136: And on 20090111.1339+0100, he replied with: yann@1136: yann@1136: After digging a little, the problem comes from the yann@1136: glibc-2.6.1/posix/Makefile. It has been solved starting from glibc 2.7 yann@1136: so I extracted a patch for glibc 2.6.1. yann@1136: yann@1136: --- glibc-2.6.1/posix/Makefile 2007-04-04 01:28:20.000000000 +0200 yann@1136: +++ glibc-2.7/posix/Makefile 2007-09-12 01:57:22.000000000 +0200 yann@1136: @@ -98,7 +98,7 @@ yann@1136: endif yann@1136: others := getconf yann@1136: install-bin := getconf yann@1136: -install-others := $(inst_libexecdir)/getconf yann@1136: +install-others-programs := $(inst_libexecdir)/getconf yann@1136: yann@1136: before-compile := testcases.h ptestcases.h yann@1136: yann@1136: @@ -110,7 +110,7 @@ yann@1136: tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \ yann@1136: tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \ yann@1136: bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \ yann@1136: - tst-vfork3-mem tst-vfork3.mtrace yann@1136: + tst-vfork3-mem tst-vfork3.mtrace getconf.speclist yann@1136: yann@1136: include ../Rules yann@1136: yann@1136: @@ -291,12 +291,20 @@ yann@1136: $(objpfx)bug-glob2-mem: $(objpfx)bug-glob2.out yann@1136: $(common-objpfx)malloc/mtrace $(objpfx)bug-glob2.mtrace > $@ yann@1136: yann@1136: -$(inst_libexecdir)/getconf: $(objpfx)getconf FORCE yann@1136: +$(inst_libexecdir)/getconf: $(inst_bindir)/getconf \ yann@1136: + $(objpfx)getconf.speclist FORCE yann@1136: $(addprefix $(..)./scripts/mkinstalldirs ,\ yann@1136: $(filter-out $(wildcard $@),$@)) yann@1136: - for spec in `LC_ALL=C GETCONF_DIR=/dev/null \ yann@1136: - $(run-program-prefix) $< \ yann@1136: - _POSIX_V6_WIDTH_RESTRICTED_ENVS`; do \ yann@1136: - $(INSTALL_PROGRAM) $< $@/$$spec.new; \ yann@1136: - mv -f $@/$$spec.new $@/$$spec; \ yann@1136: - done yann@1136: + while read spec; do \ yann@1136: + ln -f $< $@/$$spec.new || $(INSTALL_PROGRAM) $< $@/$$spec.new; \ yann@1136: + mv -f $@/$$spec.new $@/$$spec; \ yann@1136: + done < $(objpfx)getconf.speclist yann@1136: + yann@1136: +$(objpfx)getconf.speclist: $(objpfx)getconf yann@1136: +ifeq (no,$(cross-compiling)) yann@1136: + LC_ALL=C GETCONF_DIR=/dev/null \ yann@1136: + $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new yann@1136: +else yann@1136: + > $@.new yann@1136: +endif yann@1136: + mv -f $@.new $@