patches/binutils/2.20/280-unexport_LD_LIBRARY_PATH.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Jan 12 19:24:03 2010 +0100 (2010-01-12)
changeset 1761 88020b2c3246
permissions -rw-r--r--
scripts/functions: change handling of nochdir

- 'nochdir' must be the first option
- have systematic pushd/popd, even if nochdir
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)@" < $< > $@