Copilot commented on code in PR #45998:
URL: https://github.com/apache/arrow/pull/45998#discussion_r4015996069


##########
cpp/src/arrow/CMakeLists.txt:
##########
@@ -1016,7 +1008,7 @@ if(ARROW_FILESYSTEM)
     endif()
   endif()
   if(ARROW_HDFS)
-    list(APPEND ARROW_FILESYSTEM_SRCS filesystem/hdfs.cc)
+    list(APPEND ARROW_FILESYSTEM_SRCS filesystem/hdfs.cc 
filesystem/hdfs_internal.cc)

Review Comment:
   The old HDFS object-library setup linked `${CMAKE_DL_LIBS}` for the dynamic 
libhdfs shim, but this move only adds `arrow::hadoop` to the filesystem target. 
On platforms where `${CMAKE_DL_LIBS}` is `dl`, the new filesystem target no 
longer carries the required dynamic-loader dependency used by 
`hdfs_internal.cc`, causing link failures or an unrecorded runtime dependency.



##########
cpp/src/arrow/meson.build:
##########
@@ -484,7 +482,10 @@ disable Arrow gcs support with -Dgcs=disabled.
     endif
 
     if needs_hdfs
-        arrow_filesystem_srcs += ['filesystem/hdfs.cc']
+        arrow_filesystem_srcs += [
+            'filesystem/hdfs.cc',
+            'filesystem/hdfs_internal.cc',
+        ]

Review Comment:
   This move leaves the Meson and HDFS integration references to the deleted io 
test untouched: `cpp/src/arrow/io/meson.build` still installs `io/hdfs.h` and 
configures the missing `io/hdfs_test.cc`, while 
`ci/scripts/integration_hdfs.sh` still invokes the removed `arrow-io-hdfs-test` 
binary. With HDFS enabled, Meson configuration or the integration job will 
fail; update these references to the filesystem header/`arrow-hdfs-test` (or 
remove them).



##########
cpp/src/arrow/filesystem/hdfs.h:
##########
@@ -114,4 +121,6 @@ class ARROW_EXPORT HadoopFileSystem : public FileSystem {
   std::unique_ptr<Impl> impl_;
 };
 
+ARROW_EXPORT Status HaveLibHdfs();

Review Comment:
   Moving HDFS out of `arrow/io` leaves Meson references to the deleted files 
in `cpp/src/arrow/io/meson.build`: it still installs `hdfs.h` and, when HDFS is 
enabled, builds `hdfs_test.cc`. Meson configuration/builds will therefore fail 
with missing paths; remove those entries now that the header and test live 
under `arrow/filesystem`.



-- 
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