diff options
Diffstat (limited to 'output')
-rw-r--r-- | output/outaout.c | 4 | ||||
-rw-r--r-- | output/outas86.c | 2 | ||||
-rw-r--r-- | output/outbin.c | 13 | ||||
-rw-r--r-- | output/outcoff.c | 6 | ||||
-rw-r--r-- | output/outdbg.c | 2 | ||||
-rw-r--r-- | output/outelf32.c | 4 | ||||
-rw-r--r-- | output/outelf64.c | 2 | ||||
-rw-r--r-- | output/outieee.c | 78 | ||||
-rw-r--r-- | output/outmacho.c | 2 | ||||
-rw-r--r-- | output/outobj.c | 2 | ||||
-rw-r--r-- | output/outrdf.c | 2 | ||||
-rw-r--r-- | output/outrdf2.c | 2 |
12 files changed, 62 insertions, 57 deletions
diff --git a/output/outaout.c b/output/outaout.c index a057fc6..4d38cdf 100644 --- a/output/outaout.c +++ b/output/outaout.c @@ -946,7 +946,7 @@ static int aout_set_info(enum geninfo type, char **val) struct ofmt of_aout = { "Linux a.out object files", "aout", - NULL, + 0, null_debug_arr, &null_debug_form, aout_stdmac, @@ -968,7 +968,7 @@ struct ofmt of_aout = { struct ofmt of_aoutb = { "NetBSD/FreeBSD a.out object files", "aoutb", - NULL, + 0, null_debug_arr, &null_debug_form, aout_stdmac, diff --git a/output/outas86.c b/output/outas86.c index 863a227..2fa4efc 100644 --- a/output/outas86.c +++ b/output/outas86.c @@ -659,7 +659,7 @@ void as86_linenumber(char *name, int32_t segment, int32_t offset, int is_main, struct ofmt of_as86 = { "Linux as86 (bin86 version 0.3) object files", "as86", - NULL, + 0, null_debug_arr, &null_debug_form, as86_stdmac, diff --git a/output/outbin.c b/output/outbin.c index fdfbe8e..b3ebc2a 100644 --- a/output/outbin.c +++ b/output/outbin.c @@ -594,8 +594,13 @@ static void bin_cleanup(int debuginfo) /* Step 6: Write the section data to the output file. */ /* Write the progbits sections to the output file. */ - for (pend = origin, s = sections; s && (s->flags & TYPE_PROGBITS); s = s->next) { /* Skip zero-length sections. */ - if (s->length == 0) + pend = origin; + for (s = sections; s; s = s->next) { + /* Skip non-progbits sections */ + if (!(s->flags & TYPE_PROGBITS)) + continue; + /* Skip zero-length sections */ + if (s->length == 0) continue; /* Pad the space between sections. */ for (h = s->start - pend; h; h--) @@ -1401,7 +1406,7 @@ static int bin_set_info(enum geninfo type, char **val) return 0; } -static void bin_init(FILE * afp, efunc errfunc, ldfunc ldef, evalfunc eval) +static void bin_init(FILE *afp, efunc errfunc, ldfunc ldef, evalfunc eval) { fp = afp; error = errfunc; @@ -1436,7 +1441,7 @@ static void bin_init(FILE * afp, efunc errfunc, ldfunc ldef, evalfunc eval) struct ofmt of_bin = { "flat-form binary files (e.g. DOS .COM, .SYS)", "bin", - NULL, + 0, null_debug_arr, &null_debug_form, bin_stdmac, diff --git a/output/outcoff.c b/output/outcoff.c index ee0780d..5a03bec 100644 --- a/output/outcoff.c +++ b/output/outcoff.c @@ -1009,7 +1009,7 @@ static int coff_set_info(enum geninfo type, char **val) struct ofmt of_coff = { "COFF (i386) object files (e.g. DJGPP for DOS)", "coff", - NULL, + 0, null_debug_arr, &null_debug_form, coff_stdmac, @@ -1031,7 +1031,7 @@ struct ofmt of_coff = { struct ofmt of_win32 = { "Microsoft Win32 (i386) object files", "win32", - NULL, + 0, null_debug_arr, &null_debug_form, coff_stdmac, @@ -1053,7 +1053,7 @@ struct ofmt of_win32 = { struct ofmt of_win64 = { "Microsoft Win64 (x86-64) object files", "win64", - NULL, + 0, null_debug_arr, &null_debug_form, coff_stdmac, diff --git a/output/outdbg.c b/output/outdbg.c index 2c6921e..84d558e 100644 --- a/output/outdbg.c +++ b/output/outdbg.c @@ -258,7 +258,7 @@ static struct dfmt *debug_debug_arr[3] = { struct ofmt of_dbg = { "Trace of all info passed to output stage", "dbg", - NULL, + OFMT_TEXT, debug_debug_arr, &debug_debug_form, NULL, diff --git a/output/outelf32.c b/output/outelf32.c index 28ec0a3..7159a1f 100644 --- a/output/outelf32.c +++ b/output/outelf32.c @@ -1473,7 +1473,7 @@ struct dfmt *elf32_debugs_arr[3] = { &df_dwarf, &df_stabs, NULL }; struct ofmt of_elf32 = { "ELF32 (i386) object files (e.g. Linux)", "elf32", - NULL, + 0, elf32_debugs_arr, &df_stabs, elf_stdmac, @@ -1491,7 +1491,7 @@ struct ofmt of_elf32 = { struct ofmt of_elf = { "ELF (short name for ELF32) ", "elf", - NULL, + 0, elf32_debugs_arr, &df_stabs, elf_stdmac, diff --git a/output/outelf64.c b/output/outelf64.c index f31c196..d049894 100644 --- a/output/outelf64.c +++ b/output/outelf64.c @@ -1564,7 +1564,7 @@ struct dfmt *elf64_debugs_arr[3] = { &df_dwarf, &df_stabs, NULL }; struct ofmt of_elf64 = { "ELF64 (x86_64) object files (e.g. Linux)", "elf64", - NULL, + 0, elf64_debugs_arr, &df_stabs, elf_stdmac, diff --git a/output/outieee.c b/output/outieee.c index 56dc71e..d587d4c 100644 --- a/output/outieee.c +++ b/output/outieee.c @@ -896,24 +896,24 @@ static void ieee_write_file(int debuginfo) /* * Write the module header */ - ieee_putascii("MBFNASM,%02X%s.\r\n", strlen(ieee_infile), ieee_infile); + ieee_putascii("MBFNASM,%02X%s.\n", strlen(ieee_infile), ieee_infile); /* * Write the NASM boast comment. */ - ieee_putascii("CO0,%02X%s.\r\n", strlen(nasm_comment), nasm_comment); + ieee_putascii("CO0,%02X%s.\n", strlen(nasm_comment), nasm_comment); /* * write processor-specific information */ - ieee_putascii("AD8,4,L.\r\n"); + ieee_putascii("AD8,4,L.\n"); /* * date and time */ time(&reltime); thetime = localtime(&reltime); - ieee_putascii("DT%04d%02d%02d%02d%02d%02d.\r\n", + ieee_putascii("DT%04d%02d%02d%02d%02d%02d.\n", 1900 + thetime->tm_year, thetime->tm_mon + 1, thetime->tm_mday, thetime->tm_hour, thetime->tm_min, thetime->tm_sec); @@ -921,10 +921,10 @@ static void ieee_write_file(int debuginfo) * if debugging, dump file names */ for (fn = fnhead; fn && debuginfo; fn = fn->next) { - ieee_putascii("C0105,%02X%s.\r\n", strlen(fn->name), fn->name); + ieee_putascii("C0105,%02X%s.\n", strlen(fn->name), fn->name); } - ieee_putascii("CO101,07ENDHEAD.\r\n"); + ieee_putascii("CO101,07ENDHEAD.\n"); /* * the standard doesn't specify when to put checksums, * we'll just do it periodically. @@ -954,15 +954,15 @@ static void ieee_write_file(int debuginfo) } ieee_unqualified_name(buf, seg->name); if (seg->align >= SEG_ABS) { - ieee_putascii("ST%X,A,%02X%s.\r\n", seg->ieee_index, + ieee_putascii("ST%X,A,%02X%s.\n", seg->ieee_index, strlen(buf), buf); - ieee_putascii("ASL%X,%lX.\r\n", seg->ieee_index, + ieee_putascii("ASL%X,%lX.\n", seg->ieee_index, (seg->align - SEG_ABS) * 16); } else { - ieee_putascii("ST%X,%c,%02X%s.\r\n", seg->ieee_index, attrib, + ieee_putascii("ST%X,%c,%02X%s.\n", seg->ieee_index, attrib, strlen(buf), buf); - ieee_putascii("SA%X,%lX.\r\n", seg->ieee_index, seg->align); - ieee_putascii("ASS%X,%X.\r\n", seg->ieee_index, + ieee_putascii("SA%X,%lX.\n", seg->ieee_index, seg->align); + ieee_putascii("ASS%X,%X.\n", seg->ieee_index, seg->currentpos); } seg = seg->next; @@ -977,7 +977,7 @@ static void ieee_write_file(int debuginfo) if (!seg) error(ERR_PANIC, "Start address records are incorrect"); else - ieee_putascii("ASG,R%X,%lX,+.\r\n", seg->ieee_index, + ieee_putascii("ASG,R%X,%lX,+.\n", seg->ieee_index, ieee_entry_ofs); } @@ -990,18 +990,18 @@ static void ieee_write_file(int debuginfo) for (pub = seg->pubhead; pub; pub = pub->next) { char buf[256]; ieee_unqualified_name(buf, pub->name); - ieee_putascii("NI%X,%02X%s.\r\n", i, strlen(buf), buf); + ieee_putascii("NI%X,%02X%s.\n", i, strlen(buf), buf); if (pub->segment == -1) - ieee_putascii("ASI%X,R%X,%lX,+.\r\n", i, pub->index, + ieee_putascii("ASI%X,R%X,%lX,+.\n", i, pub->index, pub->offset); else - ieee_putascii("ASI%X,%lX,%lX,+.\r\n", i, pub->segment * 16, + ieee_putascii("ASI%X,%lX,%lX,+.\n", i, pub->segment * 16, pub->offset); if (debuginfo) { if (pub->type >= 0x100) - ieee_putascii("ATI%X,T%X.\r\n", i, pub->type - 0x100); + ieee_putascii("ATI%X,T%X.\n", i, pub->type - 0x100); else - ieee_putascii("ATI%X,%X.\r\n", i, pub->type); + ieee_putascii("ATI%X,%X.\n", i, pub->type); } i++; } @@ -1011,18 +1011,18 @@ static void ieee_write_file(int debuginfo) while (pub) { char buf[256]; ieee_unqualified_name(buf, pub->name); - ieee_putascii("NI%X,%02X%s.\r\n", i, strlen(buf), buf); + ieee_putascii("NI%X,%02X%s.\n", i, strlen(buf), buf); if (pub->segment == -1) - ieee_putascii("ASI%X,R%X,%lX,+.\r\n", i, pub->index, + ieee_putascii("ASI%X,R%X,%lX,+.\n", i, pub->index, pub->offset); else - ieee_putascii("ASI%X,%lX,%lX,+.\r\n", i, pub->segment * 16, + ieee_putascii("ASI%X,%lX,%lX,+.\n", i, pub->segment * 16, pub->offset); if (debuginfo) { if (pub->type >= 0x100) - ieee_putascii("ATI%X,T%X.\r\n", i, pub->type - 0x100); + ieee_putascii("ATI%X,T%X.\n", i, pub->type - 0x100); else - ieee_putascii("ATI%X,%X.\r\n", i, pub->type); + ieee_putascii("ATI%X,%X.\n", i, pub->type); } i++; pub = pub->next; @@ -1035,7 +1035,7 @@ static void ieee_write_file(int debuginfo) while (ext) { char buf[256]; ieee_unqualified_name(buf, ext->name); - ieee_putascii("NX%X,%02X%s.\r\n", i++, strlen(buf), buf); + ieee_putascii("NX%X,%02X%s.\n", i++, strlen(buf), buf); ext = ext->next; } ieee_putcs(false); @@ -1044,14 +1044,14 @@ static void ieee_write_file(int debuginfo) * IEEE doesn't have a standard pass break record * so use the ladsoft variant */ - ieee_putascii("CO100,06ENDSYM.\r\n"); + ieee_putascii("CO100,06ENDSYM.\n"); /* * now put types */ i = ARRAY_BOT; for (arr = arrhead; arr && debuginfo; arr = arr->next) { - ieee_putascii("TY%X,20,%X,%lX.\r\n", i++, arr->basetype, + ieee_putascii("TY%X,20,%X,%lX.\n", i++, arr->basetype, arr->size); } /* @@ -1062,18 +1062,18 @@ static void ieee_write_file(int debuginfo) for (loc = seg->lochead; loc; loc = loc->next) { char buf[256]; ieee_unqualified_name(buf, loc->name); - ieee_putascii("NN%X,%02X%s.\r\n", i, strlen(buf), buf); + ieee_putascii("NN%X,%02X%s.\n", i, strlen(buf), buf); if (loc->segment == -1) - ieee_putascii("ASN%X,R%X,%lX,+.\r\n", i, loc->index, + ieee_putascii("ASN%X,R%X,%lX,+.\n", i, loc->index, loc->offset); else - ieee_putascii("ASN%X,%lX,%lX,+.\r\n", i, loc->segment * 16, + ieee_putascii("ASN%X,%lX,%lX,+.\n", i, loc->segment * 16, loc->offset); if (debuginfo) { if (loc->type >= 0x100) - ieee_putascii("ATN%X,T%X.\r\n", i, loc->type - 0x100); + ieee_putascii("ATN%X,T%X.\n", i, loc->type - 0x100); else - ieee_putascii("ATN%X,%X.\r\n", i, loc->type); + ieee_putascii("ATN%X,%X.\n", i, loc->type); } i++; } @@ -1089,7 +1089,7 @@ static void ieee_write_file(int debuginfo) if (seg->currentpos) { int32_t size, org = 0; data = seg->data; - ieee_putascii("SB%X.\r\n", seg->ieee_index); + ieee_putascii("SB%X.\n", seg->ieee_index); fix = seg->fptr; while (fix) { size = HUNKSIZE - (org % HUNKSIZE); @@ -1120,7 +1120,7 @@ static void ieee_write_file(int debuginfo) /* * module end record */ - ieee_putascii("ME.\r\n"); + ieee_putascii("ME.\n"); } static void ieee_write_byte(struct ieeeSection *seg, int data) @@ -1154,7 +1154,7 @@ static void ieee_putascii(char *format, ...) vsnprintf(buffer, sizeof(buffer), format, ap); l = strlen(buffer); for (i = 0; i < l; i++) - if ((buffer[i] & 0xff) > 31) + if ((uint8_t)buffer[i] > 31) checksum += buffer[i]; va_end(ap); fprintf(ofp, buffer); @@ -1165,11 +1165,11 @@ static void ieee_putascii(char *format, ...) static void ieee_putcs(int toclear) { if (toclear) { - ieee_putascii("CS.\r\n"); + ieee_putascii("CS.\n"); } else { checksum += 'C'; checksum += 'S'; - ieee_putascii("CS%02X.\r\n", checksum & 127); + ieee_putascii("CS%02X.\n", checksum & 127); } checksum = 0; } @@ -1188,7 +1188,7 @@ static int32_t ieee_putld(int32_t start, int32_t end, uint8_t *buf) ieee_putascii("%02X", buf[val++]); start++; } - ieee_putascii(".\r\n"); + ieee_putascii(".\n"); } /* if no partial lines */ if (start == end) @@ -1199,7 +1199,7 @@ static int32_t ieee_putld(int32_t start, int32_t end, uint8_t *buf) ieee_putascii("%02X", buf[val++]); start++; } - ieee_putascii(".\r\n"); + ieee_putascii(".\n"); return (start); } static int32_t ieee_putlr(struct ieeeFixupp *p) @@ -1264,7 +1264,7 @@ static int32_t ieee_putlr(struct ieeeFixupp *p) sprintf(buf, "X%"PRIX32",Y%"PRIX32",+,L%"PRIX32",-", p->id2, p->id2, p->id1); break; } - ieee_putascii("LR(%s,%"PRIX32").\r\n", buf, size); + ieee_putascii("LR(%s,%"PRIX32").\n", buf, size); return (size); } @@ -1501,7 +1501,7 @@ static struct dfmt *ladsoft_debug_arr[3] = { struct ofmt of_ieee = { "IEEE-695 (LADsoft variant) object file format", "ieee", - NULL, + OFMT_TEXT, ladsoft_debug_arr, &ladsoft_debug_form, NULL, diff --git a/output/outmacho.c b/output/outmacho.c index 74aecad..90b9958 100644 --- a/output/outmacho.c +++ b/output/outmacho.c @@ -1334,7 +1334,7 @@ static void debug_section_relocs (struct section *s) struct ofmt of_macho = { "NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X object files", "macho", - NULL, + 0, null_debug_arr, &null_debug_form, macho_stdmac, diff --git a/output/outobj.c b/output/outobj.c index a3f5580..73bec3c 100644 --- a/output/outobj.c +++ b/output/outobj.c @@ -2558,7 +2558,7 @@ static struct dfmt *borland_debug_arr[3] = { struct ofmt of_obj = { "MS-DOS 16-bit/32-bit OMF object files", "obj", - NULL, + 0, borland_debug_arr, &borland_debug_form, obj_stdmac, diff --git a/output/outrdf.c b/output/outrdf.c index 5ba8980..fef18fb 100644 --- a/output/outrdf.c +++ b/output/outrdf.c @@ -552,7 +552,7 @@ struct ofmt of_rdf = { #else "rdf", #endif - NULL, + 0, null_debug_arr, &null_debug_form, rdf_stdmac, diff --git a/output/outrdf2.c b/output/outrdf2.c index c40d74a..578c923 100644 --- a/output/outrdf2.c +++ b/output/outrdf2.c @@ -787,7 +787,7 @@ static int rdf2_set_info(enum geninfo type, char **val) struct ofmt of_rdf2 = { "Relocatable Dynamic Object File Format v2.0", "rdf", - NULL, + 0, null_debug_arr, &null_debug_form, rdf2_stdmac, |