. least-recently-used list of BFDs. *}
. struct bfd *lru_prev, *lru_next;
.
-. {* When a file is closed by the caching routines, BFD retains
-. state information on the file here... *}
+. {* Track current file position (or current buffer offset for
+. in-memory BFDs). When a file is closed by the caching routines,
+. BFD retains state information on the file here. *}
. ufile_ptr where;
.
. {* File modified time, if mtime_set is TRUE. *}
. {
. struct aout_data_struct *aout_data;
. struct artdata *aout_ar_data;
-. struct _oasys_data *oasys_obj_data;
-. struct _oasys_ar_data *oasys_ar_data;
. struct coff_tdata *coff_obj_data;
. struct pe_tdata *pe_obj_data;
. struct xcoff_tdata *xcoff_obj_data;
. struct ecoff_tdata *ecoff_obj_data;
-. struct ieee_data_struct *ieee_data;
-. struct ieee_ar_data_struct *ieee_ar_data;
. struct srec_data_struct *srec_data;
. struct verilog_data_struct *verilog_data;
. struct ihex_data_struct *ihex_data;
. struct tekhex_data_struct *tekhex_data;
. struct elf_obj_tdata *elf_obj_data;
-. struct nlm_obj_tdata *nlm_obj_data;
. struct mmo_data_struct *mmo_data;
. struct sun_core_struct *sun_core_data;
. struct sco5_core_struct *sco5_core_data;
return arg_count;
}
-/* This is the default routine to handle BFD error messages.
- Like fprintf (stderr, ...), but also handles some extra format specifiers.
-
- %pA section name from section. For group components, prints group name too.
- %pB file name from bfd. For archive components, prints archive too.
-
- Beware: Only supports a maximum of 9 format arguments. */
-
static void
error_handler_internal (const char *fmt, va_list ap)
{
static bfd_error_handler_type _bfd_error_internal = error_handler_internal;
+/*
+FUNCTION
+ _bfd_error_handler
+
+SYNOPSIS
+ void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1;
+
+DESCRIPTION
+ This is the default routine to handle BFD error messages.
+ Like fprintf (stderr, ...), but also handles some extra format
+ specifiers.
+
+ %pA section name from section. For group components, prints
+ group name too.
+ %pB file name from bfd. For archive components, prints
+ archive too.
+
+ Beware: Only supports a maximum of 9 format arguments.
+*/
+
void
_bfd_error_handler (const char *fmt, ...)
{
{
bfd_size_type hdr_size;
- /* Do nothing if input file will be decompressed. */
- if ((ibfd->flags & BFD_DECOMPRESS))
- return size;
-
/* Do nothing if either input or output aren't ELF. */
if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
== get_elf_backend_data (obfd)->s->elfclass)
return size;
+ /* Convert GNU property size. */
+ if (CONST_STRNEQ (isec->name, NOTE_GNU_PROPERTY_SECTION_NAME))
+ return _bfd_elf_convert_gnu_property_size (ibfd, obfd);
+
+ /* Do nothing if input file will be decompressed. */
+ if ((ibfd->flags & BFD_DECOMPRESS))
+ return size;
+
/* Do nothing if the input section isn't a SHF_COMPRESSED section. */
hdr_size = bfd_get_compression_header_size (ibfd, isec);
if (hdr_size == 0)
Elf_Internal_Chdr chdr;
bfd_boolean use_memmove;
- /* Do nothing if input file will be decompressed. */
- if ((ibfd->flags & BFD_DECOMPRESS))
- return TRUE;
-
/* Do nothing if either input or output aren't ELF. */
if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
== get_elf_backend_data (obfd)->s->elfclass)
return TRUE;
+ /* Convert GNU properties. */
+ if (CONST_STRNEQ (isec->name, NOTE_GNU_PROPERTY_SECTION_NAME))
+ return _bfd_elf_convert_gnu_properties (ibfd, isec, obfd, ptr,
+ ptr_size);
+
+ /* Do nothing if input file will be decompressed. */
+ if ((ibfd->flags & BFD_DECOMPRESS))
+ return TRUE;
+
/* Do nothing if the input section isn't a SHF_COMPRESSED section. */
ihdr_size = bfd_get_compression_header_size (ibfd, isec);
if (ihdr_size == 0)