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]

Reply via email to