From 1b1b270f1e98d43f2cfc48403acc9ad826a11fca Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Sat, 23 Dec 2017 14:46:27 +0100 Subject: [PATCH] Revert "Fix -pthread option handling" This reverts commit 3f8225509b0b8af534ba0856b2aeb01a3310d826. It fixes the linking case but introduces an ugly error with -c about adding a library. To fix both uses the old code structure is better. --- libtcc.c | 5 ++--- tcc.c | 3 +++ tcc.h | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libtcc.c b/libtcc.c index 9bc6597..1e9dd97 100644 --- a/libtcc.c +++ b/libtcc.c @@ -1742,14 +1742,13 @@ reparse: tcc_set_lib_path(s, optarg); break; case TCC_OPTION_l: -add_lib: args_parser_add_file(s, optarg, AFF_TYPE_LIB); s->nb_libraries++; break; case TCC_OPTION_pthread: parse_option_D(s, "_REENTRANT"); - optarg = "pthread"; - goto add_lib; + s->option_pthread = 1; + break; case TCC_OPTION_bench: s->do_bench = 1; break; diff --git a/tcc.c b/tcc.c index 4cc0657..cd887d1 100644 --- a/tcc.c +++ b/tcc.c @@ -297,6 +297,9 @@ redo: tcc_error("cannot specify libraries with -c"); if (n > 1 && s->outfile) tcc_error("cannot specify output file with -c many files"); + } else { + if (s->option_pthread) + tcc_set_options(s, "-lpthread"); } if (s->do_bench) diff --git a/tcc.h b/tcc.h index e5366cb..cd67973 100644 --- a/tcc.h +++ b/tcc.h @@ -817,6 +817,7 @@ struct TCCState { int do_bench; /* option -bench */ int gen_deps; /* option -MD */ char *deps_outfile; /* option -MF */ + int option_pthread; /* -pthread option */ int argc; char **argv; };