jocke@1700: Description: jocke@1700: jocke@1700: This patch is needed in situations where build system is running same version of jocke@1700: binutils that is intended to be built cross-native ( build != host = target) jocke@1700: and has shared libraries enabled. binutils/binutils jocke@1700: Makefile has some tools which are built to run on build system. Toplevel makefile jocke@1700: for binutils passes HOST_EXPORTS to sub-makefiles which also include RPATH_ENVVARS jocke@1700: containing LD_LIBRARY_PATH which is modified so that it also includes host libraries jocke@1700: like opcodes and libbfd which are just built for the host system. jocke@1700: jocke@1700: Now the problem is that same LD_LIBRARY_PATH value gets set in environment even jocke@1700: for the tools that are being built for build system using CC_FOR_BUILD and the tools jocke@1700: like as,ld it invokes from build machine get the LD_LIBRARY_PATH set to search jocke@1700: the newly build host libraries like opcodes and bfd and if host is like a big endian jocke@1700: system say (mips-linux) the build system linker and assembler do not run because jocke@1700: ld.so tries to load these shared libraries instead of the ones from /usr/lib for jocke@1700: the build tools. jocke@1700: jocke@1700: This patch fixes the issue by clearing LD_LIBRARY_PATH for BUILD tools jocke@1700: jocke@1700: This patch would be needed on other versions of binutils. I just cared about 2.20 jocke@1700: May be upstream is also interested in such a patch. jocke@1700: jocke@1700: -Khem jocke@1700: jocke@1700: Index: binutils-2.20/binutils/Makefile.am jocke@1700: =================================================================== jocke@1700: --- binutils-2.20.orig/binutils/Makefile.am 2009-12-30 15:30:35.302438121 -0800 jocke@1700: +++ binutils-2.20/binutils/Makefile.am 2009-12-30 15:33:09.154420373 -0800 jocke@1700: @@ -251,24 +251,24 @@ sysroff.h: sysinfo$(EXEEXT_FOR_BUILD) sy jocke@1700: ./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h jocke@1700: jocke@1700: sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o jocke@1700: - $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o jocke@1700: jocke@1700: syslex.o: syslex.c sysinfo.h config.h jocke@1700: if [ -r syslex.c ]; then \ jocke@1700: - $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \ jocke@1700: else \ jocke@1700: - $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\ jocke@1700: fi jocke@1700: jocke@1700: sysinfo.o: sysinfo.c jocke@1700: if [ -r sysinfo.c ]; then \ jocke@1700: - $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \ jocke@1700: else \ jocke@1700: - $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \ jocke@1700: fi jocke@1700: jocke@1700: bin2c$(EXEEXT_FOR_BUILD): jocke@1700: - $(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c jocke@1700: + 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: jocke@1700: embedspu: embedspu.sh jocke@1700: sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@ jocke@1700: Index: binutils-2.20/binutils/Makefile.in jocke@1700: =================================================================== jocke@1700: --- binutils-2.20.orig/binutils/Makefile.in 2009-12-30 15:30:44.582922535 -0800 jocke@1700: +++ binutils-2.20/binutils/Makefile.in 2009-12-30 15:33:47.322422313 -0800 jocke@1700: @@ -1193,24 +1193,24 @@ sysroff.h: sysinfo$(EXEEXT_FOR_BUILD) sy jocke@1700: ./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h jocke@1700: jocke@1700: sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o jocke@1700: - $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ sysinfo.o syslex.o jocke@1700: jocke@1700: syslex.o: syslex.c sysinfo.h config.h jocke@1700: if [ -r syslex.c ]; then \ jocke@1700: - $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \ jocke@1700: else \ jocke@1700: - $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\ jocke@1700: fi jocke@1700: jocke@1700: sysinfo.o: sysinfo.c jocke@1700: if [ -r sysinfo.c ]; then \ jocke@1700: - $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \ jocke@1700: else \ jocke@1700: - $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \ jocke@1700: + LD_LIBRARY_PATH= $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \ jocke@1700: fi jocke@1700: jocke@1700: bin2c$(EXEEXT_FOR_BUILD): jocke@1700: - $(CC_FOR_BUILD) -o $@ $(AM_CPPFLAGS) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(srcdir)/bin2c.c $(srcdir)/version.c jocke@1700: + 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: jocke@1700: embedspu: embedspu.sh jocke@1700: sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@