https://github.com/sfackler/rust-openssl/pull/2145

Index: vendor/openssl-sys-0.9.92/src/handwritten/x509.rs
--- vendor/openssl-sys-0.9.92/src/handwritten/x509.rs.orig
+++ vendor/openssl-sys-0.9.92/src/handwritten/x509.rs
@@ -685,16 +685,22 @@ extern "C" {
     pub fn X509_REQ_print(bio: *mut BIO, req: *mut X509_REQ) -> c_int;
 }
 
-#[repr(C)]
-pub struct X509_PURPOSE {
-    pub purpose: c_int,
-    pub trust: c_int, // Default trust ID
-    pub flags: c_int,
-    pub check_purpose:
-        Option<unsafe extern "C" fn(*const X509_PURPOSE, *const X509, c_int) -> c_int>,
-    pub name: *mut c_char,
-    pub sname: *mut c_char,
-    pub usr_data: *mut c_void,
+cfg_if! {
+    if #[cfg(libressl390)] {
+        pub enum X509_PURPOSE {}
+    } else {
+        #[repr(C)]
+        pub struct X509_PURPOSE {
+            pub purpose: c_int,
+            pub trust: c_int, // Default trust ID
+            pub flags: c_int,
+            pub check_purpose:
+                Option<unsafe extern "C" fn(*const X509_PURPOSE, *const X509, c_int) -> c_int>,
+            pub name: *mut c_char,
+            pub sname: *mut c_char,
+            pub usr_data: *mut c_void,
+        }
+    }
 }
 
 const_ptr_api! {
