From e50d68e4175d9ffa2915d67100ee8f9c5faf8cf1 Mon Sep 17 00:00:00 2001 From: "Steven G. Messervey" Date: Wed, 15 Apr 2015 21:24:15 -0400 Subject: [PATCH] Revert "implement #pragma comment(lib,...)" This reverts commit 8615bb40fb39bf7435462ca54cbbc24aaecae502. Reverting as it breaks on MinGW targets --- libtcc.c | 44 +++++++++++++------------------------------- tcc.c | 4 ++-- tccpp.c | 38 -------------------------------------- tcctok.h | 3 --- 4 files changed, 15 insertions(+), 74 deletions(-) diff --git a/libtcc.c b/libtcc.c index 0d8496b..6f88989 100644 --- a/libtcc.c +++ b/libtcc.c @@ -515,7 +515,7 @@ ST_FUNC void put_extern_sym2(Sym *sym, Section *section, } #else if (! (sym->type.t & VT_STATIC)) - other = (sym->type.t & VT_VIS_MASK) >> VT_VIS_SHIFT; + other = (sym->type.t & VT_VIS_MASK) >> VT_VIS_SHIFT; #endif if (tcc_state->leading_underscore && can_add_underscore) { buf1[0] = '_'; @@ -829,31 +829,13 @@ static int tcc_compile(TCCState *s1) LIBTCCAPI int tcc_compile_string(TCCState *s, const char *str) { - int i; int len, ret; len = strlen(str); tcc_open_bf(s, "", len); memcpy(file->buffer, str, len); - - len = s->nb_files; ret = tcc_compile(s); tcc_close(); - - /* habdle #pragma comment(lib,) */ - for(i = len; i < s->nb_files; i++) { - /* int filetype = *(unsigned char *)s->files[i]; */ - const char *filename = s->files[i] + 1; - if (filename[0] == '-' && filename[1] == 'l') { - if (tcc_add_library(s, filename + 2) < 0) { - tcc_warning("cannot find '%s'", filename+2); - ret++; - } - } - tcc_free(s->files[i]); - } - s->nb_files = len; - return ret; } @@ -1357,7 +1339,7 @@ LIBTCCAPI int tcc_set_output_type(TCCState *s, int output_type) { s->output_type = output_type; if (output_type == TCC_OUTPUT_PREPROCESS) - print_defines(); + print_defines(); if (!s->nostdinc) { /* default include paths */ @@ -1917,16 +1899,16 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv) s->do_debug = 1; break; case TCC_OPTION_c: - if (s->output_type) + if (s->output_type) tcc_warning("-c: some compiler action already specified (%d)", s->output_type); s->output_type = TCC_OUTPUT_OBJ; break; case TCC_OPTION_d: - if (*optarg != 'D') { - if (s->warn_unsupported) - goto unsupported_option; + if (*optarg != 'D') { + if (s->warn_unsupported) + goto unsupported_option; tcc_error("invalid option -- '%s'", r); - } + } s->dflag = 1; break; #ifdef TCC_TARGET_ARM @@ -1945,11 +1927,11 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv) s->static_link = 1; break; case TCC_OPTION_std: - /* silently ignore, a current purpose: - allow to use a tcc as a reference compiler for "make test" */ + /* silently ignore, a current purpose: + allow to use a tcc as a reference compiler for "make test" */ break; case TCC_OPTION_shared: - if (s->output_type) + if (s->output_type) tcc_warning("-shared: some compiler action already specified (%d)", s->output_type); s->output_type = TCC_OUTPUT_DLL; break; @@ -1964,7 +1946,7 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv) break; case TCC_OPTION_r: /* generate a .o merging several output files */ - if (s->output_type) + if (s->output_type) tcc_warning("-r: some compiler action already specified (%d)", s->output_type); s->option_r = 1; s->output_type = TCC_OUTPUT_OBJ; @@ -1982,7 +1964,7 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv) s->print_search_dirs = 1; break; case TCC_OPTION_run: - if (s->output_type) + if (s->output_type) tcc_warning("-run: some compiler action already specified (%d)", s->output_type); s->output_type = TCC_OUTPUT_MEMORY; tcc_set_options(s, optarg); @@ -2013,7 +1995,7 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int argc, char **argv) cstr_ccat(&linker_arg, '\0'); break; case TCC_OPTION_E: - if (s->output_type) + if (s->output_type) tcc_warning("-E: some compiler action already specified (%d)", s->output_type); s->output_type = TCC_OUTPUT_PREPROCESS; break; diff --git a/tcc.c b/tcc.c index 185da08..748726f 100644 --- a/tcc.c +++ b/tcc.c @@ -265,7 +265,7 @@ int main(int argc, char **argv) } if (s->output_type == 0) - s->output_type = TCC_OUTPUT_EXE; + s->output_type = TCC_OUTPUT_EXE; if (s->option_m) exec_other_tcc(s, argv, s->option_m); @@ -317,7 +317,7 @@ int main(int argc, char **argv) const char *filename = s->files[i] + 1; if (filename[0] == '-' && filename[1] == 'l') { if (tcc_add_library(s, filename + 2) < 0) { - tcc_error_noabort("cannot find '%s'", filename+2); + tcc_error_noabort("cannot find '%s'", filename); ret = 1; } } else { diff --git a/tccpp.c b/tccpp.c index 51353aa..111ea2b 100644 --- a/tccpp.c +++ b/tccpp.c @@ -1420,45 +1420,7 @@ static void pragma_parse(TCCState *s1) *s1->pack_stack_ptr = val; skip(')'); } - } else if (tok == TOK_comment) { - if (s1->ms_extensions) { - next(); - skip('('); - if (tok == TOK_lib) { - next(); - skip(','); - if (tok != TOK_STR) - tcc_error("invalid library specification"); - else { - /**/ - int len = strlen((char *)tokc.cstr->data); - char *file = tcc_malloc(len+4); /* filetype, "-l" and 0 at the end */ - file[0] = TCC_FILETYPE_BINARY; - file[1] = '-'; - file[2] = 'l'; - strcpy(&file[3], (char *)tokc.cstr->data); - dynarray_add((void ***)&s1->files, &s1->nb_files, file); - /**/ - /* we can't use - tcc_add_library(s1,(char *)tokc.cstr->data); - while compiling some file - */ - /* - if (strrchr((char *)tokc.cstr->data,'.') == NULL) - tcc_add_library(s1,(char *)tokc.cstr->data); - else - tcc_add_file(s1,(char *)tokc.cstr->data,TCC_FILETYPE_BINARY); - */ - } - next(); - tok = TOK_LINEFEED; - } - } - else - tcc_warning("#pragma comment(lib) is ignored"); } - else - tcc_warning("unknown #pragma %s", get_tok_str(tok, &tokc)); } /* is_bof is true if first non space token at beginning of file */ diff --git a/tcctok.h b/tcctok.h index 3026839..0303814 100644 --- a/tcctok.h +++ b/tcctok.h @@ -153,9 +153,6 @@ DEF(TOK_ASM_push, "push") DEF(TOK_ASM_pop, "pop") #endif - /* pragma comment & comment(lib,...) */ - DEF(TOK_comment, "comment") - DEF(TOK_lib, "lib") /* builtin functions or variables */ #ifndef TCC_ARM_EABI