Add configure option to control ZSTD_STATIC_LINKING_ONLY

This commit is contained in:
Nick Mathewson 2018-02-06 11:58:05 -05:00
parent a77a366b87
commit a03488954c
2 changed files with 10 additions and 4 deletions

View File

@ -61,6 +61,8 @@ AC_ARG_ENABLE(cargo-online-mode,
AS_HELP_STRING(--enable-cargo-online-mode, [Allow cargo to make network requests to fetch crates. For builds with rust only.]))
AC_ARG_ENABLE(restart-debugging,
AS_HELP_STRING(--enable-restart-debugging, [Build Tor with support for debugging in-process restart. Developers only.]))
AC_ARG_ENABLE(zstd-advanced-apis,
AS_HELP_STRING(--disable-zstd-advanced-apis, [Build without support for zstd's "static-only" APIs.]))
if test "x$enable_coverage" != "xyes" -a "x$enable_asserts_in_tests" = "xno" ; then
AC_MSG_ERROR([Can't disable assertions outside of coverage build])
@ -114,6 +116,10 @@ if test "$enable_restart_debugging" = "yes"; then
[Defined if we're building with support for in-process restart debugging.])
fi
if test "$enable_zstd_advanced_apis" != "no"; then
AC_DEFINE(ENABLE_ZSTD_ADVANCED_APIS, 1,
[Defined if we're going to try to use zstd's "static-only" APIs.])
fi
# systemd support
if test "x$enable_systemd" = "xno"; then

View File

@ -18,12 +18,12 @@
#include "compress.h"
#include "compress_zstd.h"
#ifdef ENABLE_ZSTD_ADVANCED_APIS
/* This is a lie, but we make sure it doesn't get us in trouble by wrapping
* all invocations of zstd's static-only functions in a check to make sure
* that the compile-time version matches the run-time version.
*
* Note: Make sure that this file still builds with this macro disabled. */
* that the compile-time version matches the run-time version. */
#define ZSTD_STATIC_LINKING_ONLY
#endif
#ifdef HAVE_ZSTD
#include <zstd.h>
@ -499,7 +499,7 @@ tor_zstd_init(void)
void
tor_zstd_warn_if_version_mismatched(void)
{
#ifdef HAVE_ZSTD
#if defined(HAVE_ZSTD) && defined(ENABLE_ZSTD_ADVANCED_APIS)
if (! tor_zstd_can_use_static_apis()) {
char header_version[VERSION_STR_MAX_LEN];
char runtime_version[VERSION_STR_MAX_LEN];