The send-pack.c patch is dropped since it's tied to async code and like transport-helper.c (or more cleanups in index-pack.c) could be left for later. I added one more patch to shut up -Wmaybe-uninitialized but since I could not reproduce it, Jeff would need to verify if it works for him. Nguyễn Thái Ngọc Duy (10): thread-utils: macros to unconditionally compile pthreads API index-pack: remove #ifdef NO_PTHREADS name-hash.c: remove #ifdef NO_PTHREADS attr.c: remove #ifdef NO_PTHREADS grep: remove #ifdef NO_PTHREADS preload-index.c: remove #ifdef NO_PTHREADS pack-objects: remove #ifdef NO_PTHREADS read-cache.c: remove #ifdef NO_PTHREADS Clean up pthread_create() error handling read-cache.c: initialize copy_len to shut up gcc 8 Makefile | 2 +- attr.c | 14 --------- builtin/grep.c | 59 ++++++++++++++---------------------- builtin/index-pack.c | 68 +++++++++++------------------------------- builtin/pack-objects.c | 26 ++-------------- grep.c | 6 ---- grep.h | 6 ---- name-hash.c | 38 +++++++++-------------- pack-objects.h | 6 ---- preload-index.c | 23 +++++--------- read-cache.c | 53 ++++++++++++-------------------- run-command.c | 2 +- thread-utils.c | 48 +++++++++++++++++++++++++++++ thread-utils.h | 48 +++++++++++++++++++++++++++-- 14 files changed, 178 insertions(+), 221 deletions(-) Range-diff against v1: 1: fd4926a83a ! 1: 2791c06629 thread-utils: macros to unconditionally compile pthreads API @@ -146,6 +146,7 @@ +#define pthread_t int +#define pthread_mutex_t int +#define pthread_cond_t int ++#define pthread_key_t int + +#define pthread_mutex_init(mutex, attr) dummy_pthread_init(mutex) +#define pthread_mutex_lock(mutex) 2: 47b1f63fdd = 2: 61b3efceee index-pack: remove #ifdef NO_PTHREADS 3: a842b27e1e = 3: 93aa33eaa6 name-hash.c: remove #ifdef NO_PTHREADS 4: c0939283c3 = 4: 5d9441d8e2 attr.c: remove #ifdef NO_PTHREADS 5: 6c6f3a0d28 < -: ---------- send-pack.c: remove #ifdef NO_PTHREADS 6: 9f6e259fb4 ! 5: 834b19d5c6 grep: remove #ifdef NO_PTHREADS @@ -13,6 +13,16 @@ static pthread_t *threads; /* We use one producer thread and THREADS consumer +@@ + int hit = 0; + int i; + ++ if (!HAVE_THREADS) ++ return 0; ++ + grep_lock(); + all_work_added = 1; + @@ return hit; @@ -136,15 +146,6 @@ if (show_in_pager && (cached || list.nr)) die(_("--open-files-in-pager only works on the worktree")); -@@ - hit = grep_objects(&opt, &pathspec, &list); - } - -- if (num_threads) -+ if (HAVE_THREADS && num_threads) - hit |= wait_all(); - if (hit && show_in_pager) - run_pager(&opt, prefix); diff --git a/grep.c b/grep.c --- a/grep.c 7: 97fb2fdba4 = 6: 10969f86ae preload-index.c: remove #ifdef NO_PTHREADS 8: b8aeb2776b = 7: 7e83190364 pack-objects: remove #ifdef NO_PTHREADS 9: 40a9bfb8f2 = 8: 404e9d9041 read-cache.c: remove #ifdef NO_PTHREADS 10: 0bb0c667ff = 9: 046008b4ef Clean up pthread_create() error handling -: ---------- > 10: 2ad9554687 read-cache.c: initialize copy_len to shut up gcc 8 -- 2.19.1.647.g708186aaf9