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)@" < $< > $@
|