This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: An rs6000 patch for bfd
- To: "H . J . Lu" <hjl at lucon dot org>
- Subject: Re: An rs6000 patch for bfd
- From: Tom Rix <trix at redhat dot com>
- Date: Tue, 29 May 2001 08:42:33 -0500
- CC: binutils at sourceware dot cygnus dot com
- Organization: GCC
- References: <20010525143001.B15080@lucon.org>
This looks ok with me, aix 4.3.3 builds...
Fixes undefined core functions.
Tom
"H . J . Lu" wrote:
>
> Hi Tom,
>
> Your rs6000 change breaks ppc-linux. I checked in the following patch.
> Please double check it.
>
> Thanks.
>
> H.J.
> ----
> 2001-05-25 H.J. Lu <hjl@gnu.org>
>
> * coff-rs6000.c (rs6000coff_vec): Use rs6000coff_core_p,
> rs6000coff_core_file_matches_executable_p,
> rs6000coff_core_file_failing_command and
> rs6000coff_core_file_failing_signal only if AIX_CORE is
> defined.
> (pmac_xcoff_vec): Likewise.
> * coff64-rs6000.c (rs6000coff64_vec): Likewise.
>
> Index: coff-rs6000.c
> ===================================================================
> RCS file: /work/cvs/gnu/binutils/bfd/coff-rs6000.c,v
> retrieving revision 1.1.1.15
> diff -u -p -r1.1.1.15 coff-rs6000.c
> --- coff-rs6000.c 2001/05/25 04:22:40 1.1.1.15
> +++ coff-rs6000.c 2001/05/25 21:19:56
> @@ -37,10 +37,6 @@ Foundation, Inc., 59 Temple Place - Suit
> #include "libcoff.h"
> #include "libxcoff.h"
>
> -extern const bfd_target * rs6000coff_core_p ();
> -extern boolean rs6000coff_core_file_matches_executable_p ();
> -extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd));
> -extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
> extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *));
> extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *));
> extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *));
> @@ -84,7 +80,27 @@ void _bfd_xcoff_rtype2howto PARAMS ((are
> #define coff_bfd_copy_private_bfd_data _bfd_xcoff_copy_private_bfd_data
> #define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name
> #define coff_bfd_reloc_type_lookup _bfd_xcoff_reloc_type_lookup
> +#ifdef AIX_CORE
> +extern const bfd_target * rs6000coff_core_p ();
> +extern boolean rs6000coff_core_file_matches_executable_p ();
> +extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd));
> +extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
> #define CORE_FILE_P rs6000coff_core_p
> +#define coff_core_file_failing_command \
> + rs6000coff_core_file_failing_command
> +#define coff_core_file_failing_signal \
> + rs6000coff_core_file_failing_signal
> +#define coff_core_file_matches_executable_p \
> + rs6000coff_core_file_matches_executable_p
> +#else
> +#define CORE_FILE_P _bfd_dummy_target
> +#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
> +#endif
> #define coff_SWAP_sym_in _bfd_xcoff_swap_sym_in
> #define coff_SWAP_sym_out _bfd_xcoff_swap_sym_out
> #define coff_SWAP_aux_in _bfd_xcoff_swap_aux_in
> @@ -3050,10 +3066,10 @@ const bfd_target rs6000coff_vec =
> ((boolean (*) (bfd *, void * )) bfd_true), /* _bfd_print_private_bfd_data */
>
> /* Core */
> - rs6000coff_core_file_failing_command, /* _core_file_failing_command */
> - rs6000coff_core_file_failing_signal, /* _core_file_failing_signal */
> + coff_core_file_failing_command, /* _core_file_failing_command */
> + coff_core_file_failing_signal, /* _core_file_failing_signal */
> /* _core_file_matches_executable_p */
> - rs6000coff_core_file_matches_executable_p,
> + coff_core_file_matches_executable_p,
>
> /* Archive */
> _bfd_xcoff_slurp_armap, /* _slurp_armap */
> @@ -3307,10 +3323,10 @@ const bfd_target pmac_xcoff_vec =
> ((boolean (*) (bfd *, void * )) bfd_true), /* _bfd_print_private_bfd_data */
>
> /* Core */
> - rs6000coff_core_file_failing_command, /* _core_file_failing_command */
> - rs6000coff_core_file_failing_signal, /* _core_file_failing_signal */
> + coff_core_file_failing_command, /* _core_file_failing_command */
> + coff_core_file_failing_signal, /* _core_file_failing_signal */
> /* _core_file_matches_executable_p */
> - rs6000coff_core_file_matches_executable_p,
> + coff_core_file_matches_executable_p,
>
> /* Archive */
> _bfd_xcoff_slurp_armap, /* _slurp_armap */
> Index: coff64-rs6000.c
> ===================================================================
> RCS file: /work/cvs/gnu/binutils/bfd/coff64-rs6000.c,v
> retrieving revision 1.1.1.7
> diff -u -p -r1.1.1.7 coff64-rs6000.c
> --- coff64-rs6000.c 2001/05/25 04:22:41 1.1.1.7
> +++ coff64-rs6000.c 2001/05/25 21:19:56
> @@ -410,10 +410,6 @@ _bfd_xcoff64_put_ldsymbol_name (abfd, ld
> return true;
> }
>
> -extern const bfd_target * rs6000coff_core_p ();
> -extern boolean rs6000coff_core_file_matches_executable_p ();
> -extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd));
> -extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
> extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *));
> extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *));
> extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *));
> @@ -457,7 +453,27 @@ extern unsigned int _bfd_xcoff_swap_aux_
> #define coff_bfd_copy_private_bfd_data _bfd_xcoff_copy_private_bfd_data
> #define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name
> #define coff_bfd_reloc_type_lookup xcoff64_reloc_type_lookup
> +#ifdef AIX_CORE
> +extern const bfd_target * rs6000coff_core_p ();
> +extern boolean rs6000coff_core_file_matches_executable_p ();
> +extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd));
> +extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd));
> #define CORE_FILE_P rs6000coff_core_p
> +#define coff_core_file_failing_command \
> + rs6000coff_core_file_failing_command
> +#define coff_core_file_failing_signal \
> + rs6000coff_core_file_failing_signal
> +#define coff_core_file_matches_executable_p \
> + rs6000coff_core_file_matches_executable_p
> +#else
> +#define CORE_FILE_P _bfd_dummy_target
> +#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
> +#endif
> #define coff_SWAP_sym_in _bfd_xcoff64_swap_sym_in
> #define coff_SWAP_sym_out _bfd_xcoff64_swap_sym_out
> #define coff_SWAP_aux_in _bfd_xcoff64_swap_aux_in
> @@ -2146,7 +2162,7 @@ const bfd_target rs6000coff64_vec =
> _bfd_dummy_target,
> coff_object_p,
> xcoff64_archive_p,
> - rs6000coff_core_p
> + CORE_FILE_P
> },
>
> { /* bfd_set_format */
> @@ -2183,10 +2199,10 @@ const bfd_target rs6000coff64_vec =
> ((boolean (*) (bfd *, void * )) bfd_true), /* _bfd_print_private_bfd_data */
>
> /* Core */
> - rs6000coff_core_file_failing_command, /* _core_file_failing_command */
> - rs6000coff_core_file_failing_signal, /* _core_file_failing_signal */
> + coff_core_file_failing_command, /* _core_file_failing_command */
> + coff_core_file_failing_signal, /* _core_file_failing_signal */
> /* _core_file_matches_executable_p */
> - rs6000coff_core_file_matches_executable_p,
> + coff_core_file_matches_executable_p,
>
> /* Archive */
> xcoff64_slurp_armap, /* _slurp_armap */
--
Tom Rix
GCC Engineer
trix@redhat.com
256.704.9201