PF (SEC_EXCLUDE, "EXCLUDE"); PF (SEC_SORT_ENTRIES, "SORT_ENTRIES");  if ((section->flags & SEC_LINK_ONCE) != 0) { const char *ls;  switch (section->flags & SEC_LINK_DUPLICATES) { default: abort (); case SEC_LINK_DUPLICATES_DISCARD: ls = "LINK_ONCE_DISCARD"; break; case SEC_LINK_DUPLICATES_ONE_ONLY: ls = "LINK_ONCE_ONE_ONLY"; break; case SEC_LINK_DUPLICATES_SAME_SIZE: ls = "LINK_ONCE_SAME_SIZE"; break; case SEC_LINK_DUPLICATES_SAME_CONTENTS: ls = "LINK_ONCE_SAME_CONTENTS"; break; } printf ("%s%s", comma, ls); comma = ", "; }
dump_section_header (abfd, section, ignored)     bfd *abfd;     asection *section;     PTR ignored;{  char *comma = "";#define PF(x,y) \  if (section->flags & x) {  printf("%s%s",comma,y); comma = ", "; }  printf ("SECTION %d [%s]\t: size %08x",	  section->index,	  section->name,	  (unsigned) bfd_get_section_size_before_reloc (section));  printf (" vma ");  printf_vma (section->vma);  printf (" lma ");  printf_vma (section->lma);  printf (" align 2**%u%s ",	  section->alignment_power, (wide_output) ? "" : "\n");  PF (SEC_ALLOC, "ALLOC");  PF (SEC_CONSTRUCTOR, "CONSTRUCTOR");  PF (SEC_CONSTRUCTOR_TEXT, "CONSTRUCTOR TEXT");  PF (SEC_CONSTRUCTOR_DATA, "CONSTRUCTOR DATA");  PF (SEC_CONSTRUCTOR_BSS, "CONSTRUCTOR BSS");  PF (SEC_LOAD, "LOAD");  PF (SEC_RELOC, "RELOC");#ifdef SEC_BALIGN  PF (SEC_BALIGN, "BALIGN");#endif  PF (SEC_READONLY, "READONLY");  PF (SEC_CODE, "CODE");  PF (SEC_DATA, "DATA");  PF (SEC_ROM, "ROM");  PF (SEC_DEBUGGING, "DEBUGGING");  PF (SEC_NEVER_LOAD, "NEVER_LOAD");  printf ("\n");#undef PF}