This is an automated email from the ASF dual-hosted git repository.

apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new 7ecfcf034c ARROW-17421: [C++] CUDA on Windows fails to build (#13883)
7ecfcf034c is described below

commit 7ecfcf034c20089510fe96c844d436cdf6efe081
Author: Jacob Wujciak-Jens <[email protected]>
AuthorDate: Mon Aug 15 22:58:39 2022 +0200

    ARROW-17421: [C++] CUDA on Windows fails to build (#13883)
    
    Authored-by: Jacob Wujciak-Jens <[email protected]>
    Signed-off-by: Antoine Pitrou <[email protected]>
---
 cpp/src/arrow/gpu/cuda_context.h  | 6 +++---
 cpp/src/arrow/gpu/cuda_internal.h | 1 +
 cpp/src/arrow/gpu/cuda_memory.h   | 2 ++
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/cpp/src/arrow/gpu/cuda_context.h b/cpp/src/arrow/gpu/cuda_context.h
index 00bcf94c8b..0115ed19a1 100644
--- a/cpp/src/arrow/gpu/cuda_context.h
+++ b/cpp/src/arrow/gpu/cuda_context.h
@@ -76,7 +76,7 @@ class ARROW_EXPORT CudaDeviceManager {
   static std::unique_ptr<CudaDeviceManager> instance_;
 
   class Impl;
-  std::unique_ptr<Impl> impl_;
+  std::shared_ptr<Impl> impl_;
 
   friend class CudaContext;
   friend class CudaDevice;
@@ -146,7 +146,7 @@ class ARROW_EXPORT CudaDevice : public Device {
   /// \endcond
 
   explicit CudaDevice(Impl);
-  std::unique_ptr<Impl> impl_;
+  std::shared_ptr<Impl> impl_;
 };
 
 /// \brief Return whether a device instance is a CudaDevice
@@ -297,7 +297,7 @@ class ARROW_EXPORT CudaContext : public 
std::enable_shared_from_this<CudaContext
                                    uintptr_t dst, uintptr_t src, int64_t 
nbytes);
 
   class Impl;
-  std::unique_ptr<Impl> impl_;
+  std::shared_ptr<Impl> impl_;
 
   friend class CudaBuffer;
   friend class CudaBufferReader;
diff --git a/cpp/src/arrow/gpu/cuda_internal.h 
b/cpp/src/arrow/gpu/cuda_internal.h
index 25eb6e06ce..d70873634f 100644
--- a/cpp/src/arrow/gpu/cuda_internal.h
+++ b/cpp/src/arrow/gpu/cuda_internal.h
@@ -33,6 +33,7 @@ namespace internal {
 
 std::string CudaErrorDescription(CUresult err);
 
+ARROW_EXPORT
 Status StatusFromCuda(CUresult res, const char* function_name = nullptr);
 
 #define CU_RETURN_NOT_OK(FUNC_NAME, STMT)                               \
diff --git a/cpp/src/arrow/gpu/cuda_memory.h b/cpp/src/arrow/gpu/cuda_memory.h
index 4efd388940..18c23a5078 100644
--- a/cpp/src/arrow/gpu/cuda_memory.h
+++ b/cpp/src/arrow/gpu/cuda_memory.h
@@ -250,10 +250,12 @@ Result<std::shared_ptr<CudaHostBuffer>> 
AllocateCudaHostBuffer(int device_number
                                                                const int64_t 
size);
 
 /// Low-level: get a device address through which the CPU data be accessed.
+ARROW_EXPORT
 Result<uintptr_t> GetDeviceAddress(const uint8_t* cpu_data,
                                    const std::shared_ptr<CudaContext>& ctx);
 
 /// Low-level: get a CPU address through which the device data be accessed.
+ARROW_EXPORT
 Result<uint8_t*> GetHostAddress(uintptr_t device_ptr);
 
 }  // namespace cuda

Reply via email to