patches/binutils/2.20.1a/280-unexport_LD_LIBRARY_PATH.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 11 18:18:53 2011 +0200 (2011-09-11)
changeset 2664 346263a07115
parent 2088 patches/binutils/2.20.1/280-unexport_LD_LIBRARY_PATH.patch@4f21ba5f8e91
permissions -rw-r--r--
binutils/binutils: fixup version strings

Recently, all binutils versions have been renamed after a GPL compliance
issue was found and fixed in binutils;
http://sourceware.org/ml/binutils/2011-08/msg00198.html

Although legacy symlinks have been put in place, we should now use
the new, real version strings.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
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)@" < $< > $@