Merge branch 'ab/sha-makefile-doc'
Makefile comments updates and reordering to clarify knobs used to choose SHA implementations. * ab/sha-makefile-doc: Makefile: discuss SHAttered in *_SHA{1,256} discussion Makefile: document default SHA-1 backend on OSX Makefile & test-tool: replace "DC_SHA1" variable with a "define" Makefile: document SHA-1 and SHA-256 default and selection order Makefile: document default SHA-256 backend Makefile: rephrase the discussion of *_SHA1 knobs Makefile: create and use sections for "define" flag listing Makefile: correct DC_SHA1 documentation INSTALL: remove discussion of SHA-1 backends Makefile: always (re)set DC_SHA1 on fallback
This commit is contained in:
4
INSTALL
4
INSTALL
@ -133,10 +133,6 @@ Issues of note:
|
|||||||
you are using libcurl older than 7.34.0. Otherwise you can use
|
you are using libcurl older than 7.34.0. Otherwise you can use
|
||||||
NO_OPENSSL without losing git-imap-send.
|
NO_OPENSSL without losing git-imap-send.
|
||||||
|
|
||||||
By default, git uses OpenSSL for SHA1 but it will use its own
|
|
||||||
library (inspired by Mozilla's) with either NO_OPENSSL or
|
|
||||||
BLK_SHA1.
|
|
||||||
|
|
||||||
- "libcurl" library is used for fetching and pushing
|
- "libcurl" library is used for fetching and pushing
|
||||||
repositories over http:// or https://, as well as by
|
repositories over http:// or https://, as well as by
|
||||||
git-imap-send if the curl version is >= 7.34.0. If you do
|
git-imap-send if the curl version is >= 7.34.0. If you do
|
||||||
|
252
Makefile
252
Makefile
@ -4,8 +4,20 @@ all::
|
|||||||
# Import tree-wide shared Makefile behavior and libraries
|
# Import tree-wide shared Makefile behavior and libraries
|
||||||
include shared.mak
|
include shared.mak
|
||||||
|
|
||||||
|
# == Makefile defines ==
|
||||||
|
#
|
||||||
|
# These defines change the behavior of the Makefile itself, but have
|
||||||
|
# no impact on what it builds:
|
||||||
|
#
|
||||||
# Define V=1 to have a more verbose compile.
|
# Define V=1 to have a more verbose compile.
|
||||||
#
|
#
|
||||||
|
# == Portability and optional library defines ==
|
||||||
|
#
|
||||||
|
# These defines indicate what Git can expect from the OS, what
|
||||||
|
# libraries are available etc. Much of this is auto-detected in
|
||||||
|
# config.mak.uname, or in configure.ac when using the optional "make
|
||||||
|
# configure && ./configure" (see INSTALL).
|
||||||
|
#
|
||||||
# Define SHELL_PATH to a POSIX shell if your /bin/sh is broken.
|
# Define SHELL_PATH to a POSIX shell if your /bin/sh is broken.
|
||||||
#
|
#
|
||||||
# Define SANE_TOOL_PATH to a colon-separated list of paths to prepend
|
# Define SANE_TOOL_PATH to a colon-separated list of paths to prepend
|
||||||
@ -30,68 +42,8 @@ include shared.mak
|
|||||||
#
|
#
|
||||||
# Define NO_OPENSSL environment variable if you do not have OpenSSL.
|
# Define NO_OPENSSL environment variable if you do not have OpenSSL.
|
||||||
#
|
#
|
||||||
# Define USE_LIBPCRE if you have and want to use libpcre. Various
|
|
||||||
# commands such as log and grep offer runtime options to use
|
|
||||||
# Perl-compatible regular expressions instead of standard or extended
|
|
||||||
# POSIX regular expressions.
|
|
||||||
#
|
|
||||||
# Only libpcre version 2 is supported. USE_LIBPCRE2 is a synonym for
|
|
||||||
# USE_LIBPCRE, support for the old USE_LIBPCRE1 has been removed.
|
|
||||||
#
|
|
||||||
# Define LIBPCREDIR=/foo/bar if your PCRE header and library files are
|
|
||||||
# in /foo/bar/include and /foo/bar/lib directories.
|
|
||||||
#
|
|
||||||
# Define HAVE_ALLOCA_H if you have working alloca(3) defined in that header.
|
# Define HAVE_ALLOCA_H if you have working alloca(3) defined in that header.
|
||||||
#
|
#
|
||||||
# Define NO_CURL if you do not have libcurl installed. git-http-fetch and
|
|
||||||
# git-http-push are not built, and you cannot use http:// and https://
|
|
||||||
# transports (neither smart nor dumb).
|
|
||||||
#
|
|
||||||
# Define CURLDIR=/foo/bar if your curl header and library files are in
|
|
||||||
# /foo/bar/include and /foo/bar/lib directories.
|
|
||||||
#
|
|
||||||
# Define CURL_CONFIG to curl's configuration program that prints information
|
|
||||||
# about the library (e.g., its version number). The default is 'curl-config'.
|
|
||||||
#
|
|
||||||
# Define CURL_LDFLAGS to specify flags that you need to link when using libcurl,
|
|
||||||
# if you do not want to rely on the libraries provided by CURL_CONFIG. The
|
|
||||||
# default value is a result of `curl-config --libs`. An example value for
|
|
||||||
# CURL_LDFLAGS is as follows:
|
|
||||||
#
|
|
||||||
# CURL_LDFLAGS=-lcurl
|
|
||||||
#
|
|
||||||
# Define NO_EXPAT if you do not have expat installed. git-http-push is
|
|
||||||
# not built, and you cannot push using http:// and https:// transports (dumb).
|
|
||||||
#
|
|
||||||
# Define EXPATDIR=/foo/bar if your expat header and library files are in
|
|
||||||
# /foo/bar/include and /foo/bar/lib directories.
|
|
||||||
#
|
|
||||||
# Define EXPAT_NEEDS_XMLPARSE_H if you have an old version of expat (e.g.,
|
|
||||||
# 1.1 or 1.2) that provides xmlparse.h instead of expat.h.
|
|
||||||
#
|
|
||||||
# Define NO_GETTEXT if you don't want Git output to be translated.
|
|
||||||
# A translated Git requires GNU libintl or another gettext implementation,
|
|
||||||
# plus libintl-perl at runtime.
|
|
||||||
#
|
|
||||||
# Define USE_GETTEXT_SCHEME and set it to 'fallthrough', if you don't trust
|
|
||||||
# the installed gettext translation of the shell scripts output.
|
|
||||||
#
|
|
||||||
# Define HAVE_LIBCHARSET_H if you haven't set NO_GETTEXT and you can't
|
|
||||||
# trust the langinfo.h's nl_langinfo(CODESET) function to return the
|
|
||||||
# current character set. GNU and Solaris have a nl_langinfo(CODESET),
|
|
||||||
# FreeBSD can use either, but MinGW and some others need to use
|
|
||||||
# libcharset.h's locale_charset() instead.
|
|
||||||
#
|
|
||||||
# Define CHARSET_LIB to the library you need to link with in order to
|
|
||||||
# use locale_charset() function. On some platforms this needs to set to
|
|
||||||
# -lcharset, on others to -liconv .
|
|
||||||
#
|
|
||||||
# Define LIBC_CONTAINS_LIBINTL if your gettext implementation doesn't
|
|
||||||
# need -lintl when linking.
|
|
||||||
#
|
|
||||||
# Define NO_MSGFMT_EXTENDED_OPTIONS if your implementation of msgfmt
|
|
||||||
# doesn't support GNU extensions like --check and --statistics
|
|
||||||
#
|
|
||||||
# Define HAVE_PATHS_H if you have paths.h and want to use the default PATH
|
# Define HAVE_PATHS_H if you have paths.h and want to use the default PATH
|
||||||
# it specifies.
|
# it specifies.
|
||||||
#
|
#
|
||||||
@ -152,39 +104,6 @@ include shared.mak
|
|||||||
# and do not want to use Apple's CommonCrypto library. This allows you
|
# and do not want to use Apple's CommonCrypto library. This allows you
|
||||||
# to provide your own OpenSSL library, for example from MacPorts.
|
# to provide your own OpenSSL library, for example from MacPorts.
|
||||||
#
|
#
|
||||||
# Define BLK_SHA1 environment variable to make use of the bundled
|
|
||||||
# optimized C SHA1 routine.
|
|
||||||
#
|
|
||||||
# Define DC_SHA1 to unconditionally enable the collision-detecting sha1
|
|
||||||
# algorithm. This is slower, but may detect attempted collision attacks.
|
|
||||||
# Takes priority over other *_SHA1 knobs.
|
|
||||||
#
|
|
||||||
# Define DC_SHA1_EXTERNAL in addition to DC_SHA1 if you want to build / link
|
|
||||||
# git with the external SHA1 collision-detect library.
|
|
||||||
# Without this option, i.e. the default behavior is to build git with its
|
|
||||||
# own built-in code (or submodule).
|
|
||||||
#
|
|
||||||
# Define DC_SHA1_SUBMODULE in addition to DC_SHA1 to use the
|
|
||||||
# sha1collisiondetection shipped as a submodule instead of the
|
|
||||||
# non-submodule copy in sha1dc/. This is an experimental option used
|
|
||||||
# by the git project to migrate to using sha1collisiondetection as a
|
|
||||||
# submodule.
|
|
||||||
#
|
|
||||||
# Define OPENSSL_SHA1 environment variable when running make to link
|
|
||||||
# with the SHA1 routine from openssl library.
|
|
||||||
#
|
|
||||||
# Define SHA1_MAX_BLOCK_SIZE to limit the amount of data that will be hashed
|
|
||||||
# in one call to the platform's SHA1_Update(). e.g. APPLE_COMMON_CRYPTO
|
|
||||||
# wants 'SHA1_MAX_BLOCK_SIZE=1024L*1024L*1024L' defined.
|
|
||||||
#
|
|
||||||
# Define BLK_SHA256 to use the built-in SHA-256 routines.
|
|
||||||
#
|
|
||||||
# Define NETTLE_SHA256 to use the SHA-256 routines in libnettle.
|
|
||||||
#
|
|
||||||
# Define GCRYPT_SHA256 to use the SHA-256 routines in libgcrypt.
|
|
||||||
#
|
|
||||||
# Define OPENSSL_SHA256 to use the SHA-256 routines in OpenSSL.
|
|
||||||
#
|
|
||||||
# Define NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin).
|
# Define NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin).
|
||||||
#
|
#
|
||||||
# Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin).
|
# Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin).
|
||||||
@ -490,6 +409,151 @@ include shared.mak
|
|||||||
# to the "<name>" of the corresponding `compat/fsmonitor/fsm-settings-<name>.c`
|
# to the "<name>" of the corresponding `compat/fsmonitor/fsm-settings-<name>.c`
|
||||||
# that implements the `fsm_os_settings__*()` routines.
|
# that implements the `fsm_os_settings__*()` routines.
|
||||||
#
|
#
|
||||||
|
# === Optional library: libintl ===
|
||||||
|
#
|
||||||
|
# Define NO_GETTEXT if you don't want Git output to be translated.
|
||||||
|
# A translated Git requires GNU libintl or another gettext implementation,
|
||||||
|
# plus libintl-perl at runtime.
|
||||||
|
#
|
||||||
|
# Define USE_GETTEXT_SCHEME and set it to 'fallthrough', if you don't trust
|
||||||
|
# the installed gettext translation of the shell scripts output.
|
||||||
|
#
|
||||||
|
# Define HAVE_LIBCHARSET_H if you haven't set NO_GETTEXT and you can't
|
||||||
|
# trust the langinfo.h's nl_langinfo(CODESET) function to return the
|
||||||
|
# current character set. GNU and Solaris have a nl_langinfo(CODESET),
|
||||||
|
# FreeBSD can use either, but MinGW and some others need to use
|
||||||
|
# libcharset.h's locale_charset() instead.
|
||||||
|
#
|
||||||
|
# Define CHARSET_LIB to the library you need to link with in order to
|
||||||
|
# use locale_charset() function. On some platforms this needs to set to
|
||||||
|
# -lcharset, on others to -liconv .
|
||||||
|
#
|
||||||
|
# Define LIBC_CONTAINS_LIBINTL if your gettext implementation doesn't
|
||||||
|
# need -lintl when linking.
|
||||||
|
#
|
||||||
|
# Define NO_MSGFMT_EXTENDED_OPTIONS if your implementation of msgfmt
|
||||||
|
# doesn't support GNU extensions like --check and --statistics
|
||||||
|
#
|
||||||
|
# === Optional library: libexpat ===
|
||||||
|
#
|
||||||
|
# Define NO_EXPAT if you do not have expat installed. git-http-push is
|
||||||
|
# not built, and you cannot push using http:// and https:// transports (dumb).
|
||||||
|
#
|
||||||
|
# Define EXPATDIR=/foo/bar if your expat header and library files are in
|
||||||
|
# /foo/bar/include and /foo/bar/lib directories.
|
||||||
|
#
|
||||||
|
# Define EXPAT_NEEDS_XMLPARSE_H if you have an old version of expat (e.g.,
|
||||||
|
# 1.1 or 1.2) that provides xmlparse.h instead of expat.h.
|
||||||
|
|
||||||
|
# === Optional library: libcurl ===
|
||||||
|
#
|
||||||
|
# Define NO_CURL if you do not have libcurl installed. git-http-fetch and
|
||||||
|
# git-http-push are not built, and you cannot use http:// and https://
|
||||||
|
# transports (neither smart nor dumb).
|
||||||
|
#
|
||||||
|
# Define CURLDIR=/foo/bar if your curl header and library files are in
|
||||||
|
# /foo/bar/include and /foo/bar/lib directories.
|
||||||
|
#
|
||||||
|
# Define CURL_CONFIG to curl's configuration program that prints information
|
||||||
|
# about the library (e.g., its version number). The default is 'curl-config'.
|
||||||
|
#
|
||||||
|
# Define CURL_LDFLAGS to specify flags that you need to link when using libcurl,
|
||||||
|
# if you do not want to rely on the libraries provided by CURL_CONFIG. The
|
||||||
|
# default value is a result of `curl-config --libs`. An example value for
|
||||||
|
# CURL_LDFLAGS is as follows:
|
||||||
|
#
|
||||||
|
# CURL_LDFLAGS=-lcurl
|
||||||
|
#
|
||||||
|
# === Optional library: libpcre2 ===
|
||||||
|
#
|
||||||
|
# Define USE_LIBPCRE if you have and want to use libpcre. Various
|
||||||
|
# commands such as log and grep offer runtime options to use
|
||||||
|
# Perl-compatible regular expressions instead of standard or extended
|
||||||
|
# POSIX regular expressions.
|
||||||
|
#
|
||||||
|
# Only libpcre version 2 is supported. USE_LIBPCRE2 is a synonym for
|
||||||
|
# USE_LIBPCRE, support for the old USE_LIBPCRE1 has been removed.
|
||||||
|
#
|
||||||
|
# Define LIBPCREDIR=/foo/bar if your PCRE header and library files are
|
||||||
|
# in /foo/bar/include and /foo/bar/lib directories.
|
||||||
|
#
|
||||||
|
# == SHA-1 and SHA-256 defines ==
|
||||||
|
#
|
||||||
|
# === SHA-1 backend ===
|
||||||
|
#
|
||||||
|
# ==== Security ====
|
||||||
|
#
|
||||||
|
# Due to the SHAttered (https://shattered.io) attack vector on SHA-1
|
||||||
|
# it's strongly recommended to use the sha1collisiondetection
|
||||||
|
# counter-cryptanalysis library for SHA-1 hashing.
|
||||||
|
#
|
||||||
|
# If you know that you can trust the repository contents, or where
|
||||||
|
# potential SHA-1 attacks are otherwise mitigated the other backends
|
||||||
|
# listed in "SHA-1 implementations" are faster than
|
||||||
|
# sha1collisiondetection.
|
||||||
|
#
|
||||||
|
# ==== Default SHA-1 backend ====
|
||||||
|
#
|
||||||
|
# If no *_SHA1 backend is picked, the first supported one listed in
|
||||||
|
# "SHA-1 implementations" will be picked.
|
||||||
|
#
|
||||||
|
# ==== Options common to all SHA-1 implementations ====
|
||||||
|
#
|
||||||
|
# Define SHA1_MAX_BLOCK_SIZE to limit the amount of data that will be hashed
|
||||||
|
# in one call to the platform's SHA1_Update(). e.g. APPLE_COMMON_CRYPTO
|
||||||
|
# wants 'SHA1_MAX_BLOCK_SIZE=1024L*1024L*1024L' defined.
|
||||||
|
#
|
||||||
|
# ==== SHA-1 implementations ====
|
||||||
|
#
|
||||||
|
# Define OPENSSL_SHA1 to link to the SHA-1 routines from the OpenSSL
|
||||||
|
# library.
|
||||||
|
#
|
||||||
|
# Define BLK_SHA1 to make use of optimized C SHA-1 routines bundled
|
||||||
|
# with git (in the block-sha1/ directory).
|
||||||
|
#
|
||||||
|
# Define NO_APPLE_COMMON_CRYPTO on OSX to opt-out of using the
|
||||||
|
# "APPLE_COMMON_CRYPTO" backend for SHA-1, which is currently the
|
||||||
|
# default on that OS. On macOS 01.4 (Tiger) or older,
|
||||||
|
# NO_APPLE_COMMON_CRYPTO is defined by default.
|
||||||
|
#
|
||||||
|
# If don't enable any of the *_SHA1 settings in this section, Git will
|
||||||
|
# default to its built-in sha1collisiondetection library, which is a
|
||||||
|
# collision-detecting sha1 This is slower, but may detect attempted
|
||||||
|
# collision attacks.
|
||||||
|
#
|
||||||
|
# ==== Options for the sha1collisiondetection library ====
|
||||||
|
#
|
||||||
|
# Define DC_SHA1_EXTERNAL if you want to build / link
|
||||||
|
# git with the external SHA1 collision-detect library.
|
||||||
|
# Without this option, i.e. the default behavior is to build git with its
|
||||||
|
# own built-in code (or submodule).
|
||||||
|
#
|
||||||
|
# Define DC_SHA1_SUBMODULE to use the
|
||||||
|
# sha1collisiondetection shipped as a submodule instead of the
|
||||||
|
# non-submodule copy in sha1dc/. This is an experimental option used
|
||||||
|
# by the git project to migrate to using sha1collisiondetection as a
|
||||||
|
# submodule.
|
||||||
|
#
|
||||||
|
# === SHA-256 backend ===
|
||||||
|
#
|
||||||
|
# ==== Security ====
|
||||||
|
#
|
||||||
|
# Unlike SHA-1 the SHA-256 algorithm does not suffer from any known
|
||||||
|
# vulnerabilities, so any implementation will do.
|
||||||
|
#
|
||||||
|
# ==== SHA-256 implementations ====
|
||||||
|
#
|
||||||
|
# Define OPENSSL_SHA256 to use the SHA-256 routines in OpenSSL.
|
||||||
|
#
|
||||||
|
# Define NETTLE_SHA256 to use the SHA-256 routines in libnettle.
|
||||||
|
#
|
||||||
|
# Define GCRYPT_SHA256 to use the SHA-256 routines in libgcrypt.
|
||||||
|
#
|
||||||
|
# If don't enable any of the *_SHA256 settings in this section, Git
|
||||||
|
# will default to its built-in sha256 implementation.
|
||||||
|
#
|
||||||
|
# == DEVELOPER defines ==
|
||||||
|
#
|
||||||
# Define DEVELOPER to enable more compiler warnings. Compiler version
|
# Define DEVELOPER to enable more compiler warnings. Compiler version
|
||||||
# and family are auto detected, but could be overridden by defining
|
# and family are auto detected, but could be overridden by defining
|
||||||
# COMPILER_FEATURES (see config.mak.dev). You can still set
|
# COMPILER_FEATURES (see config.mak.dev). You can still set
|
||||||
@ -1826,7 +1890,6 @@ ifdef APPLE_COMMON_CRYPTO
|
|||||||
COMPAT_CFLAGS += -DCOMMON_DIGEST_FOR_OPENSSL
|
COMPAT_CFLAGS += -DCOMMON_DIGEST_FOR_OPENSSL
|
||||||
BASIC_CFLAGS += -DSHA1_APPLE
|
BASIC_CFLAGS += -DSHA1_APPLE
|
||||||
else
|
else
|
||||||
DC_SHA1 := YesPlease
|
|
||||||
BASIC_CFLAGS += -DSHA1_DC
|
BASIC_CFLAGS += -DSHA1_DC
|
||||||
LIB_OBJS += sha1dc_git.o
|
LIB_OBJS += sha1dc_git.o
|
||||||
ifdef DC_SHA1_EXTERNAL
|
ifdef DC_SHA1_EXTERNAL
|
||||||
@ -2989,7 +3052,6 @@ GIT-BUILD-OPTIONS: FORCE
|
|||||||
@echo NO_REGEX=\''$(subst ','\'',$(subst ','\'',$(NO_REGEX)))'\' >>$@+
|
@echo NO_REGEX=\''$(subst ','\'',$(subst ','\'',$(NO_REGEX)))'\' >>$@+
|
||||||
@echo NO_UNIX_SOCKETS=\''$(subst ','\'',$(subst ','\'',$(NO_UNIX_SOCKETS)))'\' >>$@+
|
@echo NO_UNIX_SOCKETS=\''$(subst ','\'',$(subst ','\'',$(NO_UNIX_SOCKETS)))'\' >>$@+
|
||||||
@echo PAGER_ENV=\''$(subst ','\'',$(subst ','\'',$(PAGER_ENV)))'\' >>$@+
|
@echo PAGER_ENV=\''$(subst ','\'',$(subst ','\'',$(PAGER_ENV)))'\' >>$@+
|
||||||
@echo DC_SHA1=\''$(subst ','\'',$(subst ','\'',$(DC_SHA1)))'\' >>$@+
|
|
||||||
@echo SANITIZE_LEAK=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_LEAK)))'\' >>$@+
|
@echo SANITIZE_LEAK=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_LEAK)))'\' >>$@+
|
||||||
@echo SANITIZE_ADDRESS=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_ADDRESS)))'\' >>$@+
|
@echo SANITIZE_ADDRESS=\''$(subst ','\'',$(subst ','\'',$(SANITIZE_ADDRESS)))'\' >>$@+
|
||||||
@echo X=\'$(X)\' >>$@+
|
@echo X=\'$(X)\' >>$@+
|
||||||
|
@ -260,7 +260,7 @@ macos-latest)
|
|||||||
else
|
else
|
||||||
MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python2)"
|
MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python2)"
|
||||||
MAKEFLAGS="$MAKEFLAGS NO_APPLE_COMMON_CRYPTO=NoThanks"
|
MAKEFLAGS="$MAKEFLAGS NO_APPLE_COMMON_CRYPTO=NoThanks"
|
||||||
MAKEFLAGS="$MAKEFLAGS DC_SHA1=YesPlease NO_OPENSSL=NoThanks"
|
MAKEFLAGS="$MAKEFLAGS NO_OPENSSL=NoThanks"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -1025,7 +1025,6 @@ set(NO_PERL )
|
|||||||
set(NO_PTHREADS )
|
set(NO_PTHREADS )
|
||||||
set(NO_PYTHON )
|
set(NO_PYTHON )
|
||||||
set(PAGER_ENV "LESS=FRX LV=-c")
|
set(PAGER_ENV "LESS=FRX LV=-c")
|
||||||
set(DC_SHA1 YesPlease)
|
|
||||||
set(RUNTIME_PREFIX true)
|
set(RUNTIME_PREFIX true)
|
||||||
set(NO_GETTEXT )
|
set(NO_GETTEXT )
|
||||||
|
|
||||||
@ -1061,7 +1060,6 @@ file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PERL='${NO_PERL}'\n")
|
|||||||
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PTHREADS='${NO_PTHREADS}'\n")
|
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_PTHREADS='${NO_PTHREADS}'\n")
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_UNIX_SOCKETS='${NO_UNIX_SOCKETS}'\n")
|
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_UNIX_SOCKETS='${NO_UNIX_SOCKETS}'\n")
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PAGER_ENV='${PAGER_ENV}'\n")
|
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PAGER_ENV='${PAGER_ENV}'\n")
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "DC_SHA1='${DC_SHA1}'\n")
|
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "X='${EXE_EXTENSION}'\n")
|
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "X='${EXE_EXTENSION}'\n")
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_GETTEXT='${NO_GETTEXT}'\n")
|
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "NO_GETTEXT='${NO_GETTEXT}'\n")
|
||||||
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "RUNTIME_PREFIX='${RUNTIME_PREFIX}'\n")
|
file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "RUNTIME_PREFIX='${RUNTIME_PREFIX}'\n")
|
||||||
|
@ -17,6 +17,7 @@ void git_SHA1DCInit(SHA1_CTX *);
|
|||||||
void git_SHA1DCFinal(unsigned char [20], SHA1_CTX *);
|
void git_SHA1DCFinal(unsigned char [20], SHA1_CTX *);
|
||||||
void git_SHA1DCUpdate(SHA1_CTX *ctx, const void *data, unsigned long len);
|
void git_SHA1DCUpdate(SHA1_CTX *ctx, const void *data, unsigned long len);
|
||||||
|
|
||||||
|
#define platform_SHA_IS_SHA1DC /* used by "test-tool sha1-is-sha1dc" */
|
||||||
#define platform_SHA_CTX SHA1_CTX
|
#define platform_SHA_CTX SHA1_CTX
|
||||||
#define platform_SHA1_Init git_SHA1DCInit
|
#define platform_SHA1_Init git_SHA1DCInit
|
||||||
#define platform_SHA1_Update git_SHA1DCUpdate
|
#define platform_SHA1_Update git_SHA1DCUpdate
|
||||||
|
@ -5,3 +5,11 @@ int cmd__sha1(int ac, const char **av)
|
|||||||
{
|
{
|
||||||
return cmd_hash_impl(ac, av, GIT_HASH_SHA1);
|
return cmd_hash_impl(ac, av, GIT_HASH_SHA1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cmd__sha1_is_sha1dc(int argc UNUSED, const char **argv UNUSED)
|
||||||
|
{
|
||||||
|
#ifdef platform_SHA_IS_SHA1DC
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
@ -73,6 +73,7 @@ static struct test_cmd cmds[] = {
|
|||||||
{ "scrap-cache-tree", cmd__scrap_cache_tree },
|
{ "scrap-cache-tree", cmd__scrap_cache_tree },
|
||||||
{ "serve-v2", cmd__serve_v2 },
|
{ "serve-v2", cmd__serve_v2 },
|
||||||
{ "sha1", cmd__sha1 },
|
{ "sha1", cmd__sha1 },
|
||||||
|
{ "sha1-is-sha1dc", cmd__sha1_is_sha1dc },
|
||||||
{ "sha256", cmd__sha256 },
|
{ "sha256", cmd__sha256 },
|
||||||
{ "sigchain", cmd__sigchain },
|
{ "sigchain", cmd__sigchain },
|
||||||
{ "simple-ipc", cmd__simple_ipc },
|
{ "simple-ipc", cmd__simple_ipc },
|
||||||
|
@ -66,6 +66,7 @@ int cmd__run_command(int argc, const char **argv);
|
|||||||
int cmd__scrap_cache_tree(int argc, const char **argv);
|
int cmd__scrap_cache_tree(int argc, const char **argv);
|
||||||
int cmd__serve_v2(int argc, const char **argv);
|
int cmd__serve_v2(int argc, const char **argv);
|
||||||
int cmd__sha1(int argc, const char **argv);
|
int cmd__sha1(int argc, const char **argv);
|
||||||
|
int cmd__sha1_is_sha1dc(int argc, const char **argv);
|
||||||
int cmd__oid_array(int argc, const char **argv);
|
int cmd__oid_array(int argc, const char **argv);
|
||||||
int cmd__sha256(int argc, const char **argv);
|
int cmd__sha256(int argc, const char **argv);
|
||||||
int cmd__sigchain(int argc, const char **argv);
|
int cmd__sigchain(int argc, const char **argv);
|
||||||
|
@ -6,9 +6,11 @@ TEST_PASSES_SANITIZE_LEAK=true
|
|||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
TEST_DATA="$TEST_DIRECTORY/t0013"
|
TEST_DATA="$TEST_DIRECTORY/t0013"
|
||||||
|
|
||||||
if test -z "$DC_SHA1"
|
test_lazy_prereq SHA1_IS_SHA1DC 'test-tool sha1-is-sha1dc'
|
||||||
|
|
||||||
|
if ! test_have_prereq SHA1_IS_SHA1DC
|
||||||
then
|
then
|
||||||
skip_all='skipping sha1 collision tests, DC_SHA1 not set'
|
skip_all='skipping sha1 collision tests, not using sha1collisiondetection'
|
||||||
test_done
|
test_done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user