diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-06-27 21:54:10 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-06-27 21:55:31 -0700 |
commit | 2d115448b4f3a0133f97cf93b75dec7ed0bc9e42 (patch) | |
tree | c433e52c04d4f3d9a9f77eaf61e775b2c9a31e9d | |
parent | 5ca5007695c4caa4658125177aa729556e5e5c2d (diff) | |
download | nasm-2d115448b4f3a0133f97cf93b75dec7ed0bc9e42.tar.gz |
output: call debug init from a central location
We already call current_dfmt->init in the same place (at the very end
of ofmt->init) in all the backends that do it; instead call it
centrally in nasm.c after ofmt->init.
This fixes invalid ELF files with when compiling with -F dwarf, since
the dwarf initialization routine never got called.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | nasm.c | 1 | ||||
-rw-r--r-- | output/outdbg.c | 2 | ||||
-rw-r--r-- | output/outieee.c | 2 | ||||
-rw-r--r-- | output/outobj.c | 2 |
4 files changed, 2 insertions, 5 deletions
@@ -429,6 +429,7 @@ int main(int argc, char **argv) init_labels(); ofmt->init(ofile, report_error, define_label, evaluate); + ofmt->current_dfmt->init(ofmt, NULL, ofile, report_error); assemble_file(inname, depend_ptr); diff --git a/output/outdbg.c b/output/outdbg.c index 72f952e3..102e422a 100644 --- a/output/outdbg.c +++ b/output/outdbg.c @@ -40,8 +40,6 @@ static void dbg_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval) dbgsect = NULL; (void)ldef; fprintf(fp, "NASM Output format debug dump\n"); - of_dbg.current_dfmt->init(&of_dbg, 0, fp, errfunc); - } static void dbg_cleanup(int debuginfo) diff --git a/output/outieee.c b/output/outieee.c index 74c1fc85..abf493c6 100644 --- a/output/outieee.c +++ b/output/outieee.c @@ -196,8 +196,8 @@ static void ieee_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval) ieee_entry_seg = NO_SEG; ieee_uppercase = false; checksum = 0; - of_ieee.current_dfmt->init(&of_ieee, NULL, fp, errfunc); } + static int ieee_set_info(enum geninfo type, char **val) { (void)type; diff --git a/output/outobj.c b/output/outobj.c index f51dcd11..fe2de3e1 100644 --- a/output/outobj.c +++ b/output/outobj.c @@ -634,8 +634,6 @@ static void obj_init(FILE * fp, efunc errfunc, ldfunc ldef, evalfunc eval) obj_use32 = false; passtwo = 0; current_seg = NULL; - - of_obj.current_dfmt->init(&of_obj, NULL, fp, errfunc); } static int obj_set_info(enum geninfo type, char **val) |