From 2349efa61b5ced91eb078aaa036e5bc37816fd47 Mon Sep 17 00:00:00 2001 From: Frederic Feret Date: Thu, 27 Aug 2009 00:15:15 +0200 Subject: [PATCH] add binary executable output support --- tccelf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tccelf.c b/tccelf.c index c95ecf7..e87f2be 100644 --- a/tccelf.c +++ b/tccelf.c @@ -1345,7 +1345,7 @@ int elf_output_file(TCCState *s1, const char *filename) file_type = s1->output_type; s1->nb_errors = 0; - if (file_type != TCC_OUTPUT_OBJ) { + if ((file_type != TCC_OUTPUT_OBJ) && (s1->output_type != TCC_OUTPUT_FORMAT_BINARY)) { tcc_add_runtime(s1); } @@ -1359,14 +1359,15 @@ int elf_output_file(TCCState *s1, const char *filename) if (file_type != TCC_OUTPUT_OBJ) { relocate_common_syms(); - tcc_add_linker_symbols(s1); + if (s1->output_type != TCC_OUTPUT_FORMAT_BINARY) + tcc_add_linker_symbols(s1); - if (!s1->static_link) { + if ((!s1->static_link) && (s1->output_type != TCC_OUTPUT_FORMAT_BINARY)) { const char *name; int sym_index, index; ElfW(Sym) *esym, *sym_end; - if (file_type == TCC_OUTPUT_EXE) { + if ((file_type == TCC_OUTPUT_EXE) && (s1->output_type != TCC_OUTPUT_FORMAT_BINARY)) { char *ptr; /* add interpreter section only if executable */ interp = new_section(s1, ".interp", SHT_PROGBITS, SHF_ALLOC);