mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 14:59:31 +08:00
PR 9923
* peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2009-03-05 Moritz Kroll <Moritz.Kroll@gmx.de>
|
||||||
|
|
||||||
|
PR 9923
|
||||||
|
* peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type.
|
||||||
|
|
||||||
2009-03-04 Alan Modra <amodra@bigpond.net.au>
|
2009-03-04 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
|
* reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Support for the generic parts of PE/PEI; the common executable parts.
|
/* Support for the generic parts of PE/PEI; the common executable parts.
|
||||||
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||||
Written by Cygnus Solutions.
|
Written by Cygnus Solutions.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
@ -2277,7 +2277,9 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
|
|||||||
/* PR ld/2729: We cannot rely upon all the output sections having been
|
/* PR ld/2729: We cannot rely upon all the output sections having been
|
||||||
created properly, so check before referencing them. Issue a warning
|
created properly, so check before referencing them. Issue a warning
|
||||||
message for any sections tht could not be found. */
|
message for any sections tht could not be found. */
|
||||||
if (h1->root.u.def.section != NULL
|
if ((h1->root.type == bfd_link_hash_defined
|
||||||
|
|| h1->root.type == bfd_link_hash_defweak)
|
||||||
|
&& h1->root.u.def.section != NULL
|
||||||
&& h1->root.u.def.section->output_section != NULL)
|
&& h1->root.u.def.section->output_section != NULL)
|
||||||
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_TABLE].VirtualAddress =
|
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_TABLE].VirtualAddress =
|
||||||
(h1->root.u.def.value
|
(h1->root.u.def.value
|
||||||
@ -2294,6 +2296,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
|
|||||||
h1 = coff_link_hash_lookup (coff_hash_table (info),
|
h1 = coff_link_hash_lookup (coff_hash_table (info),
|
||||||
".idata$4", FALSE, FALSE, TRUE);
|
".idata$4", FALSE, FALSE, TRUE);
|
||||||
if (h1 != NULL
|
if (h1 != NULL
|
||||||
|
&& (h1->root.type == bfd_link_hash_defined
|
||||||
|
|| h1->root.type == bfd_link_hash_defweak)
|
||||||
&& h1->root.u.def.section != NULL
|
&& h1->root.u.def.section != NULL
|
||||||
&& h1->root.u.def.section->output_section != NULL)
|
&& h1->root.u.def.section->output_section != NULL)
|
||||||
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_TABLE].Size =
|
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_TABLE].Size =
|
||||||
@ -2314,6 +2318,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
|
|||||||
h1 = coff_link_hash_lookup (coff_hash_table (info),
|
h1 = coff_link_hash_lookup (coff_hash_table (info),
|
||||||
".idata$5", FALSE, FALSE, TRUE);
|
".idata$5", FALSE, FALSE, TRUE);
|
||||||
if (h1 != NULL
|
if (h1 != NULL
|
||||||
|
&& (h1->root.type == bfd_link_hash_defined
|
||||||
|
|| h1->root.type == bfd_link_hash_defweak)
|
||||||
&& h1->root.u.def.section != NULL
|
&& h1->root.u.def.section != NULL
|
||||||
&& h1->root.u.def.section->output_section != NULL)
|
&& h1->root.u.def.section->output_section != NULL)
|
||||||
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_ADDRESS_TABLE].VirtualAddress =
|
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_ADDRESS_TABLE].VirtualAddress =
|
||||||
@ -2331,6 +2337,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
|
|||||||
h1 = coff_link_hash_lookup (coff_hash_table (info),
|
h1 = coff_link_hash_lookup (coff_hash_table (info),
|
||||||
".idata$6", FALSE, FALSE, TRUE);
|
".idata$6", FALSE, FALSE, TRUE);
|
||||||
if (h1 != NULL
|
if (h1 != NULL
|
||||||
|
&& (h1->root.type == bfd_link_hash_defined
|
||||||
|
|| h1->root.type == bfd_link_hash_defweak)
|
||||||
&& h1->root.u.def.section != NULL
|
&& h1->root.u.def.section != NULL
|
||||||
&& h1->root.u.def.section->output_section != NULL)
|
&& h1->root.u.def.section->output_section != NULL)
|
||||||
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_ADDRESS_TABLE].Size =
|
pe_data (abfd)->pe_opthdr.DataDirectory[PE_IMPORT_ADDRESS_TABLE].Size =
|
||||||
@ -2351,7 +2359,9 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
|
|||||||
"__tls_used", FALSE, FALSE, TRUE);
|
"__tls_used", FALSE, FALSE, TRUE);
|
||||||
if (h1 != NULL)
|
if (h1 != NULL)
|
||||||
{
|
{
|
||||||
if (h1->root.u.def.section != NULL
|
if ((h1->root.type == bfd_link_hash_defined
|
||||||
|
|| h1->root.type == bfd_link_hash_defweak)
|
||||||
|
&& h1->root.u.def.section != NULL
|
||||||
&& h1->root.u.def.section->output_section != NULL)
|
&& h1->root.u.def.section->output_section != NULL)
|
||||||
pe_data (abfd)->pe_opthdr.DataDirectory[PE_TLS_TABLE].VirtualAddress =
|
pe_data (abfd)->pe_opthdr.DataDirectory[PE_TLS_TABLE].VirtualAddress =
|
||||||
(h1->root.u.def.value
|
(h1->root.u.def.value
|
||||||
|
Reference in New Issue
Block a user