summaryrefslogtreecommitdiff
path: root/bfd/coffcode.h
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-06-15 09:03:14 +0000
committerNick Clifton <nickc@redhat.com>2001-06-15 09:03:14 +0000
commit7c8ca0e48870359d2841611bb4550b2edbcbff95 (patch)
tree482660bfe3ed9355b8fe0896e0d0420b796b2489 /bfd/coffcode.h
parent6770ec8c9e2d99d05dee69c17c6458ba242bdfa1 (diff)
downloadbinutils-gdb-7c8ca0e48870359d2841611bb4550b2edbcbff95.tar.gz
Chnage styp_flags_to_sec_flags() to a boolean function
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r--bfd/coffcode.h78
1 files changed, 39 insertions, 39 deletions
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 6aafa50d26b..5985404cacb 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -312,8 +312,8 @@ CODE_FRAGMENT
#define STRING_SIZE_SIZE (4)
static long sec_to_styp_flags PARAMS ((const char *, flagword));
-static flagword styp_to_sec_flags
- PARAMS ((bfd *, PTR, const char *, asection *));
+static boolean styp_to_sec_flags
+ PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
static boolean coff_bad_format_hook PARAMS ((bfd *, PTR));
static void coff_set_custom_section_alignment
PARAMS ((bfd *, asection *, const struct coff_section_alignment_entry *,
@@ -553,12 +553,13 @@ sec_to_styp_flags (sec_name, sec_flags)
#ifndef COFF_WITH_PE
-static flagword
-styp_to_sec_flags (abfd, hdr, name, section)
+static boolean
+styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
bfd *abfd ATTRIBUTE_UNUSED;
PTR hdr;
const char *name;
asection *section ATTRIBUTE_UNUSED;
+ flagword *flags_ptr;
{
struct internal_scnhdr *internal_s = (struct internal_scnhdr *) hdr;
long styp_flags = internal_s->s_flags;
@@ -566,19 +567,17 @@ styp_to_sec_flags (abfd, hdr, name, section)
#ifdef STYP_BLOCK
if (styp_flags & STYP_BLOCK)
- sec_flags |= SEC_BLOCK;
+ sec_flags |= SEC_BLOCK;
#endif
#ifdef STYP_CLINK
if (styp_flags & STYP_CLINK)
- sec_flags |= SEC_CLINK;
+ sec_flags |= SEC_CLINK;
#endif
#ifdef STYP_NOLOAD
if (styp_flags & STYP_NOLOAD)
- {
- sec_flags |= SEC_NEVER_LOAD;
- }
+ sec_flags |= SEC_NEVER_LOAD;
#endif /* STYP_NOLOAD */
/* For 386 COFF, at least, an unloadable text or data section is
@@ -619,9 +618,7 @@ styp_to_sec_flags (abfd, hdr, name, section)
#endif
}
else if (styp_flags & STYP_PAD)
- {
- sec_flags = 0;
- }
+ sec_flags = 0;
else if (strcmp (name, _TEXT) == 0)
{
if (sec_flags & SEC_NEVER_LOAD)
@@ -664,26 +661,19 @@ styp_to_sec_flags (abfd, hdr, name, section)
#endif
#ifdef _LIT
else if (strcmp (name, _LIT) == 0)
- {
- sec_flags = SEC_LOAD | SEC_ALLOC | SEC_READONLY;
- }
+ sec_flags = SEC_LOAD | SEC_ALLOC | SEC_READONLY;
#endif
else
- {
- sec_flags |= SEC_ALLOC | SEC_LOAD;
- }
+ sec_flags |= SEC_ALLOC | SEC_LOAD;
#ifdef STYP_LIT /* A29k readonly text/data section type */
if ((styp_flags & STYP_LIT) == STYP_LIT)
- {
- sec_flags = (SEC_LOAD | SEC_ALLOC | SEC_READONLY);
- }
+ sec_flags = (SEC_LOAD | SEC_ALLOC | SEC_READONLY);
#endif /* STYP_LIT */
+
#ifdef STYP_OTHER_LOAD /* Other loaded sections */
if (styp_flags & STYP_OTHER_LOAD)
- {
- sec_flags = (SEC_LOAD | SEC_ALLOC);
- }
+ sec_flags = (SEC_LOAD | SEC_ALLOC);
#endif /* STYP_SDATA */
#if defined (COFF_LONG_SECTION_NAMES) && defined (COFF_SUPPORT_GNU_LINKONCE)
@@ -697,7 +687,11 @@ styp_to_sec_flags (abfd, hdr, name, section)
sec_flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
#endif
- return sec_flags;
+ if (flags_ptr == NULL)
+ return false;
+
+ * flags_ptr = sec_flags;
+ return true;
}
#else /* COFF_WITH_PE */
@@ -966,16 +960,18 @@ handle_COMDAT (abfd, sec_flags, hdr, name, section)
required information. FIXME: Is the COMDAT symbol index used for
any purpose other than objdump? */
-static flagword
-styp_to_sec_flags (abfd, hdr, name, section)
+static boolean
+styp_to_sec_flags (abfd, hdr, name, section, flags_ptr)
bfd *abfd;
PTR hdr;
const char *name;
asection *section;
+ flagword *flags_ptr;
{
struct internal_scnhdr *internal_s = (struct internal_scnhdr *) hdr;
long styp_flags = internal_s->s_flags;
flagword sec_flags;
+ boolean result = true;
/* Assume read only unless IMAGE_SCN_MEM_WRITE is specified. */
sec_flags = SEC_READONLY;
@@ -1070,14 +1066,14 @@ styp_to_sec_flags (abfd, hdr, name, section)
break;
}
- /* If the section flag was not handled, report it here. This will allow
- users of the BFD library to report a problem but continue executing.
- Tools which need to be aware of these problems (such as the linker)
- can override the default bfd_error_handler to intercept these reports. */
+ /* If the section flag was not handled, report it here. */
if (unhandled != NULL)
- (*_bfd_error_handler)
- (_("%s (%s): Section flag %s (0x%x) ignored"),
- bfd_get_filename (abfd), name, unhandled, flag);
+ {
+ (*_bfd_error_handler)
+ (_("%s (%s): Section flag %s (0x%x) ignored"),
+ bfd_get_filename (abfd), name, unhandled, flag);
+ result = false;
+ }
}
#if defined (COFF_LONG_SECTION_NAMES) && defined (COFF_SUPPORT_GNU_LINKONCE)
@@ -1091,7 +1087,10 @@ styp_to_sec_flags (abfd, hdr, name, section)
sec_flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
#endif
- return sec_flags;
+ if (flags_ptr)
+ * flags_ptr = sec_flags;
+
+ return result;
}
#endif /* COFF_WITH_PE */
@@ -1227,11 +1226,12 @@ dependent COFF routines:
. bfd *abfd,
. PTR internal_filehdr,
. PTR internal_aouthdr));
-. flagword (*_bfd_styp_to_sec_flags_hook) PARAMS ((
+. boolean (*_bfd_styp_to_sec_flags_hook) PARAMS ((
. bfd *abfd,
. PTR internal_scnhdr,
. const char *name,
-. asection *section));
+. asection *section,
+. flagword *flags_ptr));
. void (*_bfd_set_alignment_hook) PARAMS ((
. bfd *abfd,
. asection *sec,
@@ -1385,9 +1385,9 @@ dependent COFF routines:
.#define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
. ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook) (abfd, filehdr, aouthdr))
.
-.#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section)\
+.#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
. ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
-. (abfd, scnhdr, name, section))
+. (abfd, scnhdr, name, section, flags_ptr))
.
.#define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
. ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))