Browse Source

Merge branch 'dm/make-threaded-simplify'

* dm/make-threaded-simplify:
  Make NO_PTHREADS the sole thread configuration variable
maint
Junio C Hamano 15 years ago
parent
commit
2ee8c5b647
  1. 3
      Documentation/RelNotes-1.7.0.txt
  2. 24
      Makefile
  3. 12
      builtin-pack-objects.c
  4. 1
      config.mak.in
  5. 9
      configure.ac

3
Documentation/RelNotes-1.7.0.txt

@ -182,6 +182,9 @@ Updates since v1.6.6 @@ -182,6 +182,9 @@ Updates since v1.6.6

* Many more commands are now built-in.

* THREADED_DELTA_SEARCH is no more. If you build with threads, delta
compression will always take advantage of it.

Fixes since v1.6.6
------------------


24
Makefile

@ -180,9 +180,6 @@ all:: @@ -180,9 +180,6 @@ all::
# If not set it defaults to the bare 'wish'. If it is set to the empty
# string then NO_TCLTK will be forced (this is used by configure script).
#
# Define THREADED_DELTA_SEARCH if you have pthreads and wish to exploit
# parallel delta searching when packing objects.
#
# Define INTERNAL_QSORT to use Git's implementation of qsort(), which
# is a simplified version of the merge sort used in glibc. This is
# recommended if Git triggers O(n^2) behavior in your platform's qsort().
@ -722,12 +719,10 @@ EXTLIBS = @@ -722,12 +719,10 @@ EXTLIBS =
ifeq ($(uname_S),Linux)
NO_STRLCPY = YesPlease
NO_MKSTEMPS = YesPlease
THREADED_DELTA_SEARCH = YesPlease
endif
ifeq ($(uname_S),GNU/kFreeBSD)
NO_STRLCPY = YesPlease
NO_MKSTEMPS = YesPlease
THREADED_DELTA_SEARCH = YesPlease
endif
ifeq ($(uname_S),UnixWare)
CC = cc
@ -781,7 +776,6 @@ ifeq ($(uname_S),Darwin) @@ -781,7 +776,6 @@ ifeq ($(uname_S),Darwin)
NO_STRLCPY = YesPlease
endif
NO_MEMMEM = YesPlease
THREADED_DELTA_SEARCH = YesPlease
USE_ST_TIMESPEC = YesPlease
endif
ifeq ($(uname_S),SunOS)
@ -794,7 +788,6 @@ ifeq ($(uname_S),SunOS) @@ -794,7 +788,6 @@ ifeq ($(uname_S),SunOS)
NO_MKDTEMP = YesPlease
NO_MKSTEMPS = YesPlease
NO_REGEX = YesPlease
THREADED_DELTA_SEARCH = YesPlease
ifeq ($(uname_R),5.7)
NEEDS_RESOLV = YesPlease
NO_IPV6 = YesPlease
@ -850,7 +843,6 @@ ifeq ($(uname_S),FreeBSD) @@ -850,7 +843,6 @@ ifeq ($(uname_S),FreeBSD)
BASIC_LDFLAGS += -L/usr/local/lib
DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
USE_ST_TIMESPEC = YesPlease
THREADED_DELTA_SEARCH = YesPlease
ifeq ($(shell expr "$(uname_R)" : '4\.'),2)
PTHREAD_LIBS = -pthread
NO_UINTMAX_T = YesPlease
@ -864,7 +856,6 @@ ifeq ($(uname_S),OpenBSD) @@ -864,7 +856,6 @@ ifeq ($(uname_S),OpenBSD)
NEEDS_LIBICONV = YesPlease
BASIC_CFLAGS += -I/usr/local/include
BASIC_LDFLAGS += -L/usr/local/lib
THREADED_DELTA_SEARCH = YesPlease
endif
ifeq ($(uname_S),NetBSD)
ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2)
@ -872,7 +863,6 @@ ifeq ($(uname_S),NetBSD) @@ -872,7 +863,6 @@ ifeq ($(uname_S),NetBSD)
endif
BASIC_CFLAGS += -I/usr/pkg/include
BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
THREADED_DELTA_SEARCH = YesPlease
USE_ST_TIMESPEC = YesPlease
NO_MKSTEMPS = YesPlease
endif
@ -887,9 +877,7 @@ ifeq ($(uname_S),AIX) @@ -887,9 +877,7 @@ ifeq ($(uname_S),AIX)
INTERNAL_QSORT = UnfortunatelyYes
NEEDS_LIBICONV=YesPlease
BASIC_CFLAGS += -D_LARGE_FILES
ifneq ($(shell expr "$(uname_V)" : '[1234]'),1)
THREADED_DELTA_SEARCH = YesPlease
else
ifeq ($(shell expr "$(uname_V)" : '[1234]'),1)
NO_PTHREADS = YesPlease
endif
endif
@ -915,7 +903,6 @@ ifeq ($(uname_S),IRIX) @@ -915,7 +903,6 @@ ifeq ($(uname_S),IRIX)
SNPRINTF_RETURNS_BOGUS = YesPlease
SHELL_PATH = /usr/gnu/bin/bash
NEEDS_LIBGEN = YesPlease
THREADED_DELTA_SEARCH = YesPlease
endif
ifeq ($(uname_S),IRIX64)
NO_SETENV=YesPlease
@ -934,7 +921,6 @@ ifeq ($(uname_S),IRIX64) @@ -934,7 +921,6 @@ ifeq ($(uname_S),IRIX64)
SNPRINTF_RETURNS_BOGUS = YesPlease
SHELL_PATH=/usr/gnu/bin/bash
NEEDS_LIBGEN = YesPlease
THREADED_DELTA_SEARCH = YesPlease
endif
ifeq ($(uname_S),HP-UX)
NO_IPV6=YesPlease
@ -984,7 +970,6 @@ ifeq ($(uname_S),Windows) @@ -984,7 +970,6 @@ ifeq ($(uname_S),Windows)
NO_CURL = YesPlease
NO_PYTHON = YesPlease
BLK_SHA1 = YesPlease
THREADED_DELTA_SEARCH = YesPlease

