patches/glibc/2.6/220-cross-posix_makefile.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 18 23:00:46 2011 +0200 (2011-05-18)
changeset 2467 200836977ce6
parent 1136 9df0e560ec14
permissions -rw-r--r--
config: rename variables that are arrays

Make it explicit that a variable is an array bu the name of the variable.
It will be used later when .config gets munged to allow both multiple
arguments and arguments with spaces at the same time to be passed from the
configuration down to the build scripts.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1136
     1
On 20090111.1151+0100, Thomas Jourdan <tjourdan@neuf.fr> wrote:
yann@1136
     2
yann@1136
     3
  I'm still working on the solaris port an I have the same issue here.
yann@1136
     4
  While trying to build the i686-nptl-linux-gnu toolchain under
yann@1136
     5
  OpenSolaris, the problems appears during the make install rule of the
yann@1136
     6
  libc function.
yann@1136
     7
yann@1136
     8
  The problem is that solaris tries to execute ld-linux.so.2, which is an
yann@1136
     9
  elf 32 bits dyn lib, and it fails with a memory fault, not a "cannot
yann@1136
    10
  execute binary file". Hence the build stops on this error.
yann@1136
    11
yann@1136
    12
And on 20090111.1339+0100, he replied with:
yann@1136
    13
yann@1136
    14
  After digging a little, the problem comes from the
yann@1136
    15
  glibc-2.6.1/posix/Makefile. It has been solved starting from glibc 2.7
yann@1136
    16
  so I extracted a patch for glibc 2.6.1.
yann@1136
    17
yann@1136
    18
--- glibc-2.6.1/posix/Makefile	2007-04-04 01:28:20.000000000 +0200
yann@1136
    19
+++ glibc-2.7/posix/Makefile	2007-09-12 01:57:22.000000000 +0200
yann@1136
    20
@@ -98,7 +98,7 @@
yann@1136
    21
 endif
yann@1136
    22
 others		:= getconf
yann@1136
    23
 install-bin	:= getconf
yann@1136
    24
-install-others	:= $(inst_libexecdir)/getconf
yann@1136
    25
+install-others-programs	:= $(inst_libexecdir)/getconf
yann@1136
    26
 
yann@1136
    27
 before-compile	:= testcases.h ptestcases.h
yann@1136
    28
 
yann@1136
    29
@@ -110,7 +110,7 @@
yann@1136
    30
 	     tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \
yann@1136
    31
 	     tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \
yann@1136
    32
 	     bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \
yann@1136
    33
-	     tst-vfork3-mem tst-vfork3.mtrace
yann@1136
    34
+	     tst-vfork3-mem tst-vfork3.mtrace getconf.speclist
yann@1136
    35
 
yann@1136
    36
 include ../Rules
yann@1136
    37
 
yann@1136
    38
@@ -291,12 +291,20 @@
yann@1136
    39
 $(objpfx)bug-glob2-mem: $(objpfx)bug-glob2.out
yann@1136
    40
 	$(common-objpfx)malloc/mtrace $(objpfx)bug-glob2.mtrace > $@
yann@1136
    41
 
yann@1136
    42
-$(inst_libexecdir)/getconf: $(objpfx)getconf FORCE
yann@1136
    43
+$(inst_libexecdir)/getconf: $(inst_bindir)/getconf \
yann@1136
    44
+			    $(objpfx)getconf.speclist FORCE
yann@1136
    45
 	$(addprefix $(..)./scripts/mkinstalldirs ,\
yann@1136
    46
 		    $(filter-out $(wildcard $@),$@))
yann@1136
    47
-	for spec in `LC_ALL=C GETCONF_DIR=/dev/null \
yann@1136
    48
-		     $(run-program-prefix) $< \
yann@1136
    49
-		     _POSIX_V6_WIDTH_RESTRICTED_ENVS`; do \
yann@1136
    50
-		$(INSTALL_PROGRAM) $< $@/$$spec.new; \
yann@1136
    51
-		mv -f $@/$$spec.new $@/$$spec; \
yann@1136
    52
-	done
yann@1136
    53
+	while read spec; do \
yann@1136
    54
+	  ln -f $< $@/$$spec.new || $(INSTALL_PROGRAM) $< $@/$$spec.new; \
yann@1136
    55
+	  mv -f $@/$$spec.new $@/$$spec; \
yann@1136
    56
+	done < $(objpfx)getconf.speclist
yann@1136
    57
+
yann@1136
    58
+$(objpfx)getconf.speclist: $(objpfx)getconf
yann@1136
    59
+ifeq (no,$(cross-compiling))
yann@1136
    60
+	LC_ALL=C GETCONF_DIR=/dev/null \
yann@1136
    61
+	$(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new
yann@1136
    62
+else
yann@1136
    63
+	> $@.new
yann@1136
    64
+endif
yann@1136
    65
+	mv -f $@.new $@