* Windows doesn't want the
macro _JNI_IMPORT_OR_EXPORT_
to be defined in the function
definition. It fails to compile with
the following error -
"definition of dllimport function
not allowed".
* However, Linux needs it. Hence,
we're going to add this macro
based on the OS.
* Also, we'll be compiling the `hdfs`
target as an object library so that
we can avoid linking to `jvm`
library for `get_jni_test` target.
* This PR ensures that the Protobuf generated headers
are always included first, even when these headers
are included transitively.
* This problem is specific to Windows only.
* The library target hdfspp_test_shim_static is
built using the following sources, which
causes duplicate symbols to be defined -
- hdfs_shim.c
- ${LIBHDFSPP_BINDING_C}/hdfs.cc
* ${LIBHDFSPP_BINDING_C}/hdfs.cc is redundant
and removing this fixes the issue.
* The check_c_source_compiles fails on Windows
while linking with an "unable to resolve
external symbol" error.
* This PR links OpenSSL lib for this check to
fix this issue.
* HDFS-16466. Implement Linux permission flags on Windows
* statinfo.cc uses POSIX permission flags.
These flags aren't available for Windows.
* This PR implements the equivalent flags
on Windows to make this cross platform
compatible.
* jnihelper.c in HDFS native client uses
dirent.h. This header file isn't available
on Windows.
* This PR provides a cross platform
compatible implementation for dirent
under the XPlatform library.
* strtol is used in hdfs-chmod.cc. The call
to strtol could error out when an invalid
input is provided.
* This PR handles the error given out by
strtol.
* Remove redundant strings.h inclusions
* strings.h was included in a bunch of
C/C++ files and were redundant.
* Also, strings.h is not available on
Windows and thus isn't cross-platform
compatible.
* Build for all platforms in CI
* Revert "Build for all platforms in CI"
This reverts commit 2650f047bd6791a5908cfbe50cc8e70d42c512cb.
* Debug failure on Centos 8
* Skipping pipeline run on
Centos 7 to debug the
failure on Centos 8.
* Revert "Debug failure on Centos 8"
This reverts commit e365e34d6fab9df88f4df622910ddb28a8c8796f.
* hdfs_find uses u_int32_t type for
storing the value for the max-depth
command line argument.
* The type u_int32_t isn't standard,
isn't available on Windows and thus
breaks cross-platform compatibility.
We need to replace this with uint32_t
which is available on all platforms since
it's part of the C++ standard.
* Some C/C++ files use ssize_t data type.
This isn't available for Windows and we
need to define an alias for this and set it
to an appropriate type to make it cross
platform compatible.
* The source files for hdfs_tail
uses getopt for parsing the
command line arguments.
* getopt is available only on
Linux and thus, isn't cross
platform.
* We need to replace getopt
with boost::program_options
to make these tools cross
platform.
* The source files for hdfs_stat
uses getopt for parsing the
command line arguments.
* getopt is available only on
Linux and thus, isn't cross platform.
* We need to replace getopt with
boost::program_options to make
this tool cross platform.
* The source files for hdfs_setrep
uses getopt for parsing the
command line arguments.
* getopt is available only on Linux
and thus, isn't cross platform.
* We need to replace getopt
with boost::program_options
to make this tool cross platform.
* The source files for hdfs_ls
uses getopt for parsing the
command line arguments.
* getopt is available only on
Linux and thus, isn't cross
platform.
* Thus, we need to replace
getopt with
boost::program_options to
make this tool cross platform.
* The source files for hdfs_find uses
getopt for parsing the command
line arguments. getopt is available
only on Linux and thus, isn't cross
platform.
* Thus, we need to replace getopt
with boost::program_options to
make hdfs_find cross platform.
* Centos 8 has reached its
End-of-Life and thus its
packages are no longer
accessible from
mirror.centos.org.
* This PR switches the baseurl
to vault.centos.org where
the packages are archived.