]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
configure: Fix the --enable-static-tor switch
authorDavid Goulet <dgoulet@torproject.org>
Wed, 18 Nov 2020 16:24:38 +0000 (11:24 -0500)
committerDavid Goulet <dgoulet@torproject.org>
Tue, 8 Dec 2020 14:14:49 +0000 (09:14 -0500)
The "-static" compile flag was set globally which means that all autoconf test
were attempting to be built statically and lead to failures of detecting
OpenSSL libraries and others.

This commit adds this flag only to the "tor" binary build.

There is also a fix on where to find libevent.a since it is using libtool, it
is in .libs/.

At this commit, there are still warnings being emitted that informs the user
that the built binary must still be linked dynamically with glibc.

Fixes #40111

Signed-off-by: David Goulet <dgoulet@torproject.org>
changes/ticket40111 [new file with mode: 0644]
configure.ac
src/app/include.am

diff --git a/changes/ticket40111 b/changes/ticket40111
new file mode 100644 (file)
index 0000000..a82ca0d
--- /dev/null
@@ -0,0 +1,7 @@
+  o Minor bugfixes (configure, build):
+    - Fix the --enable-static-tor switch to properly set the -static compile
+      option onto the tor binary only. Fixes bug 40111; bugfix on
+      0.2.3.1-alpha.
+    - Path to static libevent has been fixed as well which affects the
+      --enable-static-libevent to behave correctly now. The .a file is in
+      .libs/ of libevent repository, not at the root.
index 6eb09db429e2c145fd076de0192e8bf995393c88..83f6ad1821ad640663bb946b46d6410315fd4c70 100644 (file)
@@ -129,8 +129,9 @@ if test "$enable_static_tor" = "yes"; then
   enable_static_libevent="yes";
   enable_static_openssl="yes";
   enable_static_zlib="yes";
-  CFLAGS="$CFLAGS -static"
+  TOR_STATIC_LDFLAGS="-static"
 fi
+AC_SUBST(TOR_STATIC_LDFLAGS)
 
 if test "$enable_system_torrc" = "no"; then
   AC_DEFINE(DISABLE_SYSTEM_TORRC, 1,
@@ -953,7 +954,7 @@ if test "$enable_static_libevent" = "yes"; then
    if test "$tor_cv_library_libevent_dir" = "(system)"; then
      AC_MSG_ERROR("You must specify an explicit --with-libevent-dir=x option when using --enable-static-libevent")
    else
-     TOR_LIBEVENT_LIBS="$TOR_LIBDIR_libevent/libevent.a $STATIC_LIBEVENT_FLAGS"
+     TOR_LIBEVENT_LIBS="$TOR_LIBDIR_libevent/.libs/libevent.a $STATIC_LIBEVENT_FLAGS"
    fi
 else
      if test "x$ac_cv_header_event2_event_h" = "xyes"; then
index b81fad02761a757adc98226bfc3a532965d21131..8bb315fff1a34f2075b1732ae649e6e67e1c517f 100644 (file)
@@ -14,7 +14,8 @@ src_app_tor_SOURCES = src/app/main/tor_main.c
 # This seems to matter nowhere but on windows, but I assure you that it
 # matters a lot there, and is quite hard to debug if you forget to do it.
 
-src_app_tor_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) @TOR_LDFLAGS_libevent@
+src_app_tor_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \
+       @TOR_LDFLAGS_libevent@ @TOR_STATIC_LDFLAGS@
 src_app_tor_LDADD = libtor.a \
        $(rust_ldadd) \
        @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ $(TOR_LIBS_CRYPTLIB) \
@@ -26,7 +27,8 @@ if COVERAGE_ENABLED
 src_app_tor_cov_SOURCES = $(src_app_tor_SOURCES)
 src_app_tor_cov_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
 src_app_tor_cov_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
-src_app_tor_cov_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) @TOR_LDFLAGS_libevent@
+src_app_tor_cov_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \
+       @TOR_LDFLAGS_libevent@ @TOR_STATIC_LDFALGS@
 src_app_tor_cov_LDADD = src/test/libtor-testing.a \
        @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ $(TOR_LIBS_CRYPTLIB) \
        @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ \