From 6ea7de3237f0780065e6c17cd2d123792410c16b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 23 Sep 2019 10:08:33 +0930 Subject: [PATCH] xcoff bfd.h tidy bfd/ * bfd-in.h: Move xcoff function declarations.. * xcofflink.h: ..to here, new file. * xcofflink.c: Include xcofflink.h. * coff-rs6000.c (bfd_xcoff_ar_archive_set_magic): Delete unused func. * bfd-in2.h: Regenerate. ld/ * emultempl/aix.em: Include xcofflink.h. --- bfd/ChangeLog | 8 ++++++++ bfd/bfd-in.h | 28 ---------------------------- bfd/bfd-in2.h | 28 ---------------------------- bfd/coff-rs6000.c | 14 -------------- bfd/xcofflink.c | 1 + bfd/xcofflink.h | 41 +++++++++++++++++++++++++++++++++++++++++ ld/ChangeLog | 4 ++++ ld/emultempl/aix.em | 1 + 8 files changed, 55 insertions(+), 70 deletions(-) create mode 100644 bfd/xcofflink.h diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 696eeacc559..3d30d759a1a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2019-09-23 Alan Modra + + * bfd-in.h: Move xcoff function declarations.. + * xcofflink.h: ..to here, new file. + * xcofflink.c: Include xcofflink.h. + * coff-rs6000.c (bfd_xcoff_ar_archive_set_magic): Delete unused func. + * bfd-in2.h: Regenerate. + 2019-09-23 Alan Modra * bfd-in.h: Delete coff forward refs and move coff declaration.. diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index a629a8430df..45858e08b94 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -725,31 +725,3 @@ extern void bfd_free_window (bfd_window *); extern bfd_boolean bfd_get_file_window (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean); - -/* XCOFF support routines for the linker. */ - -extern bfd_boolean bfd_xcoff_split_import_path - (bfd *, const char *, const char **, const char **); -extern bfd_boolean bfd_xcoff_set_archive_import_path - (struct bfd_link_info *, bfd *, const char *); -extern bfd_boolean bfd_xcoff_link_record_set - (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); -extern bfd_boolean bfd_xcoff_import_symbol - (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, - const char *, const char *, const char *, unsigned int); -extern bfd_boolean bfd_xcoff_export_symbol - (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); -extern bfd_boolean bfd_xcoff_link_count_reloc - (bfd *, struct bfd_link_info *, const char *); -extern bfd_boolean bfd_xcoff_record_link_assignment - (bfd *, struct bfd_link_info *, const char *); -extern bfd_boolean bfd_xcoff_size_dynamic_sections - (bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, bfd_boolean, - int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean); -extern bfd_boolean bfd_xcoff_link_generate_rtinit - (bfd *, const char *, const char *, bfd_boolean); - -/* XCOFF support routines for ar. */ -extern bfd_boolean bfd_xcoff_ar_archive_set_magic - (bfd *, char *); diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index e7537f7eaff..d78fab3b6c8 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -732,34 +732,6 @@ extern void bfd_free_window (bfd_window *); extern bfd_boolean bfd_get_file_window (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean); - -/* XCOFF support routines for the linker. */ - -extern bfd_boolean bfd_xcoff_split_import_path - (bfd *, const char *, const char **, const char **); -extern bfd_boolean bfd_xcoff_set_archive_import_path - (struct bfd_link_info *, bfd *, const char *); -extern bfd_boolean bfd_xcoff_link_record_set - (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); -extern bfd_boolean bfd_xcoff_import_symbol - (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, - const char *, const char *, const char *, unsigned int); -extern bfd_boolean bfd_xcoff_export_symbol - (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); -extern bfd_boolean bfd_xcoff_link_count_reloc - (bfd *, struct bfd_link_info *, const char *); -extern bfd_boolean bfd_xcoff_record_link_assignment - (bfd *, struct bfd_link_info *, const char *); -extern bfd_boolean bfd_xcoff_size_dynamic_sections - (bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, bfd_boolean, - int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean); -extern bfd_boolean bfd_xcoff_link_generate_rtinit - (bfd *, const char *, const char *, bfd_boolean); - -/* XCOFF support routines for ar. */ -extern bfd_boolean bfd_xcoff_ar_archive_set_magic - (bfd *, char *); /* Extracted from init.c. */ unsigned int bfd_init (void); diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index bdbb499a4ab..86cf9e3e2a0 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -1169,20 +1169,6 @@ _bfd_xcoff_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, to take care that we are not generating the new form of archives on AIX 4.2 or earlier systems. */ -/* XCOFF archives use this as a magic string. Note that both strings - have the same length. */ - -/* Set the magic for archive. */ - -bfd_boolean -bfd_xcoff_ar_archive_set_magic (bfd *abfd ATTRIBUTE_UNUSED, - char *magic ATTRIBUTE_UNUSED) -{ - /* Not supported yet. */ - return FALSE; - /* bfd_xcoff_archive_set_magic (abfd, magic); */ -} - /* PR 21786: The PE/COFF standard does not require NUL termination for any of the ASCII fields in the archive headers. So in order to be able to extract numerical values we provide our own versions of strtol and strtoll which diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index 52691720aea..91e0041ea18 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -28,6 +28,7 @@ #include "libcoff.h" #include "libxcoff.h" #include "libiberty.h" +#include "xcofflink.h" /* This file holds the XCOFF linker code. */ diff --git a/bfd/xcofflink.h b/bfd/xcofflink.h new file mode 100644 index 00000000000..5d1792e9628 --- /dev/null +++ b/bfd/xcofflink.h @@ -0,0 +1,41 @@ +/* POWER/PowerPC XCOFF linker support. + Copyright (C) 2019 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +extern bfd_boolean bfd_xcoff_split_import_path + (bfd *, const char *, const char **, const char **); +extern bfd_boolean bfd_xcoff_set_archive_import_path + (struct bfd_link_info *, bfd *, const char *); +extern bfd_boolean bfd_xcoff_link_record_set + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); +extern bfd_boolean bfd_xcoff_import_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, + const char *, const char *, const char *, unsigned int); +extern bfd_boolean bfd_xcoff_export_symbol + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); +extern bfd_boolean bfd_xcoff_link_count_reloc + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_xcoff_record_link_assignment + (bfd *, struct bfd_link_info *, const char *); +extern bfd_boolean bfd_xcoff_size_dynamic_sections + (bfd *, struct bfd_link_info *, const char *, const char *, + unsigned long, unsigned long, unsigned long, bfd_boolean, + int, bfd_boolean, unsigned int, struct bfd_section **, bfd_boolean); +extern bfd_boolean bfd_xcoff_link_generate_rtinit + (bfd *, const char *, const char *, bfd_boolean); diff --git a/ld/ChangeLog b/ld/ChangeLog index f0fcd202e9d..5a20bf06ccd 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2019-09-23 Alan Modra + + * emultempl/aix.em: Include xcofflink.h. + 2019-09-23 Alan Modra * emultempl/armelf.em: Include elf32-arm.h. diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index 1ce8376a52a..96e84f9e62b 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -55,6 +55,7 @@ fragment <