From 2f9cd402d3293f6efe0f3ac06f17c6c14edbed86 Mon Sep 17 00:00:00 2001
From: James Hilliard <james.hilliard1@gmail.com>
Date: Sun, 25 Jun 2023 17:39:19 -0600
Subject: [PATCH] Fix include directory when cross compiling (#9129)

Upstream-Status: Backport [https://github.com/pyca/cryptography/pull/9129]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 src/rust/cryptography-cffi/build.rs | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/rust/cryptography-cffi/build.rs b/src/rust/cryptography-cffi/build.rs
index 07590ad2e..384af1ddb 100644
--- a/src/rust/cryptography-cffi/build.rs
+++ b/src/rust/cryptography-cffi/build.rs
@@ -47,9 +47,14 @@ fn main() {
     )
     .unwrap();
     println!("cargo:rustc-cfg=python_implementation=\"{}\"", python_impl);
-    let python_include = run_python_script(
+    let python_includes = run_python_script(
         &python,
-        "import sysconfig; print(sysconfig.get_path('include'), end='')",
+        "import os; \
+         import setuptools.dist; \
+         import setuptools.command.build_ext; \
+         b = setuptools.command.build_ext.build_ext(setuptools.dist.Distribution()); \
+         b.finalize_options(); \
+         print(os.pathsep.join(b.include_dirs), end='')",
     )
     .unwrap();
     let openssl_include =
@@ -59,12 +64,15 @@ fn main() {
     let mut build = cc::Build::new();
     build
         .file(openssl_c)
-        .include(python_include)
         .include(openssl_include)
         .flag_if_supported("-Wconversion")
         .flag_if_supported("-Wno-error=sign-conversion")
         .flag_if_supported("-Wno-unused-parameter");
 
+    for python_include in env::split_paths(&python_includes) {
+        build.include(python_include);
+    }
+
     // Enable abi3 mode if we're not using PyPy.
     if python_impl != "PyPy" {
         // cp37 (Python 3.7 to help our grep when we some day drop 3.7 support)
-- 
2.30.2

