From 6ea7de3237f0780065e6c17cd2d123792410c16b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sep 23 2019 00:57:21 +0000 Subject: 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. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 696eeac..3d30d75 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,13 @@ 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.. * coff-bfd.h: ..to here. * bfd-in2.h: Regenerate. diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index a629a84..45858e0 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 e7537f7..d78fab3 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 bdbb499..86cf9e3 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 5269172..91e0041 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 0000000..5d1792e --- /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 f0fcd20..5a20bf0 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,9 @@ 2019-09-23 Alan Modra + * emultempl/aix.em: Include xcofflink.h. + +2019-09-23 Alan Modra + * emultempl/armelf.em: Include elf32-arm.h. * emultempl/pe.em: Move func defines later and include coff-arm.h. diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index 1ce8376..96e84f9 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -55,6 +55,7 @@ fragment <