patches/glibc/2.6.1/220-cross-posix_makefile.patch
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
permissions -rw-r--r--
arch: add softfp support

Some architectures support a mixed hard/soft floating point, where
the compiler emits hardware floating point instructions, but passes
the operands in core (aka integer) registers.

For example, ARM supports this mode (to come in the next changeset).

Add support for softfp cross compilers to the GCC and GLIBC
configuration. Needed for Ubuntu and other distros that are softfp.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
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 $@