Commit d7a433bd authored by Steven Fackler's avatar Steven Fackler
Browse files

Respect osslconf in systest

Also cfg off SSLv3_method, since it's disabled in the OpenSSL that ships
with Arch Linux. More such flags can be added on demand - it doesn't
seem worth auditing everything for them.
parent ed076de2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -283,6 +283,7 @@ The build is now aborting due to this version mismatch.

        // Look for `#define OPENSSL_FOO`, print out everything as our own
        // #[cfg] flag.
        let mut vars = vec![];
        for line in conf_header.lines() {
            let i = match line.find("define ") {
                Some(i) => i,
@@ -291,8 +292,10 @@ The build is now aborting due to this version mismatch.
            let var = line[i + "define ".len()..].trim();
            if var.starts_with("OPENSSL") && !var.contains(" ") {
                println!("cargo:rustc-cfg=osslconf=\"{}\"", var);
                vars.push(var);
            }
        }
        println!("cargo:osslconf={}", vars.join(","));
    }

    return version_text.to_string()
+1 −0
Original line number Diff line number Diff line
@@ -549,6 +549,7 @@ extern {
    pub fn OPENSSL_add_all_algorithms_noconf();
    pub fn HMAC_CTX_init(ctx: *mut ::HMAC_CTX);
    pub fn HMAC_CTX_cleanup(ctx: *mut ::HMAC_CTX);
    #[cfg(not(osslconf = "OPENSSL_NO_SSL3_METHOD"))]
    pub fn SSLv3_method() -> *const ::SSL_METHOD;
    pub fn TLSv1_method() -> *const ::SSL_METHOD;
    pub fn SSLv23_method() -> *const ::SSL_METHOD;
+5 −0
Original line number Diff line number Diff line
@@ -31,6 +31,11 @@ fn main() {
    if env::var("DEP_OPENSSL_IS_110").is_ok() {
        cfg.cfg("ossl110", None);
    }
    if let Ok(vars) = env::var("DEP_OPENSSL_OSSLCONF") {
        for var in vars.split(",") {
            cfg.cfg("osslconf", Some(var));
        }
    }

    cfg.header("openssl/comp.h")
       .header("openssl/dh.h")