patches/binutils/2.20.1a/280-unexport_LD_LIBRARY_PATH.patch
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
parent 2088 4f21ba5f8e91
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.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
===================================================================
yann@2088
    28
yann@2088
    29
diff -durN binutils-2.20.1.orig/binutils/Makefile.am binutils-2.20.1/binutils/Makefile.am
yann@2088
    30
--- binutils-2.20.1.orig/binutils/Makefile.am	2010-01-14 11:48:22.000000000 +0100
yann@2088
    31
+++ binutils-2.20.1/binutils/Makefile.am	2010-08-17 19:32:24.000000000 +0200
yann@2088
    32
@@ -251,24 +251,24 @@
jocke@1700
    33
 	./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h
jocke@1700
    34
 
jocke@1700
    35
 sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
jocke@1700
    36
-	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    37
+	LD_LIBRARY_PATH= $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    38
 
jocke@1700
    39
 syslex.o: syslex.c sysinfo.h config.h
jocke@1700
    40
 	if [ -r syslex.c ]; then \
yann@2088
    41
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
yann@2088
    42
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
jocke@1700
    43
 	else \
yann@2088
    44
-	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
yann@2088
    45
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
jocke@1700
    46
 	fi
jocke@1700
    47
 
jocke@1700
    48
 sysinfo.o: sysinfo.c
jocke@1700
    49
 	if [ -r sysinfo.c ]; then \
yann@2088
    50
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
yann@2088
    51
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
jocke@1700
    52
 	else \
yann@2088
    53
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
yann@2088
    54
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
jocke@1700
    55
 	fi
jocke@1700
    56
 
jocke@1700
    57
 bin2c$(EXEEXT_FOR_BUILD):
jocke@1700
    58
-	$(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
jocke@1700
    59
+	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
    60
 
jocke@1700
    61
 embedspu: embedspu.sh
jocke@1700
    62
 	sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@
yann@2088
    63
diff -durN binutils-2.20.1.orig/binutils/Makefile.in binutils-2.20.1/binutils/Makefile.in
yann@2088
    64
--- binutils-2.20.1.orig/binutils/Makefile.in	2010-03-03 14:59:46.000000000 +0100
yann@2088
    65
+++ binutils-2.20.1/binutils/Makefile.in	2010-08-17 19:32:24.000000000 +0200
yann@2088
    66
@@ -1193,24 +1193,24 @@
jocke@1700
    67
 	./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h
jocke@1700
    68
 
jocke@1700
    69
 sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
jocke@1700
    70
-	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    71
+	LD_LIBRARY_PATH= $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o
jocke@1700
    72
 
jocke@1700
    73
 syslex.o: syslex.c sysinfo.h config.h
jocke@1700
    74
 	if [ -r syslex.c ]; then \
yann@2088
    75
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
yann@2088
    76
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
jocke@1700
    77
 	else \
yann@2088
    78
-	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
yann@2088
    79
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
jocke@1700
    80
 	fi
jocke@1700
    81
 
jocke@1700
    82
 sysinfo.o: sysinfo.c
jocke@1700
    83
 	if [ -r sysinfo.c ]; then \
yann@2088
    84
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
yann@2088
    85
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
jocke@1700
    86
 	else \
yann@2088
    87
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
yann@2088
    88
+	  LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
jocke@1700
    89
 	fi
jocke@1700
    90
 
jocke@1700
    91
 bin2c$(EXEEXT_FOR_BUILD):
jocke@1700
    92
-	$(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c
jocke@1700
    93
+	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
    94
 
jocke@1700
    95
 embedspu: embedspu.sh
jocke@1700
    96
 	sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@