CC = compat/vcbuild/scripts/clink.pl
AR = compat/vcbuild/scripts/lib.pl
@ -1036,7 +1021,6 @@ ifneq (,$(findstring MINGW,$(uname_S))) @@ -1036,7 +1021,6 @@ ifneq (,$(findstring MINGW,$(uname_S)))
NO_REGEX = YesPlease
NO_PYTHON = YesPlease
BLK_SHA1 = YesPlease
THREADED_DELTA_SEARCH = YesPlease
COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/fnmatch -Icompat/win32
COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
COMPAT_OBJS += compat/mingw.o compat/fnmatch/fnmatch.o compat/winansi.o \
@ -1334,16 +1318,12 @@ ifdef RUNTIME_PREFIX @@ -1334,16 +1318,12 @@ ifdef RUNTIME_PREFIX
endif

ifdef NO_PTHREADS
THREADED_DELTA_SEARCH =
BASIC_CFLAGS += -DNO_PTHREADS
else
EXTLIBS += $(PTHREAD_LIBS)
endif

ifdef THREADED_DELTA_SEARCH
BASIC_CFLAGS += -DTHREADED_DELTA_SEARCH
LIB_OBJS += thread-utils.o
endif

ifdef DIR_HAS_BSD_GROUP_SEMANTICS
COMPAT_CFLAGS += -DDIR_HAS_BSD_GROUP_SEMANTICS
endif

12
builtin-pack-objects.c

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
#include "progress.h"
#include "refs.h"

