From mboxrd@z Thu Jan 1 00:00:00 1970 From: fnf@toadfish.ninemoons.com To: binutils@sourceware.cygnus.com Cc: fnf@cygnus.com Subject: bfd client access to PT_NOTE program segment (patch included) Date: Wed, 22 Sep 1999 20:04:00 -0000 Message-id: <199909230310.UAA15905@toadfish.ninemoons.com> References: <199909210359.UAA09983@toadfish.ninemoons.com> X-SW-Source: 1999-09/msg00157.html I didn't get any feedback, pro or con, to my previous email, so I assume there are no real objections to making this change. Would someone with access to the repository please apply this patch? It won't hurt my feelings if you see a need to tweak it slightly for some reason. :-) -Fred =================================================================== 1999-09-22 Fred Fish * elf.c (bfd_section_from_phdr): Add typename variable. Use p_type to initialize it to something meaningful. Then use it to generate more useful segment names. Index: elf.c =================================================================== RCS file: /cvs/binutils/binutils/bfd/elf.c,v retrieving revision 1.16 diff -c -p -r1.16 elf.c *** elf.c 1999/09/04 17:07:46 1.16 --- elf.c 1999/09/23 02:57:39 *************** bfd_section_from_phdr (abfd, hdr, index) *** 1394,1406 **** { asection *newsect; char *name; char namebuf[64]; int split; split = ((hdr->p_memsz > 0) && (hdr->p_filesz > 0) && (hdr->p_memsz > hdr->p_filesz)); ! sprintf (namebuf, split ? "segment%da" : "segment%d", index); name = bfd_alloc (abfd, strlen (namebuf) + 1); if (!name) return false; --- 1394,1418 ---- { asection *newsect; char *name; + char *typename; char namebuf[64]; int split; split = ((hdr->p_memsz > 0) && (hdr->p_filesz > 0) && (hdr->p_memsz > hdr->p_filesz)); ! switch (hdr->p_type) ! { ! case PT_NULL: typename = "null"; break; ! case PT_LOAD: typename = "load"; break; ! case PT_DYNAMIC: typename = "dynamic"; break; ! case PT_INTERP: typename = "interp"; break; ! case PT_NOTE: typename = "note"; break; ! case PT_SHLIB: typename = "shlib"; break; ! case PT_PHDR: typename = "phdr"; break; ! default: typename = "segment"; break; ! } ! sprintf (namebuf, "%s%d%s", typename, index, split ? "a" : ""); name = bfd_alloc (abfd, strlen (namebuf) + 1); if (!name) return false; *************** bfd_section_from_phdr (abfd, hdr, index) *** 1431,1437 **** if (split) { ! sprintf (namebuf, "segment%db", index); name = bfd_alloc (abfd, strlen (namebuf) + 1); if (!name) return false; --- 1443,1449 ---- if (split) { ! sprintf (namebuf, "%s%db", typename, index); name = bfd_alloc (abfd, strlen (namebuf) + 1); if (!name) return false;