From e30e85c727c9796eaaf18475809f06927a2ba846 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Wed, 25 Aug 2010 23:36:42 +0200 Subject: Add size/objdump support for v7 --- ld/objdump86.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) (limited to 'ld') diff --git a/ld/objdump86.c b/ld/objdump86.c index 003f04c..85032a1 100644 --- a/ld/objdump86.c +++ b/ld/objdump86.c @@ -55,6 +55,11 @@ void fetch_aout_hdr _((void)); void dump_aout _((void)); void size_aout _((void)); void nm_aout _((void)); +#ifndef VERY_SMALL_MEMORY +void fetch_v7_hdr _((void)); +void dump_v7 _((void)); +void size_v7 _((void)); +#endif int obj_ver; int sections; @@ -277,6 +282,19 @@ char * archive; case 2: nm_aout(); break; } break; +#ifndef VERY_SMALL_MEMORY + case 2: /* V7 executable */ + fseek(ifd, 0L, 0); + fetch_v7_hdr(); + + switch(display_mode) + { + case 0: dump_v7(); break; + case 1: size_v7(); break; + case 2: error("Symbol table not supported for v7"); exit(1); break; + } + break; +#endif } if( strtab ) free(strtab); @@ -315,6 +333,13 @@ read_objheader() sections = 1; return 1; } +#ifndef VERY_SMALL_MEMORY + if( buf[1] == 1 ) /* 04xx octal */ + { + sections = 1; + return 2; + } +#endif return error("Bad magic number"); } @@ -867,3 +892,81 @@ nm_aout() if( pending_nl ) putchar('\n'); } + +#ifndef VERY_SMALL_MEMORY +/************************************************************************/ +/* V7 a.out versions + */ + +void +fetch_v7_hdr() +{ + int i; + + h_len = 8; + for(i=0; i