patches/glibc/2.6/220-cross-posix_makefile.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:28:10 2011 +0200 (2011-08-02)
changeset 2590 b64cfb67944e
parent 1136 9df0e560ec14
permissions -rw-r--r--
scripts/functions: svn retrieval first tries the mirror for tarballs

The svn download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via svn.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard svn retrieval will kick in.

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
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 $@