From 96bd8f2b25f12e4859f8666fc0b33063d47dd730 Mon Sep 17 00:00:00 2001 From: grischka Date: Mon, 5 May 2008 22:39:43 +0000 Subject: [PATCH] enable pe-output from libtcc (Shmuel Zeigerman) --- tcc.c | 7 ------- tccelf.c | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/tcc.c b/tcc.c index 9727dea0..652b9182 100644 --- a/tcc.c +++ b/tcc.c @@ -11094,14 +11094,7 @@ int main(int argc, char **argv) } else if (s->output_type == TCC_OUTPUT_MEMORY) { ret = tcc_run(s, argc - optind, argv + optind); } else -#ifdef TCC_TARGET_PE - if (s->output_type != TCC_OUTPUT_OBJ) { - ret = pe_output_file(s, outfile); - } else -#endif - { ret = tcc_output_file(s, outfile) ? 1 : 0; - } the_end: /* XXX: cannot do it with bound checking because of the malloc hooks */ if (!do_bounds_check) diff --git a/tccelf.c b/tccelf.c index a3c594d2..62f8c33c 100644 --- a/tccelf.c +++ b/tccelf.c @@ -1132,7 +1132,7 @@ static void tcc_output_binary(TCCState *s1, FILE *f, /* output an ELF file */ /* XXX: suppress unneeded sections */ -int tcc_output_file(TCCState *s1, const char *filename) +int elf_output_file(TCCState *s1, const char *filename) { Elf32_Ehdr ehdr; FILE *f; @@ -1788,6 +1788,20 @@ int tcc_output_file(TCCState *s1, const char *filename) return ret; } +int tcc_output_file(TCCState *s, const char *filename) +{ + int ret; +#ifdef TCC_TARGET_PE + if (s->output_type != TCC_OUTPUT_OBJ) { + ret = pe_output_file(s, filename); + } else +#endif + { + ret = elf_output_file(s, filename); + } + return ret; +} + static void *load_data(int fd, unsigned long file_offset, unsigned long size) { void *data; -- 2.11.4.GIT