2.17.50.0.16-1

This commit is contained in:
Jakub Jelinek 2007-06-12 10:45:28 +00:00
parent 5f0e45256b
commit 44cfb8c088
13 changed files with 73 additions and 223 deletions

View File

@ -1 +1 @@
binutils-2.17.50.0.12.tar.bz2
binutils-2.17.50.0.16.tar.bz2

View File

@ -1,141 +0,0 @@
2007-03-13 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/3826
* elf-bfd.h (_bfd_elf_check_osabi): Removed.
* elf.c (_bfd_elf_check_osabi): Removed.
* elfcode.h (elf_object_p): Match the ELFOSABI_NONE ELF target
with any ELF target of the same machine for which we do not
have a specific backend.
* elfxx-target.h (elf_backend_object_p): Default to 0.
--- bfd/elf-bfd.h.jj 2007-01-28 11:49:30.000000000 -0500
+++ bfd/elf-bfd.h 2007-03-14 05:28:16.000000000 -0400
@@ -1736,8 +1736,6 @@ extern bfd_boolean _bfd_elf_setup_sectio
extern void _bfd_elf_set_osabi (bfd * , struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_check_osabi (bfd *);
-
extern const bfd_target *bfd_elf32_object_p
(bfd *);
extern const bfd_target *bfd_elf32_core_file_p
--- bfd/elf.c.jj 2007-01-28 11:49:30.000000000 -0500
+++ bfd/elf.c 2007-03-14 05:28:31.000000000 -0400
@@ -9135,14 +9135,3 @@ _bfd_elf_set_osabi (bfd * abfd,
i_ehdrp->e_ident[EI_OSABI] = get_elf_backend_data (abfd)->elf_osabi;
}
-
-bfd_boolean
-_bfd_elf_check_osabi (bfd *abfd)
-{
- Elf_Internal_Ehdr * i_ehdrp; /* ELF file header, internal form. */
-
- i_ehdrp = elf_elfheader (abfd);
-
- return (i_ehdrp->e_ident[EI_OSABI]
- == get_elf_backend_data (abfd)->elf_osabi);
-}
--- bfd/elfxx-target.h.jj 2007-01-28 11:49:30.000000000 -0500
+++ bfd/elfxx-target.h 2007-03-14 05:29:27.000000000 -0400
@@ -320,7 +320,7 @@
#define elf_backend_sym_is_global 0
#endif
#ifndef elf_backend_object_p
-#define elf_backend_object_p _bfd_elf_check_osabi
+#define elf_backend_object_p 0
#endif
#ifndef elf_backend_symbol_processing
#define elf_backend_symbol_processing 0
--- bfd/elfcode.h.jj 2006-09-24 11:19:58.000000000 -0400
+++ bfd/elfcode.h 2007-03-14 05:30:17.000000000 -0400
@@ -500,6 +500,8 @@ elf_object_p (bfd *abfd)
struct bfd_preserve preserve;
asection *s;
bfd_size_type amt;
+ const bfd_target *target;
+ const bfd_target * const *target_ptr;
preserve.marker = NULL;
@@ -543,10 +545,12 @@ elf_object_p (bfd *abfd)
if (!bfd_preserve_save (abfd, &preserve))
goto got_no_match;
+ target = abfd->xvec;
+
/* Allocate an instance of the elf_obj_tdata structure and hook it up to
the tdata pointer in the bfd. */
- if (! (*abfd->xvec->_bfd_set_format[bfd_object]) (abfd))
+ if (! (*target->_bfd_set_format[bfd_object]) (abfd))
goto got_no_match;
preserve.marker = elf_tdata (abfd);
@@ -586,8 +590,6 @@ elf_object_p (bfd *abfd)
&& (ebd->elf_machine_alt2 == 0
|| i_ehdrp->e_machine != ebd->elf_machine_alt2))
{
- const bfd_target * const *target_ptr;
-
if (ebd->elf_machine_code != EM_NONE)
goto got_wrong_format_error;
@@ -628,6 +630,45 @@ elf_object_p (bfd *abfd)
goto got_no_match;
}
+ if (ebd->elf_machine_code != EM_NONE
+ && i_ehdrp->e_ident[EI_OSABI] != ebd->elf_osabi)
+ {
+ if (ebd->elf_osabi != ELFOSABI_NONE)
+ goto got_wrong_format_error;
+
+ /* This is an ELFOSABI_NONE ELF target. Let it match any ELF
+ target of the compatible machine for which we do not have a
+ backend with matching ELFOSABI. */
+ for (target_ptr = bfd_target_vector;
+ *target_ptr != NULL;
+ target_ptr++)
+ {
+ const struct elf_backend_data *back;
+
+ /* Skip this target and targets with incompatible byte
+ order. */
+ if (*target_ptr == target
+ || (*target_ptr)->flavour != bfd_target_elf_flavour
+ || (*target_ptr)->byteorder != target->byteorder
+ || ((*target_ptr)->header_byteorder
+ != target->header_byteorder))
+ continue;
+
+ back = (const struct elf_backend_data *) (*target_ptr)->backend_data;
+ if (back->elf_osabi == i_ehdrp->e_ident[EI_OSABI]
+ && (back->elf_machine_code == i_ehdrp->e_machine
+ || (back->elf_machine_alt1 != 0
+ && back->elf_machine_alt1 == i_ehdrp->e_machine)
+ || (back->elf_machine_alt2 != 0
+ && back->elf_machine_alt2 == i_ehdrp->e_machine)))
+ {
+ /* target_ptr is an ELF backend which matches this
+ object file, so reject the ELFOSABI_NONE ELF target. */
+ goto got_wrong_format_error;
+ }
+ }
+ }
+
if (i_ehdrp->e_shoff != 0)
{
bfd_signed_vma where = i_ehdrp->e_shoff;
@@ -848,7 +889,7 @@ elf_object_p (bfd *abfd)
}
bfd_preserve_finish (abfd, &preserve);
- return abfd->xvec;
+ return target;
got_wrong_format_error:
/* There is way too much undoing of half-known state here. The caller,

View File

@ -1,45 +0,0 @@
2007-04-14 Jakub Jelinek <jakub@redhat.com>
* elflink.c (bfd_elf_final_link): Don't free symbuf for
non-elf input bfds.
(bfd_elf_size_dynamic_sections): Don't access elf_section_data
for non-elf input bfds.
--- bfd/elflink.c.jj 2007-04-07 10:19:03.000000000 +0200
+++ bfd/elflink.c 2007-04-14 14:49:15.000000000 +0200
@@ -5522,15 +5522,16 @@ bfd_elf_size_dynamic_sections (bfd *outp
for (sub = info->input_bfds; sub != NULL;
sub = sub->link_next)
- for (o = sub->sections; o != NULL; o = o->next)
- if (elf_section_data (o)->this_hdr.sh_type
- == SHT_PREINIT_ARRAY)
- {
- (*_bfd_error_handler)
- (_("%B: .preinit_array section is not allowed in DSO"),
- sub);
- break;
- }
+ if (bfd_get_flavour (sub) == bfd_target_elf_flavour)
+ for (o = sub->sections; o != NULL; o = o->next)
+ if (elf_section_data (o)->this_hdr.sh_type
+ == SHT_PREINIT_ARRAY)
+ {
+ (*_bfd_error_handler)
+ (_("%B: .preinit_array section is not allowed in DSO"),
+ sub);
+ break;
+ }
bfd_set_error (bfd_error_nonrepresentable_section);
return FALSE;
@@ -9533,7 +9534,8 @@ bfd_elf_final_link (bfd *abfd, struct bf
if (!info->reduce_memory_overheads)
{
for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
- if (elf_tdata (sub)->symbuf)
+ if (bfd_get_flavour (sub) == bfd_target_elf_flavour
+ && elf_tdata (sub)->symbuf)
{
free (elf_tdata (sub)->symbuf);
elf_tdata (sub)->symbuf = NULL;

View File

@ -1,16 +1,16 @@
--- ld/NEWS.jj 2007-01-28 11:49:31.000000000 -0500
+++ ld/NEWS 2007-03-01 04:21:37.000000000 -0500
--- ld/NEWS.jj 2007-05-11 11:24:08.000000000 -0400
+++ ld/NEWS 2007-06-12 05:04:49.000000000 -0400
@@ -1,7 +1,4 @@
-*- text -*-
-* ELF: Support environment variables, LD_SYMBOLIC for -Bsymbolic and
- LD_SYMBOLIC_FUNCTIONS for -Bsymbolic-functions.
-
* Add a new command line option '--default-script=FILE' or '-dT FILE'
which specifies a replacement for the built in, default linker
script.
--- ld/ld.texinfo.jj 2007-01-28 11:49:31.000000000 -0500
+++ ld/ld.texinfo 2007-03-01 04:25:24.000000000 -0500
@@ -1144,21 +1144,14 @@ When creating a shared library, bind ref
* -l:foo now searches the library path for a filename called foo,
without converting it to libfoo.a or libfoo.so.
--- ld/ld.texinfo.jj 2007-05-11 11:24:08.000000000 -0400
+++ ld/ld.texinfo 2007-06-12 05:04:33.000000000 -0400
@@ -1147,21 +1147,14 @@ When creating a shared library, bind ref
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
@ -34,19 +34,17 @@
@kindex --dynamic-list=@var{dynamic-list-file}
@item --dynamic-list=@var{dynamic-list-file}
--- ld/ldmain.c.jj 2007-01-28 11:49:31.000000000 -0500
+++ ld/ldmain.c 2007-03-01 04:22:40.000000000 -0500
@@ -256,12 +256,7 @@ main (int argc, char **argv)
command_line.warn_mismatch = TRUE;
--- ld/ldmain.c.jj 2007-05-11 11:24:08.000000000 -0400
+++ ld/ldmain.c 2007-06-12 05:05:48.000000000 -0400
@@ -254,11 +254,6 @@ main (int argc, char **argv)
command_line.warn_search_mismatch = TRUE;
command_line.check_section_addresses = TRUE;
command_line.accept_unknown_input_arch = FALSE;
- if (getenv ("LD_SYMBOLIC") != NULL)
- command_line.symbolic = symbolic;
- else if (getenv ("LD_SYMBOLIC_FUNCTIONS") != NULL)
- command_line.symbolic = symbolic_functions;
- else
- command_line.symbolic = symbolic_unset;
+ command_line.symbolic = symbolic_unset;
command_line.dynamic_list = dynamic_list_unset;
sort_section = none;
-
/* 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

View File

@ -0,0 +1,36 @@
--- bfd/Makefile.in.jj 2007-05-11 17:23:18.000000000 +0200
+++ bfd/Makefile.in 2007-06-12 12:28:10.000000000 +0200
@@ -1540,12 +1540,12 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
if test "x$(RELEASE)" = x ; then \
bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\
- bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\
- bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
+ bfd_version_string="\"$(VERSION)-%{release} $${bfd_version_date}\"" ;\
+ bfd_soversion="$(VERSION)-%{release}" ;\
fi ;\
sed -e "s,@bfd_version@,$$bfd_version," \
-e "s,@bfd_version_string@,$$bfd_version_string," \
- -e "s,@bfd_version_package@,$$bfd_version_package," \
+ -e "s,@bfd_version_package@,\"version \"," \
-e "s,@report_bugs_to@,$$report_bugs_to," \
< $(srcdir)/version.h > $@; \
echo "$${bfd_soversion}" > libtool-soversion
--- bfd/Makefile.am.jj 2007-05-11 17:23:18.000000000 +0200
+++ bfd/Makefile.am 2007-06-12 12:28:10.000000000 +0200
@@ -973,12 +973,12 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
if test "x$(RELEASE)" = x ; then \
bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\
- bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\
- bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
+ bfd_version_string="\"$(VERSION)-%{release} $${bfd_version_date}\"" ;\
+ bfd_soversion="$(VERSION)-%{release}" ;\
fi ;\
sed -e "s,@bfd_version@,$$bfd_version," \
-e "s,@bfd_version_string@,$$bfd_version_string," \
- -e "s,@bfd_version_package@,$$bfd_version_package," \
+ -e "s,@bfd_version_package@,\"version \"," \
-e "s,@report_bugs_to@,$$report_bugs_to," \
< $(srcdir)/version.h > $@; \
echo "$${bfd_soversion}" > libtool-soversion

View File

@ -1,20 +1,19 @@
Summary: A GNU collection of binary utilities.
Name: binutils
Version: 2.17.50.0.12
Release: 4
Version: 2.17.50.0.16
Release: 1
License: GPL
Group: Development/Tools
URL: http://sources.redhat.com/binutils
Source: ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-%{version}.tar.bz2
Patch1: binutils-2.17.50.0.12-ltconfig-multilib.patch
Patch2: binutils-2.17.50.0.12-ppc64-pie.patch
Patch3: binutils-2.17.50.0.12-place-orphan.patch
Patch4: binutils-2.17.50.0.12-ia64-lib64.patch
Patch5: binutils-2.17.50.0.12-standards.patch
Patch6: binutils-2.17.50.0.12-build-fixes.patch
Patch7: binutils-2.17.50.0.12-symbolic-envvar-revert.patch
Patch8: binutils-2.17.50.0.12-osabi.patch
Patch9: binutils-2.17.50.0.12-rh235747.patch
Patch1: binutils-2.17.50.0.16-ltconfig-multilib.patch
Patch2: binutils-2.17.50.0.16-ppc64-pie.patch
Patch3: binutils-2.17.50.0.16-place-orphan.patch
Patch4: binutils-2.17.50.0.16-ia64-lib64.patch
Patch5: binutils-2.17.50.0.16-standards.patch
Patch6: binutils-2.17.50.0.16-build-fixes.patch
Patch7: binutils-2.17.50.0.16-symbolic-envvar-revert.patch
Patch8: binutils-2.17.50.0.16-version.patch
Buildroot: %{_tmppath}/binutils-root
BuildRequires: texinfo >= 4.0, dejagnu, gettext, flex, bison
@ -62,15 +61,14 @@ to consider using libelf instead of BFD.
%endif
%patch5 -p0 -b .standards~
%patch6 -p0 -b .build-fixes~
%patch7 -p0 -b .tekhex~
%patch8 -p0 -b .osabi~
%patch9 -p0 -b .rh235747~
%patch7 -p0 -b .symbolic-envvar-revert~
%patch8 -p0 -b .version~
# On ppc64 we might use 64K pages
sed -i -e '/#define.*ELF_COMMONPAGESIZE/s/0x1000$/0x10000/' bfd/elf*ppc.c
# LTP sucks
perl -pi -e 's/i\[3-7\]86/i[34567]86/g' */conf*
sed -i -e 's/%{version}/%{version}-%{release}/g' bfd/configure{.in,}
sed -i -e 's/%''{release}/%{release}/g' bfd/Makefile{.am,.in}
sed -i -e '/^libopcodes_la_\(DEPENDENCIES\|LIBADD\)/s,$, ../bfd/libbfd.la,' opcodes/Makefile.{am,in}
# Build libbfd.so and libopcodes.so with -Bsymbolic-functions if possible.
if gcc %{optflags} -v --help 2>&1 | grep -q -- -Bsymbolic-functions; then
@ -95,7 +93,8 @@ CC="gcc -L`pwd`/bfd/.libs/" CFLAGS="${CFLAGS:-%optflags}" ../configure \
--datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
--libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
--infodir=%{_infodir} --enable-shared $CARGS --disable-werror
--infodir=%{_infodir} --enable-shared $CARGS --disable-werror \
--with-bugurl=http://bugzilla.redhat.com/bugzilla/
make %{_smp_mflags} tooldir=%{_prefix} all
make %{_smp_mflags} tooldir=%{_prefix} info
make -k check < /dev/null > check.log 2>&1 || :
@ -214,6 +213,9 @@ fi
%{_infodir}/bfd*info*
%changelog
* Tue Jun 12 2007 Jakub Jelinek <jakub@redhat.com> 2.17.50.0.16-1
- update to 2.17.50.0.16
* Sat Apr 14 2007 Jakub Jelinek <jakub@redhat.com> 2.17.50.0.12-4
- fix linking non-ELF input objects into ELF output (#235747)

View File

@ -1 +1 @@
6f3e83399b965d70008860f697c50ec2 binutils-2.17.50.0.12.tar.bz2
1404fe9bc6105dcc27c85787b3222885 binutils-2.17.50.0.16.tar.bz2