patches/glibc/2.1.3/glibc-2.1.3-override.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jul 28 21:34:41 2007 +0000 (2007-07-28)
changeset 301 2be7232a73ac
permissions -rw-r--r--
Bump version to 0.2.2.
yann@1
     1
The error
yann@1
     2
yann@1
     3
make[2]: *** [.../gcc-3.3.3-glibc-2.1.3/i686-unknown-linux-gnu/share/zoneinfo/Africa/Algiers] Segmentation fault
yann@1
     4
make[2]: Leaving directory `.../gcc-3.3.3-glibc-2.1.3/glibc-2.1.3/timezone'
yann@1
     5
make[1]: *** [timezone/subdir_install] Error 2
yann@1
     6
yann@1
     7
is caused by glibc trying to run something it just compiled.
yann@1
     8
A crude workaround for this was posted at
yann@1
     9
http://lists.scratchbox.org/pipermail/scratchbox-users/2004-February/000018.html
yann@1
    10
but the following patch lets you optionally override these programs at
yann@1
    11
make time by setting environment variables 
yann@1
    12
  localedef_FOR_BUILD rpcgen_FOR_BUILD zic_FOR_BUILD
yann@1
    13
and maybe a few others to point to versions of those programs
yann@1
    14
that can run on the build machine.
yann@1
    15
Thanks to http://groups.google.com/groups?selm=9012160052.AA23106%40kaos.ksr.com
yann@1
    16
for pointing out the idiom for inline $(ifdef ...) in GNU Make.
yann@1
    17
yann@1
    18
Dan Kegel 2004-05-17
yann@1
    19
yann@1
    20
--- glibc-2.1.3/Makeconfig.old	1999-11-29 11:19:20.000000000 -0800
yann@1
    21
+++ glibc-2.1.3/Makeconfig	2004-05-17 15:57:53.000000000 -0700
yann@1
    22
@@ -470,20 +470,24 @@
yann@1
    23
 # The program binary is assumed to be $(word 2,$^).
yann@1
    24
 built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
yann@1
    25
 ifneq (yes,$(build-shared))
yann@1
    26
-built-program-cmd = $(built-program-file)
yann@1
    27
+built-program-real = $(built-program-file)
yann@1
    28
 else
yann@1
    29
 comma = ,
yann@1
    30
 sysdep-library-path = \
yann@1
    31
 $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
yann@1
    32
 				       $(filter -Wl$(comma)-rpath-link=%,\
yann@1
    33
 						$(sysdep-LDFLAGS)))))
yann@1
    34
-define built-program-cmd
yann@1
    35
+define built-program-real
yann@1
    36
 $(elf-objpfx)$(rtld-installed-name) \
yann@1
    37
 	--library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
yann@1
    38
 	$(built-program-file)
yann@1
    39
 endef
yann@1
    40
 endif
yann@1
    41
 
yann@1
    42
+# If user set foo_FOR_BUILD, use that instead of actually running the program we just linked.
yann@1
    43
+built-program-override-name = $(notdir $(word 2,$^))_FOR_BUILD
yann@1
    44
+built-program-cmd = $(if $(findstring undefined,$(origin $(built-program-override-name))),$(built-program-real),$($(built-program-override-name)))
yann@1
    45
+
yann@1
    46
 ifndef LD
yann@1
    47
 LD := ld -X
yann@1
    48
 endif