Make binutils not leak libraries
This commit is contained in:
parent
772128bd40
commit
541ecb8d06
@ -41,9 +41,6 @@ MULTILIB:=--enable-multilib
|
||||
# here at the top... Easier to find things here anyways...
|
||||
#
|
||||
#############################################################
|
||||
#BINUTILS_SITE:=ftp://ftp.gnu.org/gnu/binutils
|
||||
#BINUTILS_SOURCE:=binutils-2.13.2.1.tar.bz2
|
||||
#BINUTILS_DIR:=$(TOOL_BUILD_DIR)/binutils-2.13.2.1
|
||||
BINUTILS_SITE:=http://ftp.kernel.org/pub/linux/devel/binutils
|
||||
BINUTILS_SOURCE:=binutils-2.14.90.0.5.tar.bz2
|
||||
BINUTILS_DIR:=$(TOOL_BUILD_DIR)/binutils-2.14.90.0.5
|
||||
@ -125,23 +122,11 @@ $(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked
|
||||
# Apply any files named binutils-*.patch from the source directory to binutils
|
||||
$(SOURCE_DIR)/patch-kernel.sh $(BINUTILS_DIR) $(SOURCE_DIR) binutils-*.patch
|
||||
#
|
||||
# Enable combreloc, since it is such a nice thing to have...
|
||||
# Hack binutils to use the correct default shared lib loader
|
||||
#
|
||||
-perl -i -p -e "s,link_info.combreloc = false,link_info.combreloc = true,g;" \
|
||||
$(BINUTILS_DIR)/ld/ldmain.c
|
||||
#
|
||||
# Hack binutils to use the correct shared lib loader
|
||||
#
|
||||
(cd $(BINUTILS_DIR); perl -i -p -e "s,#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\"\
|
||||
,#define ELF_DYNAMIC_INTERPRETER \"/lib/ld-uClibc.so.0\",;" \
|
||||
`grep -lr "ELF_DYNAMIC_INTERPRETER" $(BINUTILS_DIR)`);
|
||||
#
|
||||
# Hack binutils to prevent it from searching the host system
|
||||
# for libraries. We only want libraries for the target system.
|
||||
#
|
||||
(cd $(BINUTILS_DIR); perl -i -p -e "s,^NATIVE_LIB_DIRS.*,\
|
||||
NATIVE_LIB_DIRS='$(STAGING_DIR)/usr/lib $(STAGING_DIR)/lib',;" \
|
||||
$(BINUTILS_DIR)/ld/configure.host);
|
||||
(cd $(BINUTILS_DIR); perl -i -p -e "s,#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\",\
|
||||
#define ELF_DYNAMIC_INTERPRETER \"/lib/ld-uClibc.so.0\",;" \
|
||||
`grep -lr ELF_DYNAMIC_INTERPRETER *`);
|
||||
touch $(BINUTILS_DIR)/.patched
|
||||
|
||||
$(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched
|
||||
@ -163,6 +148,8 @@ $(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched
|
||||
--mandir=$(STAGING_DIR)/man \
|
||||
--infodir=$(STAGING_DIR)/info \
|
||||
--enable-targets=$(GNU_TARGET_NAME) \
|
||||
--with-lib-path="/usr/lib:/lib" \
|
||||
--with-sysroot=$(STAGING_DIR) \
|
||||
$(MULTILIB) \
|
||||
--program-prefix=$(ARCH)-uclibc-);
|
||||
touch $(BINUTILS_DIR1)/.configured
|
||||
|
22
sources/binutils-001_ld_makefile.patch
Normal file
22
sources/binutils-001_ld_makefile.patch
Normal file
@ -0,0 +1,22 @@
|
||||
--- binutils-2.11.90.0.19.orig/ld/Makefile.am
|
||||
+++ binutils-2.11.90.0.19/ld/Makefile.am
|
||||
@@ -19,7 +19,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
--- binutils-2.11.90.0.19.orig/ld/Makefile.in
|
||||
+++ binutils-2.11.90.0.19/ld/Makefile.in
|
||||
@@ -123,7 +123,7 @@
|
||||
# We put the scripts in the directory $(scriptdir)/ldscripts.
|
||||
# We can't put the scripts in $(datadir) because the SEARCH_DIR
|
||||
# directives need to be different for native and cross linkers.
|
||||
-scriptdir = $(tooldir)/lib
|
||||
+scriptdir = $(libdir)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
17
sources/binutils-006_better_file_error.patch
Normal file
17
sources/binutils-006_better_file_error.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff -urN binutils-2.11.92.0.5/bfd/opncls.c binutils-2.11.92.0.5.new/bfd/opncls.c
|
||||
--- binutils-2.11.92.0.5/bfd/opncls.c Mon Oct 1 18:25:21 2001
|
||||
+++ binutils-2.11.92.0.5.new/bfd/opncls.c Sat Oct 13 11:26:59 2001
|
||||
@@ -127,6 +127,13 @@
|
||||
{
|
||||
bfd *nbfd;
|
||||
const bfd_target *target_vec;
|
||||
+ struct stat s;
|
||||
+
|
||||
+ if (stat (filename, &s) == 0)
|
||||
+ if (S_ISDIR(s.st_mode)) {
|
||||
+ bfd_set_error (bfd_error_file_not_recognized);
|
||||
+ return NULL;
|
||||
+ }
|
||||
|
||||
nbfd = _bfd_new_bfd ();
|
||||
if (nbfd == NULL)
|
12
sources/binutils-009_signed_char_fix.patch
Normal file
12
sources/binutils-009_signed_char_fix.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -urN binutils-2.11.92.0.12.3/opcodes/i386-dis.c binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c
|
||||
--- binutils-2.11.92.0.12.3/opcodes/i386-dis.c Fri Nov 16 17:05:55 2001
|
||||
+++ binutils-2.11.92.0.12.3.new/opcodes/i386-dis.c Mon Dec 31 15:55:04 2001
|
||||
@@ -1830,7 +1830,7 @@
|
||||
* The function returns the length of this instruction in bytes.
|
||||
*/
|
||||
|
||||
-static char intel_syntax;
|
||||
+static signed char intel_syntax;
|
||||
static char open_char;
|
||||
static char close_char;
|
||||
static char separator_char;
|
21
sources/binutils-012_check_ldrunpath_length.patch
Normal file
21
sources/binutils-012_check_ldrunpath_length.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff -urN binutils-2.12.90.0.12/ld/emultempl/elf32.em binutils-2.12.90.0.12.new/ld/emultempl/elf32.em
|
||||
--- binutils-2.12.90.0.12/ld/emultempl/elf32.em Wed Jun 19 00:41:59 2002
|
||||
+++ binutils-2.12.90.0.12.new/ld/emultempl/elf32.em Wed Jun 26 10:00:26 2002
|
||||
@@ -672,6 +672,8 @@
|
||||
&& command_line.rpath == NULL)
|
||||
{
|
||||
lib_path = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((lib_path) && (strlen (lib_path) == 0))
|
||||
+ lib_path = NULL;
|
||||
if (gld${EMULATION_NAME}_search_needed (lib_path, l->name,
|
||||
force))
|
||||
break;
|
||||
@@ -867,6 +869,8 @@
|
||||
rpath = command_line.rpath;
|
||||
if (rpath == NULL)
|
||||
rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ if ((rpath) && (strlen (rpath) == 0))
|
||||
+ rpath = NULL;
|
||||
if (! (bfd_elf${ELFSIZE}_size_dynamic_sections
|
||||
(output_bfd, command_line.soname, rpath,
|
||||
command_line.filter_shlib,
|
73
sources/binutils-906-hjl_libtool_dso.patch
Normal file
73
sources/binutils-906-hjl_libtool_dso.patch
Normal file
@ -0,0 +1,73 @@
|
||||
http://sources.redhat.com/ml/binutils/2003-05/msg00739.html
|
||||
|
||||
2003-05-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ltmain.sh: Make symlink for shared library if needed.
|
||||
|
||||
opcodes/
|
||||
|
||||
2003-05-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* Makefile.am (libopcodes_la_LIBADD): Use "-L../bfd -lbfd"
|
||||
instead of "../bfd/libbfd.la".
|
||||
* Makefile.in: Regenerated.
|
||||
|
||||
--- binutils/ltmain.sh.dso 2002-03-22 00:16:20.000000000 -0800
|
||||
+++ binutils/ltmain.sh 2003-05-23 22:51:20.000000000 -0700
|
||||
@@ -4413,6 +4413,10 @@ relink_command=\"$relink_command\""
|
||||
# LD_LIBRARY_PATH before the program is installed.
|
||||
$show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
|
||||
$run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
|
||||
+ if test -n "$linkname"; then
|
||||
+ $show "(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)"
|
||||
+ $run eval '(cd $output_objdir && $rm ../$linkname && $LN_S $output_objdir/$linkname ../$linkname)' || exit $?
|
||||
+ fi
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
--- binutils/opcodes/Makefile.am.dso 2003-05-19 08:23:00.000000000 -0700
|
||||
+++ binutils/opcodes/Makefile.am 2003-05-23 22:46:29.000000000 -0700
|
||||
@@ -283,7 +283,7 @@ disassemble.lo: disassemble.c $(INCDIR)/
|
||||
|
||||
libopcodes_la_SOURCES = dis-buf.c disassemble.c
|
||||
libopcodes_la_DEPENDENCIES = $(OFILES) ../bfd/libbfd.la
|
||||
-libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ ../bfd/libbfd.la
|
||||
+libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ -L../bfd -lbfd
|
||||
libopcodes_la_LDFLAGS = -release $(VERSION) @WIN32LDFLAGS@
|
||||
|
||||
# libtool will build .libs/libopcodes.a. We create libopcodes.a in
|
||||
--- binutils/opcodes/Makefile.in.dso 2003-05-20 08:37:53.000000000 -0700
|
||||
+++ binutils/opcodes/Makefile.in 2003-05-23 22:46:31.000000000 -0700
|
||||
@@ -1,4 +1,4 @@
|
||||
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
@@ -393,7 +393,7 @@ INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir)
|
||||
|
||||
libopcodes_la_SOURCES = dis-buf.c disassemble.c
|
||||
libopcodes_la_DEPENDENCIES = $(OFILES) ../bfd/libbfd.la
|
||||
-libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ ../bfd/libbfd.la
|
||||
+libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ -L../bfd -lbfd
|
||||
libopcodes_la_LDFLAGS = -release $(VERSION) @WIN32LDFLAGS@
|
||||
|
||||
# libtool will build .libs/libopcodes.a. We create libopcodes.a in
|
||||
@@ -592,7 +592,7 @@ libopcodes.la: $(libopcodes_la_OBJECTS)
|
||||
all-recursive install-data-recursive install-exec-recursive \
|
||||
installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
|
||||
check-recursive installcheck-recursive info-recursive dvi-recursive:
|
||||
- @set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
+ @set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
@@ -612,7 +612,7 @@ check-recursive installcheck-recursive i
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
- @set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
+ @set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
dot_seen=no; \
|
||||
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
rev="$$subdir $$rev"; \
|
Loading…
Reference in New Issue
Block a user