diff options
author | Nick Clifton <nickc@redhat.com> | 2008-07-18 11:30:22 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2008-07-18 11:30:22 +0000 |
commit | 2b5c217d4551d71750840b7d76fd677075512903 (patch) | |
tree | a14a65a7e24130dfd6351d2dc0a0ffd4fc765e41 /bfd/peXXigen.c | |
parent | a18f591e924ea296bbf8f7fbdff40cbb07e98b21 (diff) | |
download | gdb-2b5c217d4551d71750840b7d76fd677075512903.zip gdb-2b5c217d4551d71750840b7d76fd677075512903.tar.gz gdb-2b5c217d4551d71750840b7d76fd677075512903.tar.bz2 |
* pe-arm-wince.c (pe_print_compressed_pdata): Define new function to
print compressed pdata structure as described on MSDN. This only
applies to a limited set of architectures (ARM, SH4).
(slurp_symtab, my_symbol_for_address): Define static helper
functions for pe_print_compressed_pdata.
* coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field.
(bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define.
* bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on
bfd_coff_backend_data, call the function if non-null.
* pei-mcore.c: Add target dependent initialisation for
bfd_coff_backend_data.
* coff-sh.c: Likewise.
* coff64-rs6000.c: Likewise.
* coff-rs6000.c: Likewise.
* libcoff-in.h: Likewise.
* cf-i386lynx.c: Likewise.
* coff-alpha.c: Likewise.
* coff-apollo.c: Likewise.
* coff-arm.c: Likewise.
* coff-aux.c: Likewise.
* coff-h8300.c: Likewise.
* coff-h8500.c: Likewise.
* coff-i386.c: Likewise.
* coff-i860.c: Likewise.
* coff-i960.c: Likewise.
* coff-ia64.c: Likewise.
* coff-m68k.c: Likewise.
* coff-m88k.c: Likewise.
* coff-maxq.c: Likewise.
* coff-mips.c: Likewise.
* coff-or32.c: Likewise.
* coff-sparc.c: Likewise.
* coff-tic30.c: Likewise.
* coff-tic4x.c: Likewise.
* coff-tic54x.c: Likewise.
* coff-tic80.c: Likewise.
* coff-w65.c: Likewise.
* coff-we32k.c: Likewise.
* coff-x86_64.c: Likewise.
* coff-z80.c: Likewise.
* coff-z8k.c: Likewise.
* pe-mcore.c: Likewise.
* pe-mips.c: Likewise.
* pe-ppc.c: Likewise.
* peXXigen.c: Likewise.
* pei-ppc.c: Likewise.
* libcoff.h: Regenerate.
Diffstat (limited to 'bfd/peXXigen.c')
-rw-r--r-- | bfd/peXXigen.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index ddba235..be06ee6 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -1,6 +1,6 @@ /* Support for the generic parts of PE/PEI; the common executable parts. Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Cygnus Solutions. This file is part of BFD, the Binary File Descriptor library. @@ -1581,7 +1581,15 @@ pe_print_edata (bfd * abfd, void * vfile) /* This really is architecture dependent. On IA-64, a .pdata entry consists of three dwords containing relative virtual addresses that specify the start and end address of the code range the entry - covers and the address of the corresponding unwind info data. */ + covers and the address of the corresponding unwind info data. + + On ARM and SH-4, a compressed PDATA structure is used : + _IMAGE_CE_RUNTIME_FUNCTION_ENTRY, whereas MIPS is documented to use + _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY. + See http://msdn2.microsoft.com/en-us/library/ms253988(VS.80).aspx . + + The version of this function to deal with compressed pdata has been + moved to pe-arm-wince.c. */ static bfd_boolean pe_print_pdata (bfd * abfd, void * vfile) @@ -1705,6 +1713,7 @@ pe_print_pdata (bfd * abfd, void * vfile) free (data); return TRUE; +#undef PDATA_ROW_SIZE } #define IMAGE_REL_BASED_HIGHADJ 4 @@ -1975,7 +1984,10 @@ _bfd_XX_print_private_bfd_data_common (bfd * abfd, void * vfile) pe_print_idata (abfd, vfile); pe_print_edata (abfd, vfile); - pe_print_pdata (abfd, vfile); + if (bfd_coff_have_print_pdata (abfd)) + bfd_coff_print_pdata (abfd, vfile); + else + pe_print_pdata (abfd, vfile); pe_print_reloc (abfd, vfile); return TRUE; |