aboutsummaryrefslogtreecommitdiff
path: root/src/rust
diff options
context:
space:
mode:
Diffstat (limited to 'src/rust')
-rw-r--r--src/rust/Cargo.toml6
-rw-r--r--src/rust/crypto/Cargo.toml6
-rw-r--r--src/rust/external/Cargo.toml6
-rw-r--r--src/rust/protover/Cargo.toml6
-rw-r--r--src/rust/protover/protover.rs14
-rw-r--r--src/rust/smartlist/Cargo.toml6
-rw-r--r--src/rust/tor_allocate/Cargo.toml6
-rw-r--r--src/rust/tor_log/Cargo.toml5
-rw-r--r--src/rust/tor_rust/Cargo.toml6
-rw-r--r--src/rust/tor_util/Cargo.toml6
10 files changed, 64 insertions, 3 deletions
diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml
index 4bbadbe535..e399dbb33a 100644
--- a/src/rust/Cargo.toml
+++ b/src/rust/Cargo.toml
@@ -23,3 +23,9 @@ default = []
test-c-from-rust = [
"crypto/test-c-from-rust",
]
+
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
diff --git a/src/rust/crypto/Cargo.toml b/src/rust/crypto/Cargo.toml
index d68ac48e28..6ebfe0dc11 100644
--- a/src/rust/crypto/Cargo.toml
+++ b/src/rust/crypto/Cargo.toml
@@ -30,3 +30,9 @@ rand_core = { version = "=0.2.0-pre.0", default-features = false }
# execute with `cargo test`. Due to numerous linker issues (#25386), this is
# currently disabled by default.
test-c-from-rust = []
+
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
diff --git a/src/rust/external/Cargo.toml b/src/rust/external/Cargo.toml
index 60ec03be40..4735144ee6 100644
--- a/src/rust/external/Cargo.toml
+++ b/src/rust/external/Cargo.toml
@@ -14,3 +14,9 @@ name = "external"
path = "lib.rs"
crate_type = ["rlib", "staticlib"]
+[features]
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
diff --git a/src/rust/protover/Cargo.toml b/src/rust/protover/Cargo.toml
index a8480e142a..2f7783e76c 100644
--- a/src/rust/protover/Cargo.toml
+++ b/src/rust/protover/Cargo.toml
@@ -4,6 +4,11 @@ version = "0.0.1"
name = "protover"
[features]
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
[dependencies]
libc = "=0.2.39"
@@ -27,4 +32,3 @@ path = "../tor_log"
name = "protover"
path = "lib.rs"
crate_type = ["rlib", "staticlib"]
-
diff --git a/src/rust/protover/protover.rs b/src/rust/protover/protover.rs
index 7b3f808cb2..8417d85959 100644
--- a/src/rust/protover/protover.rs
+++ b/src/rust/protover/protover.rs
@@ -10,7 +10,6 @@ use std::str::FromStr;
use std::string::String;
use external::c_tor_version_as_new_as;
-use external::c_tor_is_using_nss;
use errors::ProtoverError;
use protoset::ProtoSet;
@@ -125,6 +124,17 @@ impl From<Protocol> for UnknownProtocol {
}
}
+#[cfg(feature="test_linking_hack")]
+fn have_linkauth_v1() -> bool {
+ true
+}
+
+#[cfg(not(feature="test_linking_hack"))]
+fn have_linkauth_v1() -> bool {
+ use external::c_tor_is_using_nss;
+ ! c_tor_is_using_nss()
+}
+
/// Get a CStr representation of current supported protocols, for
/// passing to C, or for converting to a `&str` for Rust.
///
@@ -142,7 +152,7 @@ impl From<Protocol> for UnknownProtocol {
///
// C_RUST_COUPLED: protover.c `protover_get_supported_protocols`
pub(crate) fn get_supported_protocols_cstr() -> &'static CStr {
- if c_tor_is_using_nss() {
+ if ! have_linkauth_v1() {
cstr!("Cons=1-2 \
Desc=1-2 \
DirCache=1-2 \
diff --git a/src/rust/smartlist/Cargo.toml b/src/rust/smartlist/Cargo.toml
index 6ddcbee8e9..4ecdf50869 100644
--- a/src/rust/smartlist/Cargo.toml
+++ b/src/rust/smartlist/Cargo.toml
@@ -11,3 +11,9 @@ name = "smartlist"
path = "lib.rs"
crate_type = ["rlib", "staticlib"]
+[features]
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
diff --git a/src/rust/tor_allocate/Cargo.toml b/src/rust/tor_allocate/Cargo.toml
index 468425f115..7bb3b9887f 100644
--- a/src/rust/tor_allocate/Cargo.toml
+++ b/src/rust/tor_allocate/Cargo.toml
@@ -11,3 +11,9 @@ name = "tor_allocate"
path = "lib.rs"
crate_type = ["rlib", "staticlib"]
+[features]
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
diff --git a/src/rust/tor_log/Cargo.toml b/src/rust/tor_log/Cargo.toml
index 9d06299c05..1aa9be0612 100644
--- a/src/rust/tor_log/Cargo.toml
+++ b/src/rust/tor_log/Cargo.toml
@@ -9,6 +9,11 @@ path = "lib.rs"
crate_type = ["rlib", "staticlib"]
[features]
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
[dependencies]
libc = "0.2.39"
diff --git a/src/rust/tor_rust/Cargo.toml b/src/rust/tor_rust/Cargo.toml
index 86fad3ee76..1523ee0dd1 100644
--- a/src/rust/tor_rust/Cargo.toml
+++ b/src/rust/tor_rust/Cargo.toml
@@ -14,3 +14,9 @@ path = "../tor_util"
[dependencies.protover]
path = "../protover"
+[features]
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []
diff --git a/src/rust/tor_util/Cargo.toml b/src/rust/tor_util/Cargo.toml
index a606a280b2..51e4bd9c5d 100644
--- a/src/rust/tor_util/Cargo.toml
+++ b/src/rust/tor_util/Cargo.toml
@@ -17,3 +17,9 @@ path = "../tor_log"
[dependencies]
libc = "=0.2.39"
+[features]
+# We have to define a feature here because doctests don't get cfg(test),
+# and we need to disable some C dependencies when running the doctests
+# because of the various linker issues. See
+# https://github.com/rust-lang/rust/issues/45599
+test_linking_hack = []