jonkeane commented on PR #49553: URL: https://github.com/apache/arrow/pull/49553#issuecomment-4273866934
> @jonkeane I might have misunderstood your comment in my initial response. Is your suggestion to build the R Arrow library with -DARROW_AZURE=ON with MSVC and host it outside of CRAN (possibly circumventing the MinGW restriction discussed earlier in this thread)? Yeah, for example, for GCS we encourage folks to use the binaries hosted on R-universe and disable that on CRAN > If this is your suggestion, could you kindly share a bit more information about how this would work? > > For some extra context, my current understanding is that there are low-level C++ ABI compatibility issues between binaries built with MSVC and binaries built with MinGW, which (I think) implies that an MSVC compiled binary would not interoperate with the rest of the R ecosystem (which I believe is built with the MinGW toolchain). > > That said, I am by no means an expert in R/Windows internals. I would be happy to learn more if you know of a way for R packages to interoperate with MSVC-built binaries without ABI issues. Ah, that might make something like we do for GCS not a possibility. I'm not familiar enough with the MSVC / MinGW ecosystem to know if this is something that must be built within that ecosystem to even be used, or something we could build separately and then link to (or some other way of getting this to work!). I did some exploration to see if anyone else is using and I couldn't find any (besides references [in arrow](https://github.com/search?q=org%3Acran%20azure-sdk-for-cpp&type=code)). Notable, even the official Azure packages don't rely on the azure sdk: https://github.com/Azure/AzureR > The core issue seems to be an incompatibility between Windows Implementation Libraries (WIL) and MinGW (this is https://github.com/microsoft/wil/issues/117). Our understanding is that resolving this issue would resolve many of the downstream issues in building [azure-sdk-for-cpp](https://github.com/Azure/azure-sdk-for-cpp) with MinGW, which would open the door for a fully functioning build of Arrow on Windows with Azure support enabled. > > The most recent discussion on this topic I could find is https://github.com/microsoft/wil/pull/467. I can create an issue in either the WIL/MinGW repositories to flag that this compatibility issue is still relevant, but I get the impression that the scope/timeline of this work goes beyond what this PR is trying to achieve. Ah ok, yeah those look like they aren't really being actively pursued right now so unlikely to change in the future 😕 > Based on our results from building azure-sdk-for-cpp from source, my understanding is that a limited version of Azure support for Arrow ought to be possible on Windows, but the Azure Identity features won't work on the Windows build due to the abovementioned difficulties of getting azure-identity-cpp to build with MinGW. I.e., users should still be able to use connection strings or SAS tokens in this scenario. > > If limited Azure support on Windows is preferable to disabling it, we will continue investigating what would be involved to disable the Azure Identity features and otherwise keep Azure support on the Windows build. Yeah, having some support would be better than none. And overall, I do think having support on macos + linux alone is ok. Not ideal, but having that support there might give us signal that we need to come back and figure out how to get the full windows story settled. We should be open about that in the docs — and also follow GCS where we build this in our own builds + on R-universe but default it to off on CRAN. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