#ifdef THREADED_DELTA_SEARCH
#ifndef NO_PTHREADS
#include "thread-utils.h"
#include <pthread.h>
#endif
@ -1255,7 +1255,7 @@ static int delta_cacheable(unsigned long src_size, unsigned long trg_size, @@ -1255,7 +1255,7 @@ static int delta_cacheable(unsigned long src_size, unsigned long trg_size,
return 0;
}

#ifdef THREADED_DELTA_SEARCH
#ifndef NO_PTHREADS

static pthread_mutex_t read_mutex;
#define read_lock() pthread_mutex_lock(&read_mutex)
@ -1380,7 +1380,7 @@ static int try_delta(struct unpacked *trg, struct unpacked *src, @@ -1380,7 +1380,7 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
/*
* Handle memory allocation outside of the cache
* accounting lock. Compiler will optimize the strangeness
* away when THREADED_DELTA_SEARCH is not defined.
* away when NO_PTHREADS is defined.
*/
free(trg_entry->delta_data);
cache_lock();
@ -1567,7 +1567,7 @@ static void find_deltas(struct object_entry **list, unsigned *list_size, @@ -1567,7 +1567,7 @@ static void find_deltas(struct object_entry **list, unsigned *list_size,
free(array);
}

#ifdef THREADED_DELTA_SEARCH
#ifndef NO_PTHREADS

/*
* The main thread waits on the condition that (at least) one of the workers
@ -1899,7 +1899,7 @@ static int git_pack_config(const char *k, const char *v, void *cb) @@ -1899,7 +1899,7 @@ static int git_pack_config(const char *k, const char *v, void *cb)
if (delta_search_threads < 0)
die("invalid number of threads specified (%d)",
delta_search_threads);
#ifndef THREADED_DELTA_SEARCH
#ifdef NO_PTHREADS
if (delta_search_threads != 1)
warning("no threads support, ignoring %s", k);
#endif
@ -2227,7 +2227,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) @@ -2227,7 +2227,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
delta_search_threads = strtoul(arg+10, &end, 0);
if (!arg[10] || *end || delta_search_threads < 0)
usage(pack_usage);
#ifndef THREADED_DELTA_SEARCH
#ifdef NO_PTHREADS
if (delta_search_threads != 1)
warning("no threads support, "
"ignoring %s", arg);

1
config.mak.in

@ -56,5 +56,4 @@ NO_DEFLATE_BOUND=@NO_DEFLATE_BOUND@ @@ -56,5 +56,4 @@ NO_DEFLATE_BOUND=@NO_DEFLATE_BOUND@
FREAD_READS_DIRECTORIES=@FREAD_READS_DIRECTORIES@
SNPRINTF_RETURNS_BOGUS=@SNPRINTF_RETURNS_BOGUS@
NO_PTHREADS=@NO_PTHREADS@
THREADED_DELTA_SEARCH=@THREADED_DELTA_SEARCH@
PTHREAD_LIBS=@PTHREAD_LIBS@

9
configure.ac

@ -762,10 +762,9 @@ AC_SUBST(NO_MKSTEMPS) @@ -762,10 +762,9 @@ AC_SUBST(NO_MKSTEMPS)
# Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
# Enable it on Windows. By default, symrefs are still used.
#
# Define NO_PTHREADS if we do not have pthreads
# Define NO_PTHREADS if we do not have pthreads.
#
# Define PTHREAD_LIBS to the linker flag used for Pthread support and define
# THREADED_DELTA_SEARCH if Pthreads are available.
# Define PTHREAD_LIBS to the linker flag used for Pthread support.
AC_DEFUN([PTHREADTEST_SRC], [
#include <pthread.h>

@ -782,7 +781,6 @@ dnl [[pthread_mutex_t test_mutex;]] @@ -782,7 +781,6 @@ dnl [[pthread_mutex_t test_mutex;]]
dnl )])

NO_PTHREADS=UnfortunatelyYes
THREADED_DELTA_SEARCH=
PTHREAD_LIBS=

if test -n "$USER_NOPTHREAD"; then
@ -798,7 +796,6 @@ elif test -z "$PTHREAD_CFLAGS"; then @@ -798,7 +796,6 @@ elif test -z "$PTHREAD_CFLAGS"; then
[AC_MSG_RESULT([yes])
NO_PTHREADS=
PTHREAD_LIBS="$opt"
THREADED_DELTA_SEARCH=YesPlease
break
],
[AC_MSG_RESULT([no])])
@ -812,7 +809,6 @@ else @@ -812,7 +809,6 @@ else
[AC_MSG_RESULT([yes])
NO_PTHREADS=
PTHREAD_LIBS="$PTHREAD_CFLAGS"
THREADED_DELTA_SEARCH=YesPlease
],
[AC_MSG_RESULT([no])])

@ -823,7 +819,6 @@ CFLAGS="$old_CFLAGS" @@ -823,7 +819,6 @@ CFLAGS="$old_CFLAGS"

AC_SUBST(PTHREAD_LIBS)
AC_SUBST(NO_PTHREADS)
AC_SUBST(THREADED_DELTA_SEARCH)

## Output files
AC_CONFIG_FILES(["${config_file}":"${config_in}":"${config_append}"])

Loading…
Cancel
Save