aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Chamberlain <sac@cygnus>1995-08-31 23:34:09 +0000
committerSteve Chamberlain <sac@cygnus>1995-08-31 23:34:09 +0000
commita65619c8fd0d407c5c08d89c3bbe71ceb5e1605a (patch)
tree14f578751e495196c3b7d10671922f2dc24c2afb
parent4e98461f60a9bcfdcf5c4c42409bef64b834f8e1 (diff)
downloadgdb-a65619c8fd0d407c5c08d89c3bbe71ceb5e1605a.zip
gdb-a65619c8fd0d407c5c08d89c3bbe71ceb5e1605a.tar.gz
gdb-a65619c8fd0d407c5c08d89c3bbe71ceb5e1605a.tar.bz2
Thu Aug 31 16:30:22 1995 steve chamberlain <sac@slash.cygnus.com>
* dlltool.c (add_indirect): New. (asm_prefix): New (gen_exp_file): Timestamp should be 0. Insert prefix when needed. New code for indirection. (gen_lib_file): Timestamp should be 0. Insert prefix when needed. (usage): Document --add-indirect. (main): Cope with new option. * objdump.c (dump_private_headers): New. (usage): Document new option. (long_option): Add private-headers. (dump_bfd_private_header): New. (main): Cope with new option.
-rw-r--r--binutils/ChangeLog17
-rw-r--r--binutils/objdump.c58
2 files changed, 55 insertions, 20 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a88bacd..8090687 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,20 @@
+Thu Aug 31 16:30:22 1995 steve chamberlain <sac@slash.cygnus.com>
+
+ * dlltool.c (add_indirect): New.
+ (asm_prefix): New
+ (gen_exp_file): Timestamp should be 0. Insert prefix when
+ needed. New code for indirection.
+ (gen_lib_file): Timestamp should be 0. Insert prefix
+ when needed.
+ (usage): Document --add-indirect.
+ (main): Cope with new option.
+
+ * objdump.c (dump_private_headers): New.
+ (usage): Document new option.
+ (long_option): Add private-headers.
+ (dump_bfd_private_header): New.
+ (main): Cope with new option.
+
Thu Aug 31 04:09:16 1995 Doug Evans <dje@canuck.cygnus.com>
* dlltool.c (run): Add missing 3rd arg to waitpid.
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 8e09450..3114852 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -15,7 +15,7 @@ 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, 675 Mass Ave, Cambridge, MA 02139, USA. */
+Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "bfd.h"
#include "sysdep.h"
@@ -48,6 +48,7 @@ int dump_dynamic_symtab; /* -T */
int dump_reloc_info; /* -r */
int dump_dynamic_reloc_info; /* -R */
int dump_ar_hdrs; /* -a */
+int dump_private_headers; /* -p */
int with_line_numbers; /* -l */
boolean with_source_code; /* -S */
int dump_stab_section_info; /* --stabs */
@@ -120,7 +121,7 @@ usage (stream, status)
int status;
{
fprintf (stream, "\
-Usage: %s [-ahifdDrRtTxsSlw] [-b bfdname] [-m machine] [-j section-name]\n\
+Usage: %s [-ahifdDprRtTxsSlw] [-b bfdname] [-m machine] [-j section-name]\n\
[--archive-headers] [--target=bfdname] [--disassemble]\n\
[--disassemble-all] [--file-headers] [--section-headers] [--headers]\n\
[--info] [--section=section-name] [--line-numbers] [--source]\n",
@@ -128,7 +129,7 @@ Usage: %s [-ahifdDrRtTxsSlw] [-b bfdname] [-m machine] [-j section-name]\n\
fprintf (stream, "\
[--architecture=machine] [--reloc] [--full-contents] [--stabs]\n\
[--syms] [--all-headers] [--dynamic-syms] [--dynamic-reloc]\n\
- [--wide] [--version] [--help] objfile...\n\
+ [--wide] [--version] [--help] [--private-headers] objfile...\n\
at least one option besides -l (--line-numbers) must be given\n");
list_supported_targets (program_name, stream);
exit (status);
@@ -137,6 +138,7 @@ at least one option besides -l (--line-numbers) must be given\n");
static struct option long_options[]=
{
{"all-headers", no_argument, NULL, 'x'},
+ {"private-headers", no_argument, NULL, 'p'},
{"architecture", required_argument, NULL, 'm'},
{"archive-headers", no_argument, NULL, 'a'},
{"disassemble", no_argument, NULL, 'd'},
@@ -340,8 +342,14 @@ compare_relocs (ap, bp)
else if (a->address < b->address)
return -1;
- return compare_symbols ((const PTR) a->sym_ptr_ptr,
- (const PTR) b->sym_ptr_ptr);
+ /* So that associated relocations tied to the same address show up
+ in the correct order, we don't do any further sorting. */
+ if (a > b)
+ return 1;
+ else if (a < b)
+ return -1;
+ else
+ return 0;
}
/* Print VMA symbolically to INFO if possible. */
@@ -1109,24 +1117,22 @@ dump_section_stabs (abfd, stabsect_name, strsect_name)
char *strsect_name;
{
asection *s;
- if (read_section_stabs (abfd, stabsect_name, strsect_name))
- {
- print_section_stabs (abfd, stabsect_name, strsect_name);
- free (stabs);
- free (strtab);
- }
- /* Check for names which are supersets of the selected name */
+ /* Check for section names for which stabsect_name is a prefix, to
+ handle .stab0, etc. */
for (s = abfd->sections;
- s;
+ s != NULL;
s = s->next)
{
- if (strncmp (stabsect_name, s->name, strlen (stabsect_name)) == 0)
+ if (strncmp (stabsect_name, s->name, strlen (stabsect_name)) == 0
+ && strncmp (strsect_name, s->name, strlen (strsect_name)) != 0)
{
- read_section_stabs (abfd, s->name, strsect_name);
- print_section_stabs (abfd, s->name, strsect_name);
- free (stabs);
- free (strtab);
+ if (read_section_stabs (abfd, s->name, strsect_name))
+ {
+ print_section_stabs (abfd, s->name, strsect_name);
+ free (stabs);
+ free (strtab);
+ }
}
}
}
@@ -1156,7 +1162,13 @@ dump_bfd_header (abfd)
printf ("\nstart address 0x");
printf_vma (abfd->start_address);
}
-
+
+static void
+dump_bfd_private_header (abfd)
+bfd *abfd;
+{
+ bfd_print_private_bfd_data (abfd, stdout);
+}
static void
display_bfd (abfd)
bfd *abfd;
@@ -1180,6 +1192,8 @@ display_bfd (abfd)
print_arelt_descr (stdout, abfd, true);
if (dump_file_header)
dump_bfd_header (abfd);
+ if (dump_private_headers)
+ dump_bfd_private_header (abfd);
putchar ('\n');
if (dump_section_headers)
dump_headers (abfd);
@@ -1705,7 +1719,7 @@ main (argc, argv)
bfd_init ();
- while ((c = getopt_long (argc, argv, "ib:m:VdDlfahrRtTxsSj:w", long_options,
+ while ((c = getopt_long (argc, argv, "pib:m:VdDlfahrRtTxsSj:w", long_options,
(int *) 0))
!= EOF)
{
@@ -1732,7 +1746,11 @@ main (argc, argv)
case 'i':
formats_info = true;
break;
+ case 'p':
+ dump_private_headers = 1;
+ break;
case 'x':
+ dump_private_headers = 1;
dump_symtab = 1;
dump_reloc_info = 1;
dump_file_header = true;