diff options
| author | bellard <bellard> | 2003-04-27 11:45:01 +0000 |
|---|---|---|
| committer | bellard <bellard> | 2003-04-27 11:45:01 +0000 |
| commit | 2b64f2f5705384aa85b5d65c89af7c9215129917 (patch) | |
| tree | 12d8e89903e8464b5d8452c39e893f960a588807 /tccelf.c | |
| parent | 7828683e609c0d2b03193a78a0aaaf9368c8f03b (diff) | |
| download | tinycc-2b64f2f5705384aa85b5d65c89af7c9215129917.tar.gz tinycc-2b64f2f5705384aa85b5d65c89af7c9215129917.tar.bz2 | |
added -nostdlib
Diffstat (limited to 'tccelf.c')
| -rw-r--r-- | tccelf.c | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -778,8 +778,10 @@ static void tcc_add_runtime(TCCState *s1) int i; Section *s; - snprintf(buf, sizeof(buf), "%s/%s", tcc_lib_path, "libtcc1.o"); - tcc_add_file(s1, buf); + if (!s1->nostdlib) { + snprintf(buf, sizeof(buf), "%s/%s", tcc_lib_path, "libtcc1.o"); + tcc_add_file(s1, buf); + } #ifdef CONFIG_TCC_BCHECK if (do_bounds_check) { unsigned long *ptr; @@ -811,7 +813,7 @@ static void tcc_add_runtime(TCCState *s1) } #endif /* add libc if not memory output */ - if (s1->output_type != TCC_OUTPUT_MEMORY) { + if (s1->output_type != TCC_OUTPUT_MEMORY && !s1->nostdlib) { tcc_add_library(s1, "c"); tcc_add_file(s1, CONFIG_TCC_CRT_PREFIX "/crtn.o"); } @@ -1248,12 +1250,14 @@ int tcc_output_file(TCCState *s1, const char *filename) p = s1->plt->data; p_end = p + s1->plt->data_offset; - put32(p + 2, get32(p + 2) + s1->got->sh_addr); - put32(p + 8, get32(p + 8) + s1->got->sh_addr); - p += 16; - while (p < p_end) { + if (p < p_end) { put32(p + 2, get32(p + 2) + s1->got->sh_addr); + put32(p + 8, get32(p + 8) + s1->got->sh_addr); p += 16; + while (p < p_end) { + put32(p + 2, get32(p + 2) + s1->got->sh_addr); + p += 16; + } } } |
