patches/glibc/2.6/220-cross-posix_makefile.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 17:54:21 2011 +0200 (2011-07-17)
changeset 2888 dd71df95903a
parent 1136 9df0e560ec14
permissions -rw-r--r--
cc/gcc: pass the companion libs prefix to cc_core

In case of canadian-cross, the companion libraries are not the same for
the core cc (they run on 'build') as they are for the final cc (they run
on 'host').

Prepare for this differentiation (coming later), while retaining the
current behavior (to use the same compblibs).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 On 20090111.1151+0100, Thomas Jourdan <tjourdan@neuf.fr> wrote:
     2 
     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
     6   libc function.
     7 
     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.
    11 
    12 And on 20090111.1339+0100, he replied with:
    13 
    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.
    17 
    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
    20 @@ -98,7 +98,7 @@
    21  endif
    22  others		:= getconf
    23  install-bin	:= getconf
    24 -install-others	:= $(inst_libexecdir)/getconf
    25 +install-others-programs	:= $(inst_libexecdir)/getconf
    26  
    27  before-compile	:= testcases.h ptestcases.h
    28  
    29 @@ -110,7 +110,7 @@
    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
    35  
    36  include ../Rules
    37  
    38 @@ -291,12 +291,20 @@
    39  $(objpfx)bug-glob2-mem: $(objpfx)bug-glob2.out
    40  	$(common-objpfx)malloc/mtrace $(objpfx)bug-glob2.mtrace > $@
    41  
    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; \
    52 -	done
    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
    57 +
    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
    62 +else
    63 +	> $@.new
    64 +endif
    65 +	mv -f $@.new $@