diff options
| author | Frederic Feret <tommy.planet@free.fr> | 2009-08-27 00:15:15 +0200 |
|---|---|---|
| committer | grischka <grischka> | 2009-11-13 18:08:58 +0100 |
| commit | 2349efa61b5ced91eb078aaa036e5bc37816fd47 (patch) | |
| tree | 005a3b4aa8fa68ebe7d5ed9c952a54a1eb6ec2f6 | |
| parent | bc48cc1edb402b90de01a061f404164bb32f133f (diff) | |
| download | tinycc-2349efa61b5ced91eb078aaa036e5bc37816fd47.tar.gz tinycc-2349efa61b5ced91eb078aaa036e5bc37816fd47.tar.bz2 | |
add binary executable output support
| -rw-r--r-- | tccelf.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -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); |
