From 74a24d77fd9c08ad9a6b3b6c0f434c7314dae639 Mon Sep 17 00:00:00 2001 From: grischka Date: Thu, 11 Aug 2011 16:55:30 +0200 Subject: libtcc: minor adjustments - use {B} to substitute tcc_lih_path (instead of \b) - expand CONFIG_TCC_CRTPREFIX in CONFIG_TCC_LIBPATHS which fixes duplicate CONFIG_SYSROOT. - put default CONFIG_SYSROOT ("") into tcc.h - remove hack from commit db6fcce78f4d8ea25036dd6643e9fa83d8e52e5a because $(tccdir)/include is already in sysincludes - configure: error out for unrecognized options. - win32/build-tcc.bat: put libtcc into base dir where it will find lib/include automatically, and build libtcc_test example. --- tcc.c | 59 +++++++++++++++++++++++++---------------------------------- 1 file changed, 25 insertions(+), 34 deletions(-) (limited to 'tcc.c') diff --git a/tcc.c b/tcc.c index daf302b..ada67a0 100644 --- a/tcc.c +++ b/tcc.c @@ -263,6 +263,16 @@ static void exec_other_tcc(TCCState *s, char **argv, const char *optarg) } #endif +static void parse_option_D(TCCState *s1, const char *optarg) +{ + char *sym = tcc_strdup(optarg); + char *value = strchr(sym, '='); + if (value) + *value++ = '\0'; + tcc_define_symbol(s1, sym, value); + tcc_free(sym); +} + static int parse_args(TCCState *s, int argc, char **argv) { int optind; @@ -327,16 +337,7 @@ static int parse_args(TCCState *s, int argc, char **argv) error("too many include paths"); break; case TCC_OPTION_D: - { - char *sym, *value; - sym = (char *)optarg; - value = strchr(sym, '='); - if (value) { - *value = '\0'; - value++; - } - tcc_define_symbol(s, sym, value); - } + parse_option_D(s, optarg); break; case TCC_OPTION_U: tcc_undefine_symbol(s, optarg); @@ -347,12 +348,6 @@ static int parse_args(TCCState *s, int argc, char **argv) case TCC_OPTION_B: /* set tcc utilities path (mainly for tcc development) */ tcc_set_lib_path(s, optarg); - /* append /include and add it as -isystem, as gcc does */ - r = tcc_strdup(optarg); - r = tcc_realloc(r, strlen(r) + 8 + 1); - strcat(r, "/include"); - tcc_add_sysinclude_path(s, r); - tcc_free(r); break; case TCC_OPTION_l: dynarray_add((void ***)&files, &nb_files, r); @@ -360,14 +355,14 @@ static int parse_args(TCCState *s, int argc, char **argv) break; case TCC_OPTION_pthread: was_pthread = 1; - tcc_define_symbol(s, "_REENTRANT", "1"); + parse_option_D(s, "_REENTRANT"); break; case TCC_OPTION_bench: do_bench = 1; break; #ifdef CONFIG_TCC_BACKTRACE case TCC_OPTION_bt: - set_num_callers(atoi(optarg)); + tcc_set_num_callers(atoi(optarg)); break; #endif #ifdef CONFIG_TCC_BCHECK @@ -417,17 +412,17 @@ static int parse_args(TCCState *s, int argc, char **argv) print_search_dirs = 1; break; case TCC_OPTION_run: - { - int argc1; - char **argv1; - argc1 = expand_args(&argv1, optarg); - if (argc1 > 0) { - parse_args(s, argc1, argv1); - } - multiple_files = 0; - output_type = TCC_OUTPUT_MEMORY; + { + int argc1; + char **argv1; + argc1 = expand_args(&argv1, optarg); + if (argc1 > 0) { + parse_args(s, argc1, argv1); } + multiple_files = 0; + output_type = TCC_OUTPUT_MEMORY; break; + } case TCC_OPTION_v: do ++s->verbose; while (*optarg++ == 'v'); break; @@ -447,10 +442,8 @@ static int parse_args(TCCState *s, int argc, char **argv) s->rdynamic = 1; break; case TCC_OPTION_Wl: - { - if ((r = (char *) tcc_set_linker(s, (char *)optarg, TRUE))) - error("unsupported linker option '%s'", r); - } + if ((r = (char *) tcc_set_linker(s, (char *)optarg, TRUE))) + error("unsupported linker option '%s'", r); break; case TCC_OPTION_E: output_type = TCC_OUTPUT_PREPROCESS; @@ -473,9 +466,7 @@ static int parse_args(TCCState *s, int argc, char **argv) } } /* fixme: these options could be different on your platform */ - if (was_pthread - && output_type != TCC_OUTPUT_OBJ) - { + if (was_pthread && output_type != TCC_OUTPUT_OBJ) { dynarray_add((void ***)&files, &nb_files, "-lpthread"); nb_libraries++; } -- cgit v1.3.1