From ca60a6ce3f4786626ac455ec1b798b2e8304635c Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Sun, 24 Jan 2010 19:32:41 +0100 Subject: [PATCH 1/2] New configure option: --enable-gcc-warnings-advisory the new configure option --enable-gcc-warnings-advisory enables all the gcc flags that --enable-gcc-warnings does with the exception of -Werror. --- configure.in | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index e15c326ad4..7e2dd034ed 100644 --- a/configure.in +++ b/configure.in @@ -95,6 +95,8 @@ fi AC_ARG_ENABLE(gcc-warnings, AS_HELP_STRING(--enable-gcc-warnings, enable verbose warnings)) +AC_ARG_ENABLE(gcc-warnings-advisory, + AS_HELP_STRING(--enable-gcc-warnings-advisory, [enable verbose warnings, excluding -Werror])) AC_ARG_ENABLE(local-appdata, AS_HELP_STRING(--enable-local-appdata, default to host local application data paths on Windows)) @@ -762,11 +764,12 @@ if test "$GCC" = yes; then else CFLAGS="$CFLAGS -g -O" enable_gcc_warnings=no + enable_gcc_warnings_advisory=no fi # Add some more warnings which we use in development but not in the # released versions. (Some relevant gcc versions can't handle these.) -if test x$enable_gcc_warnings = xyes; then +if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xyes; then AC_COMPILE_IFELSE(AC_LANG_PROGRAM([], [ #if !defined(__GNUC__) || (__GNUC__ < 4) @@ -789,7 +792,10 @@ if test x$enable_gcc_warnings = xyes; then have_shorten64_flag=no) CFLAGS="$save_CFLAGS" - CFLAGS="$CFLAGS -W -Wfloat-equal -Wundef -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wbad-function-cast -Wswitch-enum -Werror" + CFLAGS="$CFLAGS -W -Wfloat-equal -Wundef -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wbad-function-cast -Wswitch-enum" + if test x$enable_gcc_warnings = xyes; then + CFLAGS="$CFLAGS -Werror" + fi # Disabled, so we can use mallinfo(): -Waggregate-return From b6038f4ac646b52f0819724b344adcf04bc2a440 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sun, 24 Jan 2010 14:34:47 -0500 Subject: [PATCH 2/2] Add --enable-static-(openssl|libevent) options These options only work when using --with-(openssl|libevent)-dir to explicitly pick a libevent or openssl location. --- acinclude.m4 | 2 ++ configure.in | 28 ++++++++++++++++++++++++++++ src/or/Makefile.am | 4 ++-- src/tools/Makefile.am | 6 +++--- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 47d421c260..76e992572c 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -27,8 +27,10 @@ AC_DEFUN([TOR_DEFINE_CODEPATH], else if test -d "$1/lib"; then TOR_LDFLAGS_$2="-L$1/lib" + TOR_LIBDIR_$2="$1/lib" else TOR_LDFLAGS_$2="-L$1" + TOR_LIBDIR_$2="$1" fi if test -d "$1/include"; then TOR_CPPFLAGS_$2="-I$1/include" diff --git a/configure.in b/configure.in index 7e2dd034ed..92dc45fd68 100644 --- a/configure.in +++ b/configure.in @@ -42,6 +42,10 @@ AC_ARG_ENABLE(openbsd-malloc, AS_HELP_STRING(--enable-openbsd-malloc, Use malloc code from openbsd. Linux only)) AC_ARG_ENABLE(instrument-downloads, AS_HELP_STRING(--enable-instrument-downloads, Instrument downloads of directory resources etc.)) +AC_ARG_ENABLE(static-openssl, + AS_HELP_STRING(--enable-static-openssl, Link against a static openssl library. Requires --with-openssl-dir)) +AC_ARG_ENABLE(static-libevent, + AS_HELP_STRING(--enable-static-libevent, Link against a static libevent library. Requires --with-libevent-dir)) if test x$enable_buf_freelists != xno; then AC_DEFINE(ENABLE_BUF_FREELISTS, 1, @@ -281,6 +285,17 @@ LIBS="$save_LIBS" LDFLAGS="$save_LDFLAGS" CPPFLAGS="$save_CPPFLAGS" +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" + fi +else + TOR_LIBEVENT_LIBS="-levent" +fi +AC_SUBST(TOR_LIBEVENT_LIBS) + dnl ------------------------------------------------------ dnl Where do you live, openssl? And how do we call you? @@ -306,6 +321,19 @@ TOR_SEARCH_LIBRARY(openssl, $tryssldir, [-lssl -lcrypto $TOR_LIB_GDI], dnl XXXX check for OPENSSL_VERSION_NUMBER == SSLeay() +echo "tor_cv_library_openssl_dir is $tor_cv_library_openssl_dir" +if test "$enable_static_openssl" = "yes"; then + if test "$tor_cv_library_openssl_dir" = "(system)"; then + AC_MSG_ERROR("You must specify an explicit --with-openssl-dir=x option when using --enable-static-openssl") + else + TOR_OPENSSL_LIBS="$TOR_LIBDIR_openssl/libcrypto.a $TOR_LIBDIR_openssl/libssl.a" + fi +else + TOR_OPENSSL_LIBS="-lcrypto -lssl" +fi +echo "TOR_OPENSSL_LIBS=$TOR_OPENSSL_LIBS" +AC_SUBST(TOR_OPENSSL_LIBS) + dnl ------------------------------------------------------ dnl Where do you live, zlib? And how do we call you? diff --git a/src/or/Makefile.am b/src/or/Makefile.am index 28d7e736dc..ad2476ff15 100644 --- a/src/or/Makefile.am +++ b/src/or/Makefile.am @@ -33,7 +33,7 @@ AM_CPPFLAGS = -DSHARE_DATADIR="\"$(datadir)\"" \ tor_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@ tor_LDADD = ../common/libor.a ../common/libor-crypto.a \ - -lz -levent -lssl -lcrypto @TOR_LIB_WS32@ @TOR_LIB_GDI@ + -lz @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ test_SOURCES = buffers.c circuitbuild.c circuitlist.c \ circuituse.c command.c config.c \ connection.c connection_edge.c connection_or.c control.c \ @@ -48,7 +48,7 @@ test_SOURCES = buffers.c circuitbuild.c circuitlist.c \ test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \ @TOR_LDFLAGS_libevent@ test_LDADD = ../common/libor.a ../common/libor-crypto.a \ - -lz -levent -lssl -lcrypto @TOR_LIB_WS32@ @TOR_LIB_GDI@ + -lz @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ noinst_HEADERS = or.h eventdns.h eventdns_tor.h micro-revision.i diff --git a/src/tools/Makefile.am b/src/tools/Makefile.am index 79393d6854..41786e4378 100644 --- a/src/tools/Makefile.am +++ b/src/tools/Makefile.am @@ -3,16 +3,16 @@ noinst_PROGRAMS = tor-checkkey tor_resolve_SOURCES = tor-resolve.c tor_resolve_LDFLAGS = @TOR_LDFLAGS_libevent@ -tor_resolve_LDADD = ../common/libor.a -levent @TOR_LIB_WS32@ +tor_resolve_LDADD = ../common/libor.a @TOR_LIBEVENT_LIBS@ @TOR_LIB_WS32@ tor_gencert_SOURCES = tor-gencert.c tor_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \ @TOR_LDFLAGS_libevent@ tor_gencert_LDADD = ../common/libor.a ../common/libor-crypto.a \ - -lz -lcrypto -levent @TOR_LIB_WS32@ @TOR_LIB_GDI@ + -lz @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ tor_checkkey_SOURCES = tor-checkkey.c tor_checkkey_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \ @TOR_LDFLAGS_libevent@ tor_checkkey_LDADD = ../common/libor.a ../common/libor-crypto.a \ - -lz -lcrypto -levent @TOR_LIB_WS32@ @TOR_LIB_GDI@ + -lz @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@