-
-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SciPy 1.14.0 #277
SciPy 1.14.0 #277
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
…nda-forge-pinning 2024.05.29.16.17.59
@rgommers, any idea about this symbol:
This is failing the windows builds; rest looks fine so far. |
That is a shared library, new in 1.14.0: scipy/scipy#20321. It's the first one, so not surprised there is a hiccup with it. There are some link warnings visible in the logs:
Why it's failing in this setup I'm not exactly sure about though. |
In that case it's probably a regular symbol-visibility-in-shared-windows-libraries issue, which needs // SF_ERR_DLL
// inspired by https://github.com/abseil/abseil-cpp/blob/20240116.2/absl/base/config.h#L736-L753
//
// When building sf_error_state as a DLL, this macro expands to `__declspec(dllexport)`
// so we can annotate symbols appropriately as being exported. When used in
// headers consuming a DLL, this macro expands to `__declspec(dllimport)` so
// that consumers know the symbol is defined inside the DLL. In all other cases,
// the macro expands to nothing.
// Note: SF_ERR_DLL_EXPORTS is set in CMakeLists.txt when building shared sf_error_state
// SF_ERR_DLL_IMPORTS is set by us as part of the interface for consumers of the DLL
#if defined(SF_ERR_DLL_EXPORTS)
#define SF_ERR_DLL __declspec(dllexport)
#elif defined(SF_ERR_DLL_IMPORTS)
#define SF_ERR_DLL __declspec(dllimport)
#else
#define SF_ERR_DLL
#endif // defined(SF_ERR_DLL_EXPORTS) plus an equivalent of the following CMake code: # for building sf_error_state target
if(WIN32 AND MSVC)
set_target_properties(sf_error_state PROPERTIES DEFINE_SYMBOL "SF_ERR_DLL_EXPORTS")
if(BUILD_SHARED_LIBS)
target_compile_definitions(sf_error_state INTERFACE SF_ERR_DLL_IMPORTS)
endif()
endif() I have more experience with this than I'd like to, e.g. from long efforts around shared library builds in conda-forge. The takeaway: Shared libraries with MSVC generally need source-code level annotations. There's one limited escape hatch on CMake ( CC @steppi |
Oh yes, fair. We keep being caught out by not having CI coverage for this at all - nothing but MinGW in SciPy CI and wheel builds:( Could you please move this to a new SciPy issue? This is a blocker for 1.14.0. |
It's not happy with
Catching up with this topic now, will look at the upstream PR. |
Azure is refusing to show me the logs for the second to last commit here. Would you mind pasting the relevant errors in a comment? Useful anyway for posterity. |
Yeah, azure deletes the logs of any run that is cancelled by another push. I should have many thought to cancel by hand. In any case, I reverted the last commit, so you'll get a fresh run. In any case, the failure boiled down to:
|
I did some more digging in the upstream PR, but not sure what's happening with the import lib. |
ae980f6
to
8191bfe
Compare
…nda-forge-pinning 2024.06.17.11.29.27
No description provided.