Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

pyo3-build-config: fix windows "cross-compile" panic #2232

Merged
merged 2 commits into from
Mar 16, 2022

Conversation

davidhewitt
Copy link
Member

Possible fix for #2229

@messense
Copy link
Member

Actually it's linux not windows now.

@davidhewitt davidhewitt force-pushed the cross-compile-panic branch from 8e48955 to f655fc1 Compare March 16, 2022 08:06
@adamreichold
Copy link
Member

Actually it's linux not windows now.

I think this could still work, i.e. host and target are x86_64-unknown-linux-gnu in your test case which would have been rejected for cross compiling due to the host == target condition when writing but not when reading the configuration.

@messense
Copy link
Member

Here we correctly force cross compilation if PYO3_CROSS_LIB_DIR is set

} else if impl_::any_cross_compiling_env_vars_set() {

But in here the logic is a little different

} else if let Some(interpreter_config) = impl_::make_cross_compile_config()? {

@adamreichold
Copy link
Member

Yeah, we should probably bite the bullet and properly unify those code paths. @davidhewitt If you are busy I can cook up something here or elsewhere factoring out the logic for checking for cross compilation and creating that configuration?

@adamreichold
Copy link
Member

But in here the logic is a little different

I suspect that is actually necessary because of cases where we do detect cross-compilation, but do not have the environment variables set. I think this fix here only takes care of the other way around?

@messense
Copy link
Member

I suspect that is actually necessary because of cases where we do detect cross-compilation, but do not have the environment variables set.

Yeah it's necessary, I think it only missed that it should also do cross compilation when the environment variables are set.

@davidhewitt
Copy link
Member Author

I think we should probably unify those code paths a bit, I have some ideas.

I'm enjoying having a go at this at the moment - might take me a few gaps through the day. Got a bit of a routine beginning to form. If things get busy later I might push, run, and ping you @adamreichold 😅

@messense
Copy link
Member

BTW cross compilation when host and target architectures are the same should be supported, we have an issue in the past: #1513

#2230 should be included in CI when we fix this.

@davidhewitt davidhewitt force-pushed the cross-compile-panic branch from f655fc1 to 480f280 Compare March 16, 2022 10:31
@adamreichold
Copy link
Member

#2230 should be included in CI when we fix this.

I think it would make sense to cherry-pick that commit here so that we have only a single PR.

@davidhewitt
Copy link
Member Author

I think it would make sense to cherry-pick that commit here so that we have only a single PR.

Agreed, I'll cherry-pick once windows job fixed.

@davidhewitt davidhewitt force-pushed the cross-compile-panic branch from 480f280 to fc184da Compare March 16, 2022 11:02
@davidhewitt davidhewitt force-pushed the cross-compile-panic branch from fc184da to 26061cc Compare March 16, 2022 11:44
@davidhewitt
Copy link
Member Author

Think this is getting there now.

@adamreichold I'm going to be busy for a few hours or so now, if you're around and want to finish this off feel welcome. Otherwise I'll hopefully tidy up this evening.

@davidhewitt
Copy link
Member Author

Looks great, let's merge? I'm hoping we can tidy the coverage later in #2191

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

failed to open PyO3 config file at pyo3-cross-compile-config.txt in manylinux2010 docker container
3 participants