patches/binutils/2.20/280-unexport_LD_LIBRARY_PATH.patch
author Arnaud Lacombe <lacombar@gmail.com>
Tue Aug 03 06:17:51 2010 +0200 (2010-08-03)
changeset 2064 f5ebe8c429dc
permissions -rw-r--r--
libc/uClibc: add uClibc 0.9.30.3

This version has been released a couple of month ago, but it never reached
crosstool-ng tree. This may be linked to the fact that the current 0.9.30.2,
once patched, has nothing much different from 0.9.30.3, released.

I'm not including any patch with this upgrade, on purpose.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
jocke@1700
     1
Description:
jocke@1700
     2
jocke@1700
     3
This patch is needed in situations where build system is running same version of
jocke@1700
     4
binutils that is intended to be built  cross-native ( build != host = target)
jocke@1700
     5
 and has shared libraries enabled. binutils/binutils
jocke@1700
     6
Makefile has some tools which are built to run on build system. Toplevel makefile
jocke@1700
     7
for binutils passes HOST_EXPORTS to sub-makefiles which also include RPATH_ENVVARS
jocke@1700
     8
containing LD_LIBRARY_PATH which is modified so that it also includes host libraries
jocke@1700
     9
like opcodes and libbfd which are just built for the host system. 
jocke@1700
    10
jocke@1700
    11
Now the problem is that same LD_LIBRARY_PATH value gets set in environment even
jocke@1700
    12
for the tools that are being built for build system using CC_FOR_BUILD and the tools
jocke@1700
    13
like as,ld it invokes from build machine get the LD_LIBRARY_PATH set to search
jocke@1700
    14
the newly build host libraries like opcodes and bfd and if host is like a big endian
jocke@1700
    15
system say (mips-linux) the build system linker and assembler do not run because
jocke@1700
    16
ld.so tries to load these shared libraries instead of the ones from /usr/lib for 
jocke@1700
    17
the build tools. 
jocke@1700
    18
jocke@1700
    19
This patch fixes the issue by clearing LD_LIBRARY_PATH for BUILD tools
jocke@1700
    20
jocke@1700
    21
This patch would be needed on other versions of binutils. I just cared about 2.20
jocke@1700
    22
May be upstream is also interested in such a patch.
jocke@1700
    23
jocke@1700
    24
-Khem
jocke@1700
    25
jocke@1700
    26
Index: binutils-2.20/binutils/Makefile.am
jocke@1700
    27
===================================================================
jocke@1700
    28
--- binutils-2.20.orig/binutils/Makefile.am	2009-12-30 15:30:35.302438121 -0800
jocke@1700
    29
+++ binutils-2.20/binutils/Makefile.am	2009-12-30 15:33:09.154420373 -0800
jocke@1700
    30
@@ -251,24 +251,24 @@ sysroff.h: sysinfo$(EXEEXT_FOR_BUILD) sy
jocke@1700
    31
 	./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h
jocke@1700
    32
 
jocke@1700
    33
 sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
jocke@1700
    34
-	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    35
+	LD_LIBRARY_PATH= $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    36
 
jocke@1700
    37
 syslex.o: syslex.c sysinfo.h config.h
jocke@1700
    38
 	if [ -r syslex.c ]; then \
jocke@1700
    39
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \
jocke@1700
    40
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \
jocke@1700
    41
 	else \
jocke@1700
    42
-	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\
jocke@1700
    43
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\
jocke@1700
    44
 	fi
jocke@1700
    45
 
jocke@1700
    46
 sysinfo.o: sysinfo.c
jocke@1700
    47
 	if [ -r sysinfo.c ]; then \
jocke@1700
    48
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \
jocke@1700
    49
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \
jocke@1700
    50
 	else \
jocke@1700
    51
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \
jocke@1700
    52
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \
jocke@1700
    53
 	fi
jocke@1700
    54
 
jocke@1700
    55
 bin2c$(EXEEXT_FOR_BUILD):
jocke@1700
    56
-	$(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
jocke@1700
    57
+	LD_LIBRARY_PATH= $(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
jocke@1700
    58
 
jocke@1700
    59
 embedspu: embedspu.sh
jocke@1700
    60
 	sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@
jocke@1700
    61
Index: binutils-2.20/binutils/Makefile.in
jocke@1700
    62
===================================================================
jocke@1700
    63
--- binutils-2.20.orig/binutils/Makefile.in	2009-12-30 15:30:44.582922535 -0800
jocke@1700
    64
+++ binutils-2.20/binutils/Makefile.in	2009-12-30 15:33:47.322422313 -0800
jocke@1700
    65
@@ -1193,24 +1193,24 @@ sysroff.h: sysinfo$(EXEEXT_FOR_BUILD) sy
jocke@1700
    66
 	./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h
jocke@1700
    67
 
jocke@1700
    68
 sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
jocke@1700
    69
-	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    70
+	LD_LIBRARY_PATH= $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    71
 
jocke@1700
    72
 syslex.o: syslex.c sysinfo.h config.h
jocke@1700
    73
 	if [ -r syslex.c ]; then \
jocke@1700
    74
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \
jocke@1700
    75
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \
jocke@1700
    76
 	else \
jocke@1700
    77
-	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\
jocke@1700
    78
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\
jocke@1700
    79
 	fi
jocke@1700
    80
 
jocke@1700
    81
 sysinfo.o: sysinfo.c
jocke@1700
    82
 	if [ -r sysinfo.c ]; then \
jocke@1700
    83
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \
jocke@1700
    84
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \
jocke@1700
    85
 	else \
jocke@1700
    86
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \
jocke@1700
    87
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \
jocke@1700
    88
 	fi
jocke@1700
    89
 
jocke@1700
    90
 bin2c$(EXEEXT_FOR_BUILD):
jocke@1700
    91
-	$(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
jocke@1700
    92
+	LD_LIBRARY_PATH= $(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
jocke@1700
    93
 
jocke@1700
    94
 embedspu: embedspu.sh
jocke@1700
    95
 	sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@