- Rebase on 2.21.51.0.5 tarball.

- Delete redundant patches.
- Fix gold+ld configure command line option.
This commit is contained in:
nick clifton 2011-01-05 10:55:17 +00:00
parent 531a74d49f
commit 19db05c0fb
12 changed files with 18 additions and 9666 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@ i386
binutils-2.20.51.0.10.tar.bz2
/binutils-2.20.51.0.11.tar.bz2
/binutils-2.20.51.0.12.tar.bz2
/binutils-2.21.51.0.5.tar.bz2

View File

@ -1,19 +0,0 @@
*** ../binutils-2.20.51.0.10.orig/ld/ldlex.l 2010-08-20 15:28:06.000000000 +0100
--- ld/ldlex.l 2010-08-20 15:35:27.000000000 +0100
*************** CMDFILENAMECHAR1 [_a-zA-Z0-9\/\.\\_\+\$
*** 99,105 ****
FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~]
SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9]
FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
! WILDCHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*]
WHITE [ \t\n\r]+
NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~]
--- 99,105 ----
FILENAMECHAR1 [_a-zA-Z\/\.\\\$\_\~]
SYMBOLCHARN [_a-zA-Z\/\.\\\$\_\~0-9]
FILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
! WILDCHAR [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*\^\!]
WHITE [ \t\n\r]+
NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~]

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +0,0 @@
*** ../binutils-2.20.51.0.11.orig/bfd/compress.c 2010-09-10 10:00:37.000000000 +0100
--- bfd/compress.c 2010-09-10 10:02:20.000000000 +0100
*************** bfd_compress_section_contents (bfd *abfd
*** 94,100 ****
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
#else
! bfd_size_type compressed_size;
bfd_byte *compressed_buffer;
compressed_size = compressBound (uncompressed_size) + 12;
--- 94,100 ----
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
#else
! uLongf compressed_size;
bfd_byte *compressed_buffer;
compressed_size = compressBound (uncompressed_size) + 12;

View File

@ -1,67 +0,0 @@
diff -rcp ../binutils-2.20.51.0.7.original/bfd/elfcode.h ./bfd/elfcode.h
*** ../binutils-2.20.51.0.7.original/bfd/elfcode.h 2010-04-08 15:29:32.000000000 +0100
--- ./bfd/elfcode.h 2010-04-08 15:29:39.000000000 +0100
*************** elf_checksum_contents (bfd *abfd,
*** 1188,1193 ****
--- 1188,1211 ----
if (i_shdr.contents)
(*process) (i_shdr.contents, i_shdr.sh_size, arg);
+ else
+ {
+ asection *sec;
+
+ sec = bfd_section_from_elf_index (abfd, count);
+ if (sec != NULL)
+ {
+ if (sec->contents == NULL)
+ {
+ /* Force rereading from file. */
+ sec->flags &= ~SEC_IN_MEMORY;
+ if (! bfd_malloc_and_get_section (abfd, sec, & sec->contents))
+ continue;
+ }
+ if (sec->contents != NULL)
+ (*process) (sec->contents, i_shdr.sh_size, arg);
+ }
+ }
}
return TRUE;
diff -rcp ../binutils-2.20.51.0.7.original/bfd/section.c.orig ./bfd/section.c.orig
*** ../binutils-2.20.51.0.11.orig/bfd/compress.c 2010-09-10 08:44:47.000000000 +0100
--- bfd/compress.c 2010-09-10 08:46:16.000000000 +0100
*************** bfd_get_full_section_contents (bfd *abfd
*** 174,180 ****
case COMPRESS_SECTION_NONE:
if (p == NULL)
{
! p = (bfd_byte *) bfd_malloc (sz);
if (p == NULL)
return FALSE;
need_free = TRUE;
--- 174,180 ----
case COMPRESS_SECTION_NONE:
if (p == NULL)
{
! p = (bfd_byte *) bfd_zmalloc (sz);
if (p == NULL)
return FALSE;
need_free = TRUE;
*************** fail_compressed:
*** 234,240 ****
uncompressed_buffer = p;
else
{
! uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size);
if (uncompressed_buffer == NULL)
goto fail_compressed;
}
--- 234,240 ----
uncompressed_buffer = p;
else
{
! uncompressed_buffer = (bfd_byte *) bfd_zmalloc (uncompressed_size);
if (uncompressed_buffer == NULL)
goto fail_compressed;
}

View File

@ -1,91 +0,0 @@
diff -rcp ../binutils-2.20.51.0.7.original/ld/ldmain.c ./ld/ldmain.c
*** ../binutils-2.20.51.0.7.original/ld/ldmain.c 2010-04-08 15:03:56.000000000 +0100
--- ./ld/ldmain.c 2010-04-08 15:05:09.000000000 +0100
*************** main (int argc, char **argv)
*** 258,271 ****
command_line.check_section_addresses = -1;
command_line.disable_target_specific_optimizations = -1;
- if (getenv ("LD_SYMBOLIC") != NULL)
- command_line.symbolic = symbolic;
- else if (getenv ("LD_SYMBOLIC_FUNCTIONS") != NULL)
- command_line.symbolic = symbolic_functions;
-
- if (getenv ("LD_AS_NEEDED") != NULL)
- add_DT_NEEDED_for_regular = TRUE;
-
/* We initialize DEMANGLING based on the environment variable
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
output of the linker, unless COLLECT_NO_DEMANGLE is set in the
--- 258,263 ----
diff -rcp ../binutils-2.20.51.0.7.original/ld/ld.texinfo ./ld/ld.texinfo
*** ../binutils-2.20.51.0.7.original/ld/ld.texinfo 2010-04-08 15:03:55.000000000 +0100
--- ./ld/ld.texinfo 2010-04-08 15:05:55.000000000 +0100
*************** their names to the @option{--as-needed}
*** 1152,1161 ****
options. They have been replaced by @option{--copy-dt-needed-entries}
and @option{--no-copy-dt-needed-entries}.
- If the environment variable @code{LD_AS_NEEDED} is set, the linker
- will behave as if the @option{--as-needed} option is passed to the
- linker as the first command line option.
-
@kindex -assert @var{keyword}
@item -assert @var{keyword}
This option is ignored for SunOS compatibility.
--- 1152,1157 ----
*************** When creating a shared library, bind ref
*** 1206,1226 ****
definition within the shared library, if any. Normally, it is possible
for a program linked against a shared library to override the definition
within the shared library. This option is only meaningful on ELF
! platforms which support shared libraries. If @option{-Bsymbolic} is not
! used when linking a shared library, the linker will also turn on this
! option if the environment variable @code{LD_SYMBOLIC} is set.
@kindex -Bsymbolic-functions
@item -Bsymbolic-functions
When creating a shared library, bind references to global function
symbols to the definition within the shared library, if any.
This option is only meaningful on ELF platforms which support shared
! libraries. If @option{-Bsymbolic-functions} is not used when linking a
! shared library, the linker will also turn on this option if the
! environment variable @code{LD_SYMBOLIC_FUNCTIONS} is set. When
! both environment variables @code{LD_SYMBOLIC} and
! @code{LD_SYMBOLIC_FUNCTIONS} are set, @code{LD_SYMBOLIC} will take
! precedent.
@kindex --dynamic-list=@var{dynamic-list-file}
@item --dynamic-list=@var{dynamic-list-file}
--- 1202,1215 ----
definition within the shared library, if any. Normally, it is possible
for a program linked against a shared library to override the definition
within the shared library. This option is only meaningful on ELF
! platforms which support shared libraries.
@kindex -Bsymbolic-functions
@item -Bsymbolic-functions
When creating a shared library, bind references to global function
symbols to the definition within the shared library, if any.
This option is only meaningful on ELF platforms which support shared
! libraries.
@kindex --dynamic-list=@var{dynamic-list-file}
@item --dynamic-list=@var{dynamic-list-file}
diff -rcp ../binutils-2.20.51.0.7.original/ld/NEWS ./ld/NEWS
*** ../binutils-2.20.51.0.7.original/ld/NEWS 2010-04-08 15:03:56.000000000 +0100
--- ./ld/NEWS 2010-04-08 15:04:14.000000000 +0100
*************** Changes in 2.20:
*** 73,83 ****
For the switch --enable-runtime-pseudo-reloc it uses for 32-bit
runtime pseudo relocation version one, for 64-bit the version two.
- * ELF: Support environment variable LD_AS_NEEDED for --as-needed.
-
- * ELF: Support environment variables, LD_SYMBOLIC for -Bsymbolic and
- LD_SYMBOLIC_FUNCTIONS for -Bsymbolic-functions.
-
Changes in 2.19:
* Linker scripts support a new INSERT command that makes it easier to
--- 73,78 ----

View File

@ -1,41 +0,0 @@
diff -rcp ../binutils-2.20.51.0.7.original/bfd/ChangeLog ./bfd/ChangeLog
*** ../binutils-2.20.51.0.7.original/bfd/ChangeLog 2010-04-08 15:35:35.000000000 +0100
--- ./bfd/ChangeLog 2010-04-08 15:38:09.000000000 +0100
***************
*** 1,3 ****
--- 1,12 ----
+ 2010-04-07 Nick Clifton <nickc@redhat.com>
+
+ Import this patch from the mainline:
+
+ 2010-03-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/11434
+ * elf-bfd.h (SYMBOLIC_BIND): Don't bind unique symbols locally.
+
2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/11396
diff -rcp ../binutils-2.20.51.0.7.original/bfd/elf-bfd.h ./bfd/elf-bfd.h
*** ../binutils-2.20.51.0.7.original/bfd/elf-bfd.h 2010-04-08 15:35:35.000000000 +0100
--- ./bfd/elf-bfd.h 2010-04-08 15:37:41.000000000 +0100
*************** extern asection _bfd_elf_large_com_secti
*** 2351,2358 ****
while (0)
/* Will a symbol be bound to the the definition within the shared
! library, if any. */
#define SYMBOLIC_BIND(INFO, H) \
! ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic))
#endif /* _LIBELF_H_ */
--- 2351,2359 ----
while (0)
/* Will a symbol be bound to the the definition within the shared
! library, if any. A unique symbol can never be bound locally. */
#define SYMBOLIC_BIND(INFO, H) \
! (! (H)->unique_global \
! && ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic)))
#endif /* _LIBELF_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -1,61 +0,0 @@
diff -rcp ../binutils-2.20.51.0.7-original/gold/script.cc gold/script.cc
*** ../binutils-2.20.51.0.7-original/gold/script.cc 2010-06-09 15:18:46.000000000 +0100
--- gold/script.cc 2010-06-09 15:20:49.000000000 +0100
*************** script_add_file(void* closurev, const ch
*** 2589,2594 ****
--- 2589,2612 ----
closure->inputs()->add_file(file);
}
+ // Called by the bison parser to add a library to the link.
+
+ extern "C" void
+ script_add_library(void* closurev, const char* name, size_t length)
+ {
+ Parser_closure* closure = static_cast<Parser_closure*>(closurev);
+ std::string name_string(name, length);
+
+ if (name_string[0] != 'l')
+ gold_error(_("library name must be prefixed with -l"));
+
+ Input_file_argument file(name_string.c_str() + 1,
+ Input_file_argument::INPUT_FILE_TYPE_LIBRARY,
+ "", false,
+ closure->position_dependent_options());
+ closure->inputs()->add_file(file);
+ }
+
// Called by the bison parser to start a group. If we are already in
// a group, that means that this script was invoked within a
// --start-group --end-group sequence on the command line, or that
diff -rcp ../binutils-2.20.51.0.7-original/gold/script-c.h gold/script-c.h
*** ../binutils-2.20.51.0.7-original/gold/script-c.h 2010-06-09 15:18:47.000000000 +0100
--- gold/script-c.h 2010-06-09 15:21:05.000000000 +0100
*************** script_add_extern(void* closure, const c
*** 222,227 ****
--- 222,232 ----
extern void
script_add_file(void* closure, const char*, size_t);
+ /* Called by the bison parser to add a library to the link. */
+
+ extern void
+ script_add_library(void* closure, const char*, size_t);
+
/* Called by the bison parser to start and stop a group. */
extern void
diff -rcp ../binutils-2.20.51.0.7-original/gold/yyscript.y gold/yyscript.y
*** ../binutils-2.20.51.0.7-original/gold/yyscript.y 2010-06-09 15:18:46.000000000 +0100
--- gold/yyscript.y 2010-06-09 15:21:21.000000000 +0100
*************** input_list:
*** 314,319 ****
--- 314,321 ----
input_list_element:
string
{ script_add_file(closure, $1.value, $1.length); }
+ | '-' STRING
+ { script_add_library(closure, $2.value, $2.length); }
| AS_NEEDED
{ script_start_as_needed(closure); }
'(' input_list ')'

View File

@ -1,31 +0,0 @@
diff -rcp ../binutils-2.20.51.0.7-original/bfd/archive.c ./bfd/archive.c
*** ../binutils-2.20.51.0.7-original/bfd/archive.c 2010-05-04 19:08:20.000000000 +0100
--- ./bfd/archive.c 2010-05-04 19:09:40.000000000 +0100
*************** _bfd_compute_and_write_armap (bfd *arch,
*** 2196,2201 ****
--- 2196,2202 ----
if ((flags & BSF_GLOBAL
|| flags & BSF_WEAK
|| flags & BSF_INDIRECT
+ || flags & BSF_GNU_UNIQUE
|| bfd_is_com_section (sec))
&& ! bfd_is_und_section (sec))
{
diff -rcp ../binutils-2.20.51.0.7-original/bfd/ChangeLog ./bfd/ChangeLog
*** ../binutils-2.20.51.0.7-original/bfd/ChangeLog 2010-05-04 19:08:20.000000000 +0100
--- ./bfd/ChangeLog 2010-05-04 19:11:04.000000000 +0100
***************
*** 1,3 ****
--- 1,12 ----
+ 2010-05-04 Nick Clifton <nickc@redhat.com>
+
+ Import this patch:
+
+ 2010-03-18 Matt Rice <ratmice@gmail.com>
+
+ * archive.c (_bfd_compute_and_write_armap): Allow symbols flagged
+ as unique in the armap.
+
2010-04-08 Nick Clifton <nickc@redhat.com>
Import these patches from the mainline:

View File

@ -16,8 +16,8 @@
Summary: A GNU collection of binary utilities
Name: %{?cross}binutils%{?_with_debug:-debug}
Version: 2.20.51.0.12
Release: 2%{?dist}
Version: 2.21.51.0.5
Release: 1%{?dist}
License: GPLv3+
Group: Development/Tools
URL: http://sources.redhat.com/binutils
@ -28,10 +28,8 @@ Patch02: binutils-2.20.51.0.10-ppc64-pie.patch
Patch03: binutils-2.20.51.0.2-ia64-lib64.patch
Patch04: binutils-2.20.51.0.2-version.patch
Patch05: binutils-2.20.51.0.2-set-long-long.patch
Patch06: binutils-2.20.51.0.2-build-id.patch
Patch07: binutils-2.20.51.0.10-copy-osabi.patch
Patch08: binutils-2.20.51.0.10-sec-merge-emit.patch
Patch09: binutils-2.20.51.0.11-compress-compile.patch
Patch06: binutils-2.20.51.0.10-copy-osabi.patch
Patch07: binutils-2.20.51.0.10-sec-merge-emit.patch
%define gold_arches %ix86 x86_64
@ -127,10 +125,8 @@ using libelf instead of BFD.
%endif
%patch04 -p0 -b .version~
%patch05 -p0 -b .set-long-long~
%patch06 -p0 -b .build-id~
%patch07 -p0 -b .copy-osabi~
%patch08 -p0 -b .sec-merge-emit~
%patch09 -p0 -b .compress~
%patch06 -p0 -b .copy-osabi~
%patch07 -p0 -b .sec-merge-emit~
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
@ -186,7 +182,11 @@ CFLAGS="$CFLAGS -O0 -ggdb2"
--build=%{_target_platform} --host=%{_target_platform} \
--target=%{binutils_target} \
%ifarch %gold_arches
--enable-gold=%{build_gold} \
%if "%{build_gold}" == "both"
--enable-gold=default --enable-ld \
%else
--enable-gold \
%endif
%endif
%if !%{isnative}
--enable-targets=%{_host} \
@ -415,6 +415,11 @@ exit 0
%endif # %{isnative}
%changelog
* Wed Jan 5 2011 Nick Clifton <nickc@redhat.com> - 2.21.51.0.5-1
- Rebase on 2.21.51.0.5 tarball.
- Delete redundant patches.
- Fix gold+ld configure command line option.
* Fri Nov 4 2010 Dan Horák <dan[at]danny.cz> - 2.20.51.0.12-2
- "no" is not valid option for --enable-gold

View File

@ -1 +1 @@
f3a1f0535935ddae61ded2bcd3c7ce09 binutils-2.20.51.0.12.tar.bz2
85cdd97069c230b0a8771d50e309754f binutils-2.21.51.0.5.tar.bz2