From 9645e3f0fa45343769c3195d2813020a2b78c901 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 18 Aug 2010 12:24:02 +0000 Subject: [PATCH] 2010-08-18 Pedro Alves PR corefile/8210 bfd/ * bfd-in2.h: Regenerate. * corefile.c (bfd_core_file_pid): New. * targets.c (BFD_JUMP_TABLE_CORE): Add NAME##_core_file_pid. (struct bfd_target) <_core_file_pid>: New. * libbfd-in.h (_bfd_nocore_core_file_pid): Declare. * libbfd.c (_bfd_nocore_core_file_pid): New. * elf-bfd.h (bfd_elf32_core_file_pid, bfd_elf64_core_file_pid): Declare. * elfcode.h (elf_core_file_pid): New define. * elfcore.h (elf_core_file_pid): New function. * elf.c (elfcore_make_pid): Rewrite. (elfcore_grok_prstatus): Only set core_pid if not set yet. (elfcore_grok_prstatus) [!HAVE_PRSTATUS_T_PR_WHO]: Fallback to getting the lwpid from prstat.pr_pid. * elf64-x86-64.c (elf64_x86_64_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. (elf64_x86_64_grok_psinfo): Extract the the main process's PID, and store it in elf_tdata's core_pid field. * elf32-i386.c (elf_i386_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. (elf_i386_grok_psinfo): Extract the the main process's PID, and store it in elf_tdata's core_pid field. * elf32-am33lin.c (elf32_am33lin_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-arm.c (elf32_arm_nabi_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-cris.c (cris_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-frv.c (elf32_frv_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-hppa.c (elf32_hppa_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-ppc.c (ppc_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-s390.c (elf_s390_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-score.c (s3_bfd_score_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-score7.c (s7_bfd_score_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-sh.c (elf32_shlin_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-xtensa.c (elf_xtensa_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf64-hppa.c (elf64_hppa_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf64-mips.c (elf64_mips_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf64-ppc.c (ppc64_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elfn32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * plugin.c (bfd_plugin_core_file_pid): New function. * aout-target.h (MY_core_file_pid): Define. * aout-tic30.c (MY_core_file_pid, MY_core_file_p): New defines. * coff-rs6000.c (coff_core_file_pid): New define. (rs6000coff_vec, pmac_xcoff_vec): Use BFD_JUMP_TABLE_CORE. * coff64-rs6000.c (coff_core_file_pid): New define. (rs6000coff64_vec): Use BFD_JUMP_TABLE_CORE. (xcoff64_core_file_pid): New define. (aix5coff64_vec): Use BFD_JUMP_TABLE_CORE. * mach-o-target.c (bfd_mach_o_core_file_pid): New define. * aix386-core.c (aix386_core_file_pid): New define. * hppabsd-core.c (hppabsd_core_core_file_pid): New define. * hpux-core.c (hpux_core_core_file_pid): New define. * irix-core.c (irix_core_core_file_pid): New define. * lynx-core.c (lynx_core_file_pid): New define. * osf-core.c (osf_core_core_file_pid): New define. * ptrace-core.c (ptrace_unix_core_file_pid): New define. * sco5-core.c (sco5_core_file_pid): New define. * xcoff-target.h (coff_core_file_pid): New define. * netbsd-core.c (netbsd_core_core_file_pid): New define. gdb/ 2010-08-18 Pedro Alves PR corefile/8210 gdb/ * corelow.c (add_to_thread_list): Don't use gdbarch_core_reg_section_encodes_pid. Use bfd_core_file_pid. (get_core_register_section): Don't use gdbarch_core_reg_section_encodes_pid. * gdbarch.sh (core_reg_section_encodes_pid): Delete. * gdbarch.h, gdbarch.c: Regenerate. * amd64-sol2-tdep.c (amd64_sol2_init_abi): Don't set gdbarch_core_reg_section_encodes_pid. * i386-sol2-tdep.c (i386_sol2_init_abi): Ditto. * sparc-sol2-tdep.c (sparc32_sol2_init_abi): Ditto. * sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Ditto. --- bfd/ChangeLog | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++ bfd/aix386-core.c | 2 ++ bfd/aout-target.h | 3 ++ bfd/aout-tic30.c | 3 ++ bfd/bfd-in2.h | 10 +++++-- bfd/coff-rs6000.c | 12 ++++---- bfd/coff64-rs6000.c | 14 +++++---- bfd/corefile.c | 25 ++++++++++++++++ bfd/elf-bfd.h | 4 +++ bfd/elf.c | 22 ++++++++++---- bfd/elf32-am33lin.c | 2 +- bfd/elf32-arm.c | 2 +- bfd/elf32-cris.c | 4 +-- bfd/elf32-frv.c | 2 +- bfd/elf32-hppa.c | 2 +- bfd/elf32-i386.c | 6 ++-- bfd/elf32-mips.c | 2 +- bfd/elf32-ppc.c | 2 +- bfd/elf32-s390.c | 2 +- bfd/elf32-score.c | 2 +- bfd/elf32-score7.c | 2 +- bfd/elf32-sh.c | 2 +- bfd/elf32-xtensa.c | 2 +- bfd/elf64-hppa.c | 2 +- bfd/elf64-mips.c | 2 +- bfd/elf64-ppc.c | 2 +- bfd/elf64-x86-64.c | 4 ++- bfd/elfcode.h | 1 + bfd/elfcore.h | 6 ++++ bfd/elfn32-mips.c | 2 +- bfd/hppabsd-core.c | 1 + bfd/hpux-core.c | 1 + bfd/irix-core.c | 1 + bfd/libbfd-in.h | 2 ++ bfd/libbfd.c | 10 +++++++ bfd/libbfd.h | 2 ++ bfd/lynx-core.c | 1 + bfd/mach-o-target.c | 1 + bfd/netbsd-core.c | 1 + bfd/osf-core.c | 1 + bfd/plugin.c | 7 +++++ bfd/ptrace-core.c | 1 + bfd/sco5-core.c | 1 + bfd/targets.c | 4 ++- bfd/trad-core.c | 1 + bfd/xcoff-target.h | 1 + 46 files changed, 227 insertions(+), 41 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5f1805442..cfe91d979 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,89 @@ +2010-08-18 Pedro Alves + + PR corefile/8210 + + * bfd-in2.h: Regenerate. + * corefile.c (bfd_core_file_pid): New. + + * targets.c (BFD_JUMP_TABLE_CORE): Add NAME##_core_file_pid. + (struct bfd_target) <_core_file_pid>: New. + + * libbfd-in.h (_bfd_nocore_core_file_pid): Declare. + * libbfd.c (_bfd_nocore_core_file_pid): New. + + * elf-bfd.h (bfd_elf32_core_file_pid, bfd_elf64_core_file_pid): + Declare. + * elfcode.h (elf_core_file_pid): New define. + * elfcore.h (elf_core_file_pid): New function. + + * elf.c (elfcore_make_pid): Rewrite. + (elfcore_grok_prstatus): Only set core_pid if not set yet. + (elfcore_grok_prstatus) [!HAVE_PRSTATUS_T_PR_WHO]: Fallback to + getting the lwpid from prstat.pr_pid. + + * elf64-x86-64.c (elf64_x86_64_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + (elf64_x86_64_grok_psinfo): Extract the the main process's PID, + and store it in elf_tdata's core_pid field. + * elf32-i386.c (elf_i386_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + (elf_i386_grok_psinfo): Extract the the main process's PID, and + store it in elf_tdata's core_pid field. + + * elf32-am33lin.c (elf32_am33lin_grok_prstatus): Write the LWPID + to elf_tdata's core_lwpid instead of to core_pid. + * elf32-arm.c (elf32_arm_nabi_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-cris.c (cris_elf_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-frv.c (elf32_frv_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-hppa.c (elf32_hppa_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-ppc.c (ppc_elf_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-s390.c (elf_s390_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-score.c (s3_bfd_score_elf_grok_prstatus): Write the LWPID + to elf_tdata's core_lwpid instead of to core_pid. + * elf32-score7.c (s7_bfd_score_elf_grok_prstatus): Write the LWPID + to elf_tdata's core_lwpid instead of to core_pid. + * elf32-sh.c (elf32_shlin_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf32-xtensa.c (elf_xtensa_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf64-hppa.c (elf64_hppa_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf64-mips.c (elf64_mips_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elf64-ppc.c (ppc64_elf_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + * elfn32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to + elf_tdata's core_lwpid instead of to core_pid. + + * plugin.c (bfd_plugin_core_file_pid): New function. + * aout-target.h (MY_core_file_pid): Define. + * aout-tic30.c (MY_core_file_pid, MY_core_file_p): New defines. + * coff-rs6000.c (coff_core_file_pid): New define. + (rs6000coff_vec, pmac_xcoff_vec): Use BFD_JUMP_TABLE_CORE. + * coff64-rs6000.c (coff_core_file_pid): New define. + (rs6000coff64_vec): Use BFD_JUMP_TABLE_CORE. + (xcoff64_core_file_pid): New define. + (aix5coff64_vec): Use BFD_JUMP_TABLE_CORE. + * mach-o-target.c (bfd_mach_o_core_file_pid): New define. + * aix386-core.c (aix386_core_file_pid): New define. + * hppabsd-core.c (hppabsd_core_core_file_pid): New define. + * hpux-core.c (hpux_core_core_file_pid): New define. + * irix-core.c (irix_core_core_file_pid): New define. + * lynx-core.c (lynx_core_file_pid): New define. + * osf-core.c (osf_core_core_file_pid): New define. + * ptrace-core.c (ptrace_unix_core_file_pid): New define. + * sco5-core.c (sco5_core_file_pid): New define. + * xcoff-target.h (coff_core_file_pid): New define. + * netbsd-core.c (netbsd_core_core_file_pid): New define. + 2010-08-13 H.J. Lu PR ld/11913 diff --git a/bfd/aix386-core.c b/bfd/aix386-core.c index 4438e2801..634d997c6 100644 --- a/bfd/aix386-core.c +++ b/bfd/aix386-core.c @@ -211,6 +211,8 @@ aix386_core_file_failing_signal (abfd) #define aix386_core_file_matches_executable_p generic_core_file_matches_executable_p +#define aix386_core_file_pid _bfd_nocore_core_file_pid + /* If somebody calls any byte-swapping routines, shoot them. */ static void diff --git a/bfd/aout-target.h b/bfd/aout-target.h index fe1d66e87..516249478 100644 --- a/bfd/aout-target.h +++ b/bfd/aout-target.h @@ -401,6 +401,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #define MY_core_file_matches_executable_p \ _bfd_nocore_core_file_matches_executable_p #endif +#ifndef MY_core_file_pid +#define MY_core_file_pid _bfd_nocore_core_file_pid +#endif #ifndef MY_core_file_p #define MY_core_file_p _bfd_dummy_target #endif diff --git a/bfd/aout-tic30.c b/bfd/aout-tic30.c index 05e1a8019..5d5c7e23b 100644 --- a/bfd/aout-tic30.c +++ b/bfd/aout-tic30.c @@ -859,6 +859,9 @@ tic30_aout_set_arch_mach (bfd *abfd, #define MY_core_file_matches_executable_p \ _bfd_nocore_core_file_matches_executable_p #endif +#ifndef MY_core_file_pid +#define MY_core_file_pid _bfd_nocore_core_file_pid +#endif #ifndef MY_core_file_p #define MY_core_file_p _bfd_dummy_target #endif diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 277d4322d..0e7b337f7 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1977,8 +1977,8 @@ enum bfd_architecture #define bfd_mach_v850 1 #define bfd_mach_v850e 'E' #define bfd_mach_v850e1 '1' -#define bfd_mach_v850e2 0x4532 /* ('E'<<8|'2') */ -#define bfd_mach_v850e2v3 0x45325633 /* ('E'<<24|'2'<<16|'V'<<8|'3') */ +#define bfd_mach_v850e2 0x4532 +#define bfd_mach_v850e2v3 0x45325633 bfd_arch_arc, /* ARC Cores */ #define bfd_mach_arc_5 5 #define bfd_mach_arc_6 6 @@ -5412,6 +5412,8 @@ const char *bfd_core_file_failing_command (bfd *abfd); int bfd_core_file_failing_signal (bfd *abfd); +int bfd_core_file_pid (bfd *abfd); + bfd_boolean core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd); @@ -5608,11 +5610,13 @@ typedef struct bfd_target #define BFD_JUMP_TABLE_CORE(NAME) \ NAME##_core_file_failing_command, \ NAME##_core_file_failing_signal, \ - NAME##_core_file_matches_executable_p + NAME##_core_file_matches_executable_p, \ + NAME##_core_file_pid char * (*_core_file_failing_command) (bfd *); int (*_core_file_failing_signal) (bfd *); bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); + int (*_core_file_pid) (bfd *); /* Archive entry points. */ #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 37d668c97..7fb20d851 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -112,6 +112,8 @@ extern int rs6000coff_core_file_failing_signal rs6000coff_core_file_failing_signal #define coff_core_file_matches_executable_p \ rs6000coff_core_file_matches_executable_p +#define coff_core_file_pid \ + _bfd_nocore_core_file_pid #else #define CORE_FILE_P _bfd_dummy_target #define coff_core_file_failing_command \ @@ -120,6 +122,8 @@ extern int rs6000coff_core_file_failing_signal _bfd_nocore_core_file_failing_signal #define coff_core_file_matches_executable_p \ _bfd_nocore_core_file_matches_executable_p +#define coff_core_file_pid \ + _bfd_nocore_core_file_pid #endif #define coff_SWAP_sym_in _bfd_xcoff_swap_sym_in #define coff_SWAP_sym_out _bfd_xcoff_swap_sym_out @@ -4182,9 +4186,7 @@ const bfd_target rs6000coff_vec = _bfd_generic_bfd_print_private_bfd_data, /* Core */ - coff_core_file_failing_command, - coff_core_file_failing_signal, - coff_core_file_matches_executable_p, + BFD_JUMP_TABLE_CORE (coff), /* Archive */ _bfd_xcoff_slurp_armap, @@ -4437,9 +4439,7 @@ const bfd_target pmac_xcoff_vec = _bfd_generic_bfd_print_private_bfd_data, /* Core */ - coff_core_file_failing_command, - coff_core_file_failing_signal, - coff_core_file_matches_executable_p, + BFD_JUMP_TABLE_CORE (coff), /* Archive */ _bfd_xcoff_slurp_armap, diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index 99cbfb713..b154b6762 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -256,6 +256,8 @@ extern int rs6000coff_core_file_failing_signal rs6000coff_core_file_failing_signal #define coff_core_file_matches_executable_p \ rs6000coff_core_file_matches_executable_p +#define coff_core_file_pid \ + _bfd_nocore_core_file_pid #else #define CORE_FILE_P _bfd_dummy_target #define coff_core_file_failing_command \ @@ -264,6 +266,8 @@ extern int rs6000coff_core_file_failing_signal _bfd_nocore_core_file_failing_signal #define coff_core_file_matches_executable_p \ _bfd_nocore_core_file_matches_executable_p +#define coff_core_file_pid \ + _bfd_nocore_core_file_pid #endif #define coff_SWAP_sym_in _bfd_xcoff64_swap_sym_in #define coff_SWAP_sym_out _bfd_xcoff64_swap_sym_out @@ -2753,9 +2757,7 @@ const bfd_target rs6000coff64_vec = _bfd_generic_bfd_print_private_bfd_data, /* Core */ - coff_core_file_failing_command, - coff_core_file_failing_signal, - coff_core_file_matches_executable_p, + BFD_JUMP_TABLE_CORE (coff), /* Archive */ xcoff64_slurp_armap, @@ -2835,6 +2837,8 @@ extern char *xcoff64_core_file_failing_command PARAMS ((bfd *)); extern int xcoff64_core_file_failing_signal PARAMS ((bfd *)); +#define xcoff64_core_file_pid \ + _bfd_nocore_core_file_pid /* AIX 5 */ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data = @@ -3009,9 +3013,7 @@ const bfd_target aix5coff64_vec = _bfd_generic_bfd_print_private_bfd_data, /* Core */ - xcoff64_core_file_failing_command, - xcoff64_core_file_failing_signal, - xcoff64_core_file_matches_executable_p, + BFD_JUMP_TABLE_CORE (xcoff64), /* Archive */ xcoff64_slurp_armap, diff --git a/bfd/corefile.c b/bfd/corefile.c index 7802a3a3f..605be8d33 100644 --- a/bfd/corefile.c +++ b/bfd/corefile.c @@ -84,6 +84,31 @@ bfd_core_file_failing_signal (bfd *abfd) /* FUNCTION + bfd_core_file_pid + +SYNOPSIS + int bfd_core_file_pid (bfd *abfd); + +DESCRIPTION + + Returns the PID of the process the core dump the BFD + @var{abfd} is attached to was generated from. +*/ + +int +bfd_core_file_pid (bfd *abfd) +{ + if (abfd->format != bfd_core) + { + bfd_set_error (bfd_error_invalid_operation); + return 0; + } + return BFD_SEND (abfd, _core_file_pid, (abfd)); +} + + +/* +FUNCTION core_file_matches_executable_p SYNOPSIS diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 754e7335b..2220d4db5 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1989,6 +1989,8 @@ extern int bfd_elf32_core_file_failing_signal (bfd *); extern bfd_boolean bfd_elf32_core_file_matches_executable_p (bfd *, bfd *); +extern int bfd_elf32_core_file_pid + (bfd *); extern bfd_boolean bfd_elf32_swap_symbol_in (bfd *, const void *, const void *, Elf_Internal_Sym *); @@ -2033,6 +2035,8 @@ extern int bfd_elf64_core_file_failing_signal (bfd *); extern bfd_boolean bfd_elf64_core_file_matches_executable_p (bfd *, bfd *); +extern int bfd_elf64_core_file_pid + (bfd *); extern bfd_boolean bfd_elf64_swap_symbol_in (bfd *, const void *, const void *, Elf_Internal_Sym *); diff --git a/bfd/elf.c b/bfd/elf.c index 90fc3d128..f9f2dadb5 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -7519,13 +7519,19 @@ _bfd_elf_rel_vtable_reloc_fn # include #endif -/* FIXME: this is kinda wrong, but it's what gdb wants. */ +/* Return a PID that identifies a "thread" for threaded cores, or the + PID of the main process for non-threaded cores. */ static int elfcore_make_pid (bfd *abfd) { - return ((elf_tdata (abfd)->core_lwpid << 16) - + (elf_tdata (abfd)->core_pid)); + int pid; + + pid = elf_tdata (abfd)->core_lwpid; + if (pid == 0) + pid = elf_tdata (abfd)->core_pid; + + return pid; } /* If there isn't a section called NAME, make one, using @@ -7615,7 +7621,8 @@ elfcore_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) has already been set by another thread. */ if (elf_tdata (abfd)->core_signal == 0) elf_tdata (abfd)->core_signal = prstat.pr_cursig; - elf_tdata (abfd)->core_pid = prstat.pr_pid; + if (elf_tdata (abfd)->core_pid == 0) + elf_tdata (abfd)->core_pid = prstat.pr_pid; /* pr_who exists on: solaris 2.5+ @@ -7625,6 +7632,8 @@ elfcore_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) */ #if defined (HAVE_PRSTATUS_T_PR_WHO) elf_tdata (abfd)->core_lwpid = prstat.pr_who; +#else + elf_tdata (abfd)->core_lwpid = prstat.pr_pid; #endif } #if defined (HAVE_PRSTATUS32_T) @@ -7641,7 +7650,8 @@ elfcore_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) has already been set by another thread. */ if (elf_tdata (abfd)->core_signal == 0) elf_tdata (abfd)->core_signal = prstat.pr_cursig; - elf_tdata (abfd)->core_pid = prstat.pr_pid; + if (elf_tdata (abfd)->core_pid == 0) + elf_tdata (abfd)->core_pid = prstat.pr_pid; /* pr_who exists on: solaris 2.5+ @@ -7651,6 +7661,8 @@ elfcore_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) */ #if defined (HAVE_PRSTATUS32_T_PR_WHO) elf_tdata (abfd)->core_lwpid = prstat.pr_who; +#else + elf_tdata (abfd)->core_lwpid = prstat.pr_pid; #endif } #endif /* HAVE_PRSTATUS32_T */ diff --git a/bfd/elf32-am33lin.c b/bfd/elf32-am33lin.c index c3ec2dcc4..177a7140d 100644 --- a/bfd/elf32-am33lin.c +++ b/bfd/elf32-am33lin.c @@ -55,7 +55,7 @@ elf32_am33lin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index f6115bd24..0cd1e644e 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -1829,7 +1829,7 @@ elf32_arm_nabi_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index 1783ae3b6..0129d6a81 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -580,7 +580,7 @@ cris_elf_grok_prstatus (abfd, note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 22); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 22); /* pr_reg */ offset = 70; @@ -599,7 +599,7 @@ cris_elf_grok_prstatus (abfd, note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 22); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 22); /* pr_reg */ offset = 70; diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c index 8d940c089..811d5f5b3 100644 --- a/bfd/elf32-frv.c +++ b/bfd/elf32-frv.c @@ -6935,7 +6935,7 @@ elf32_frv_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* `pr_pid' is at offset 24. */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* `pr_reg' is at offset 72. */ offset = 72; diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index 32a374fbc..794de8282 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -1736,7 +1736,7 @@ elf32_hppa_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 4ba1ba035..581f218c8 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -419,7 +419,7 @@ elf_i386_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_32 (abfd, note->descdata + 20); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 28; @@ -437,7 +437,7 @@ elf_i386_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; @@ -475,6 +475,8 @@ elf_i386_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) return FALSE; case 124: /* Linux/i386 elf_prpsinfo. */ + elf_tdata (abfd)->core_pid + = bfd_get_32 (abfd, note->descdata + 12); elf_tdata (abfd)->core_program = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16); elf_tdata (abfd)->core_command diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index 515555791..aabf2847f 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -1506,7 +1506,7 @@ elf32_mips_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index e3638cd20..eb8d5404e 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -1858,7 +1858,7 @@ ppc_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c index 336ba36e8..4f9e0b336 100644 --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -3462,7 +3462,7 @@ elf_s390_grok_prstatus (abfd, note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c index b443b601a..f1f1aae1e 100644 --- a/bfd/elf32-score.c +++ b/bfd/elf32-score.c @@ -3917,7 +3917,7 @@ s3_bfd_score_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = score_bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = score_bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = score_bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c index 31784105f..85ce236a4 100644 --- a/bfd/elf32-score7.c +++ b/bfd/elf32-score7.c @@ -3734,7 +3734,7 @@ s7_bfd_score_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index bde565ee4..a4fdd7074 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -7438,7 +7438,7 @@ elf32_shlin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index 770d9a82d..12788ec5f 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -3802,7 +3802,7 @@ elf_xtensa_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c index 9ccb518db..e76593db3 100644 --- a/bfd/elf64-hppa.c +++ b/bfd/elf64-hppa.c @@ -2611,7 +2611,7 @@ elf64_hppa_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 32); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 32); /* pr_reg */ offset = 112; diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index 95186d4c3..33d7a87d1 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -3083,7 +3083,7 @@ elf64_mips_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 32); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 32); /* pr_reg */ offset = 112; diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index b6ef66004..954d18df3 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -2651,7 +2651,7 @@ ppc64_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 32); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 32); /* pr_reg */ offset = 112; diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 9899fd4a3..f11584b8a 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -308,7 +308,7 @@ elf64_x86_64_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 32); /* pr_reg */ @@ -332,6 +332,8 @@ elf64_x86_64_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) return FALSE; case 136: /* sizeof(struct elf_prpsinfo) on Linux/x86_64 */ + elf_tdata (abfd)->core_pid + = bfd_get_32 (abfd, note->descdata + 24); elf_tdata (abfd)->core_program = _bfd_elfcore_strndup (abfd, note->descdata + 40, 16); elf_tdata (abfd)->core_command diff --git a/bfd/elfcode.h b/bfd/elfcode.h index cd0645566..f7c89263e 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -87,6 +87,7 @@ #define elf_core_file_failing_signal NAME(bfd_elf,core_file_failing_signal) #define elf_core_file_matches_executable_p \ NAME(bfd_elf,core_file_matches_executable_p) +#define elf_core_file_pid NAME(bfd_elf,core_file_pid) #define elf_object_p NAME(bfd_elf,object_p) #define elf_core_file_p NAME(bfd_elf,core_file_p) #define elf_get_symtab_upper_bound NAME(bfd_elf,get_symtab_upper_bound) diff --git a/bfd/elfcore.h b/bfd/elfcore.h index 168c81ae2..81980c0fe 100644 --- a/bfd/elfcore.h +++ b/bfd/elfcore.h @@ -31,6 +31,12 @@ elf_core_file_failing_signal (bfd *abfd) return elf_tdata (abfd)->core_signal; } +int +elf_core_file_pid (bfd *abfd) +{ + return elf_tdata (abfd)->core_pid; +} + bfd_boolean elf_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd) { diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index a0725943e..0aa25e728 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -2332,7 +2332,7 @@ elf32_mips_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ - elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24); + elf_tdata (abfd)->core_lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; diff --git a/bfd/hppabsd-core.c b/bfd/hppabsd-core.c index 9cac968dd..152d464d1 100644 --- a/bfd/hppabsd-core.c +++ b/bfd/hppabsd-core.c @@ -59,6 +59,7 @@ static char *hppabsd_core_core_file_failing_command static int hppabsd_core_core_file_failing_signal PARAMS ((bfd *)); #define hppabsd_core_core_file_matches_executable_p generic_core_file_matches_executable_p +#define hppabsd_core_core_file_pid _bfd_nocore_core_file_pid static void swap_abort PARAMS ((void)); diff --git a/bfd/hpux-core.c b/bfd/hpux-core.c index fdcde7e54..519901430 100644 --- a/bfd/hpux-core.c +++ b/bfd/hpux-core.c @@ -103,6 +103,7 @@ struct hpux_core_struct #define core_kernel_thread_id(bfd) (core_hdr(bfd)->lwpid) #define core_user_thread_id(bfd) (core_hdr(bfd)->user_tid) #define hpux_core_core_file_matches_executable_p generic_core_file_matches_executable_p +#define hpux_core_core_file_pid _bfd_nocore_core_file_pid static asection *make_bfd_asection (bfd *, const char *, flagword, bfd_size_type, bfd_vma, unsigned int); diff --git a/bfd/irix-core.c b/bfd/irix-core.c index 1feff87cf..eb930a4d2 100644 --- a/bfd/irix-core.c +++ b/bfd/irix-core.c @@ -44,6 +44,7 @@ struct sgi_core_struct #define core_command(bfd) (core_hdr(bfd)->cmd) #define irix_core_core_file_matches_executable_p generic_core_file_matches_executable_p +#define irix_core_core_file_pid _bfd_nocore_core_file_pid static asection *make_bfd_asection (bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr); diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h index 87a73b462..b5b614c96 100644 --- a/bfd/libbfd-in.h +++ b/bfd/libbfd-in.h @@ -270,6 +270,8 @@ extern int _bfd_nocore_core_file_failing_signal (bfd *); extern bfd_boolean _bfd_nocore_core_file_matches_executable_p (bfd *, bfd *); +extern int _bfd_nocore_core_file_pid + (bfd *); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */ diff --git a/bfd/libbfd.c b/bfd/libbfd.c index b378622b6..5146d9525 100644 --- a/bfd/libbfd.c +++ b/bfd/libbfd.c @@ -150,6 +150,16 @@ _bfd_nocore_core_file_failing_signal (bfd *ignore_abfd ATTRIBUTE_UNUSED) return 0; } +/* Routine to handle the core_file_pid entry point for targets without + core file support. */ + +int +_bfd_nocore_core_file_pid (bfd *ignore_abfd ATTRIBUTE_UNUSED) +{ + bfd_set_error (bfd_error_invalid_operation); + return 0; +} + const bfd_target * _bfd_dummy_target (bfd *ignore_abfd ATTRIBUTE_UNUSED) { diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 94bbd8ef5..fb95c40c1 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -275,6 +275,8 @@ extern int _bfd_nocore_core_file_failing_signal (bfd *); extern bfd_boolean _bfd_nocore_core_file_matches_executable_p (bfd *, bfd *); +extern int _bfd_nocore_core_file_pid + (bfd *); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */ diff --git a/bfd/lynx-core.c b/bfd/lynx-core.c index a432566a9..ab6a83401 100644 --- a/bfd/lynx-core.c +++ b/bfd/lynx-core.c @@ -53,6 +53,7 @@ struct lynx_core_struct #define core_command(bfd) (core_hdr(bfd)->cmd) #define lynx_core_file_matches_executable_p generic_core_file_matches_executable_p +#define lynx_core_file_pid _bfd_nocore_core_file_pid /* Handle Lynx core dump file. */ diff --git a/bfd/mach-o-target.c b/bfd/mach-o-target.c index c9b974e8a..64c7ddf5b 100644 --- a/bfd/mach-o-target.c +++ b/bfd/mach-o-target.c @@ -58,6 +58,7 @@ #define bfd_mach_o_bfd_define_common_symbol bfd_generic_define_common_symbol #define bfd_mach_o_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #define bfd_mach_o_core_file_matches_executable_p generic_core_file_matches_executable_p +#define bfd_mach_o_core_file_pid _bfd_nocore_core_file_pid #define bfd_mach_o_get_dynamic_symtab_upper_bound bfd_mach_o_get_symtab_upper_bound #define bfd_mach_o_canonicalize_dynamic_symtab bfd_mach_o_canonicalize_symtab diff --git a/bfd/netbsd-core.c b/bfd/netbsd-core.c index 397f1d086..2458a8450 100644 --- a/bfd/netbsd-core.c +++ b/bfd/netbsd-core.c @@ -44,6 +44,7 @@ #define SPARC64_WCOOKIE_OFFSET 832 #define netbsd_core_file_matches_executable_p generic_core_file_matches_executable_p +#define netbsd_core_core_file_pid _bfd_nocore_core_file_pid struct netbsd_core_struct { diff --git a/bfd/osf-core.c b/bfd/osf-core.c index 513e52afc..0ebbd1d4a 100644 --- a/bfd/osf-core.c +++ b/bfd/osf-core.c @@ -43,6 +43,7 @@ static char *osf_core_core_file_failing_command static int osf_core_core_file_failing_signal PARAMS ((bfd *)); #define osf_core_core_file_matches_executable_p generic_core_file_matches_executable_p +#define osf_core_core_file_pid _bfd_nocore_core_file_pid static void swap_abort PARAMS ((void)); diff --git a/bfd/plugin.c b/bfd/plugin.c index 91bbfd1ff..4c24a7f6a 100644 --- a/bfd/plugin.c +++ b/bfd/plugin.c @@ -319,6 +319,13 @@ bfd_plugin_core_file_failing_signal (bfd *abfd ATTRIBUTE_UNUSED) return 0; } +static int +bfd_plugin_core_file_pid (bfd *abfd ATTRIBUTE_UNUSED) +{ + BFD_ASSERT (0); + return 0; +} + static long bfd_plugin_get_symtab_upper_bound (bfd *abfd) { diff --git a/bfd/ptrace-core.c b/bfd/ptrace-core.c index ce621547f..77eaaeb46 100644 --- a/bfd/ptrace-core.c +++ b/bfd/ptrace-core.c @@ -53,6 +53,7 @@ const bfd_target *ptrace_unix_core_file_p PARAMS ((bfd *abfd)); char * ptrace_unix_core_file_failing_command PARAMS ((bfd *abfd)); int ptrace_unix_core_file_failing_signal PARAMS ((bfd *abfd)); #define ptrace_unix_core_file_matches_executable_p generic_core_file_matches_executable_p +#define ptrace_unix_core_file_pid _bfd_nocore_core_file_pid static void swap_abort PARAMS ((void)); const bfd_target * diff --git a/bfd/sco5-core.c b/bfd/sco5-core.c index 4b85fa5e6..7f51a6f40 100644 --- a/bfd/sco5-core.c +++ b/bfd/sco5-core.c @@ -51,6 +51,7 @@ const bfd_target *sco5_core_file_p PARAMS ((bfd *abfd)); char *sco5_core_file_failing_command PARAMS ((bfd *abfd)); int sco5_core_file_failing_signal PARAMS ((bfd *abfd)); #define sco5_core_file_matches_executable_p generic_core_file_matches_executable_p +#define sco5_core_file_pid _bfd_nocore_core_file_pid static void swap_abort PARAMS ((void)); static asection * diff --git a/bfd/targets.c b/bfd/targets.c index bb20189bf..aaf7e99c6 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -314,11 +314,13 @@ BFD_JUMP_TABLE macros. .#define BFD_JUMP_TABLE_CORE(NAME) \ . NAME##_core_file_failing_command, \ . NAME##_core_file_failing_signal, \ -. NAME##_core_file_matches_executable_p +. NAME##_core_file_matches_executable_p, \ +. NAME##_core_file_pid . . char * (*_core_file_failing_command) (bfd *); . int (*_core_file_failing_signal) (bfd *); . bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); +. int (*_core_file_pid) (bfd *); . . {* Archive entry points. *} .#define BFD_JUMP_TABLE_ARCHIVE(NAME) \ diff --git a/bfd/trad-core.c b/bfd/trad-core.c index e34851431..e06b56151 100644 --- a/bfd/trad-core.c +++ b/bfd/trad-core.c @@ -71,6 +71,7 @@ const bfd_target *trad_unix_core_file_p PARAMS ((bfd *abfd)); char * trad_unix_core_file_failing_command PARAMS ((bfd *abfd)); int trad_unix_core_file_failing_signal PARAMS ((bfd *abfd)); #define trad_unix_core_file_matches_executable_p generic_core_file_matches_executable_p +#define trad_unix_core_file_pid _bfd_nocore_core_file_pid static void swap_abort PARAMS ((void)); /* Handle 4.2-style (and perhaps also sysV-style) core dump file. */ diff --git a/bfd/xcoff-target.h b/bfd/xcoff-target.h index 4837fdff7..b723eb706 100644 --- a/bfd/xcoff-target.h +++ b/bfd/xcoff-target.h @@ -51,6 +51,7 @@ #define coff_core_file_failing_command _bfd_nocore_core_file_failing_command #define coff_core_file_failing_signal _bfd_nocore_core_file_failing_signal #define coff_core_file_matches_executable_p _bfd_nocore_core_file_matches_executable_p +#define coff_core_file_pid _bfd_nocore_core_file_pid #define _bfd_xcoff_bfd_get_relocated_section_contents coff_bfd_get_relocated_section_contents #define _bfd_xcoff_bfd_relax_section coff_bfd_relax_section #define _bfd_xcoff_bfd_gc_sections coff_bfd_gc_sections -- 2.11.4.GIT