Browse Source

Merge branch 'maint-0.3.4'

Nick Mathewson 5 years ago
parent
commit
97cc61e947
4 changed files with 15 additions and 7 deletions
  1. 3 0
      changes/bug26245
  2. 6 0
      configure.ac
  3. 3 0
      src/rust/.cargo/config.in
  4. 3 7
      src/rust/external/crypto_digest.rs

+ 3 - 0
changes/bug26245

@@ -0,0 +1,3 @@
+  o Minor features (compilation):
+    o The --enable-fatal-warnings flag now affects Rust code as well.
+      Closes ticket 26245.

+ 6 - 0
configure.ac

@@ -462,6 +462,11 @@ if test "x$enable_rust" = "xyes"; then
   fi
 
   AC_DEFINE([HAVE_RUST], 1, [have Rust])
+  if test "x$enable_fatal_warnings" = "xyes"; then
+    RUST_WARN=
+  else
+    RUST_WARN=#
+  fi
   if test "x$enable_cargo_online_mode" = "xyes"; then
     CARGO_ONLINE=
     RUST_DL=#
@@ -515,6 +520,7 @@ if test "x$enable_rust" = "xyes"; then
 
   AC_SUBST(TOR_RUST_STATIC_NAME)
   AC_SUBST(CARGO_ONLINE)
+  AC_SUBST(RUST_WARN)
   AC_SUBST(RUST_DL)
 
   dnl Let's check the rustc version, too

+ 3 - 0
src/rust/.cargo/config.in

@@ -6,3 +6,6 @@
 
 @RUST_DL@ [source.vendored-sources]
 @RUST_DL@ directory = '@TOR_RUST_DEPENDENCIES@'
+
+@RUST_WARN@ [build]
+@RUST_WARN@ rustflags = [ "-D", "warnings" ]

+ 3 - 7
src/rust/external/crypto_digest.rs

@@ -66,13 +66,6 @@ const DIGEST_SHA512: digest_algorithm_t = 2;
 const DIGEST_SHA3_256: digest_algorithm_t = 3;
 const DIGEST_SHA3_512: digest_algorithm_t = 4;
 
-/// The total number of digest algorithms we currently support.
-///
-/// We can't access these from Rust, because their definitions in C require
-/// introspecting the `digest_algorithm_t` typedef, which is an enum, so we have
-/// to redefine them here.
-const N_DIGEST_ALGORITHMS: usize = DIGEST_SHA3_512 as usize + 1;
-
 /// The number of hash digests we produce for a `common_digests_t`.
 ///
 /// We can't access these from Rust, because their definitions in C require
@@ -117,6 +110,9 @@ struct common_digests_t {
 /// A `smartlist_t` is just an alias for the `#[repr(C)]` type `Stringlist`, to
 /// make it more clear that we're working with a smartlist which is owned by C.
 #[allow(non_camel_case_types)]
+// BINDGEN_GENERATED: This type isn't actually bindgen generated, but the code
+// below it which uses it is.  As such, this comes up as "dead code" as well.
+#[allow(dead_code)]
 type smartlist_t = Stringlist;
 
 /// All of the external functions from `src/common/crypto_digest.h`.