Merge changes from develop for CMake and Java
This commit is contained in:
@@ -394,9 +394,6 @@ HDF_DIR_PATHS(${HDF5_PACKAGE_NAME})
|
||||
|
||||
include (${HDF_RESOURCES_EXT_DIR}/HDFLibMacros.cmake)
|
||||
include (${HDF_RESOURCES_DIR}/HDF5Macros.cmake)
|
||||
if (HDF5_ENABLE_SANITIZERS)
|
||||
include (${HDF5_SOURCE_DIR}/config/sanitizer/sanitizers.cmake)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Targets built within this project are exported at Install time for use
|
||||
|
||||
@@ -30,8 +30,10 @@ macro (ADD_H5_FLAGS h5_flag_var infile)
|
||||
#message (STATUS "h5_flag_var=${${h5_flag_var}}")
|
||||
endmacro ()
|
||||
|
||||
message (STATUS "Warnings Configuration:")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C99_STANDARD_COMPILE_OPTION} ${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_SANITIZER_FLAGS} ${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_SANITIZER_FLAGS} ${CMAKE_CXX_FLAGS}")
|
||||
message (STATUS "Warnings Configuration: default: ${CMAKE_C_FLAGS} : ${CMAKE_CXX_FLAGS}")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Compiler specific flags : Shouldn't there be compiler tests for these
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -176,7 +178,12 @@ if (NOT MSVC AND CMAKE_COMPILER_IS_GNUCC)
|
||||
|
||||
# Append more extra warning flags that only gcc 4.5+ know about
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5)
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants")
|
||||
set (H5_CFLAGS1 "${H5_CFLAGS1} -Wstrict-overflow=5 -Wjump-misses-init")
|
||||
if (HDF5_ENABLE_DEV_WARNINGS)
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wunsuffixed-float-constants")
|
||||
else ()
|
||||
set (H5_CFLAGS0 "${H5_CFLAGS0} -Wno-unsuffixed-float-constants")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6+ know about
|
||||
|
||||
@@ -5,7 +5,7 @@ set (CTEST_CUSTOM_WARNING_EXCEPTION
|
||||
".*note.*expected.*void.*but argument is of type.*volatile.*"
|
||||
".*src.SZIP.*:[ \t]*warning.*"
|
||||
".*src.ZLIB.*:[ \t]*warning.*"
|
||||
".*jpeg.src.*:[ \t]*warning.*"
|
||||
".*src.JPEG.*:[ \t]*warning.*"
|
||||
".*POSIX name for this item is deprecated.*"
|
||||
".*disabling jobserver mode.*"
|
||||
".*warning.*implicit declaration of function.*"
|
||||
|
||||
@@ -163,7 +163,7 @@ endif ()
|
||||
# if the output file needs Modified text removed
|
||||
if (TEST_MASK_MOD)
|
||||
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
|
||||
string (REGEX REPLACE "Modified:[^\n]+\n" "Modified: XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
|
||||
string (REGEX REPLACE "Modified:[^\n]+\n" "Modified: XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
|
||||
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -251,7 +251,9 @@ if test "X-gcc" = "X-$cc_vendor"; then
|
||||
|
||||
# gcc 4.5
|
||||
if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5; then
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
|
||||
H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init"
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wunsuffixed-float-constants"
|
||||
NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-unsuffixed-float-constants"
|
||||
fi
|
||||
|
||||
# gcc 4.6
|
||||
@@ -292,7 +294,7 @@ if test "X-gcc" = "X-$cc_vendor"; then
|
||||
# gcc 7
|
||||
if test $cc_vers_major -ge 7; then
|
||||
DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=2"
|
||||
H5_CFLAGS="$H5_CFLAGS -Walloc-zero -Walloca -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=2 -Wimplicit-fallthrough=5 -Wrestrict"
|
||||
H5_CFLAGS="$H5_CFLAGS -Walloc-zero -Walloca -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=1 -Wimplicit-fallthrough=5 -Wrestrict"
|
||||
fi
|
||||
|
||||
# gcc 8
|
||||
|
||||
@@ -28,52 +28,53 @@ function(append value)
|
||||
endforeach(variable)
|
||||
endfunction()
|
||||
|
||||
if(USE_SANITIZER AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
message(STATUS "USE_SANITIZER=${USE_SANITIZER}, CMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}")
|
||||
if(USE_SANITIZER AND "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
append("-fno-omit-frame-pointer" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fno-omit-frame-pointer" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
message(STATUS "Building with sanitize, base flags=${CMAKE_C_SANITIZER_FLAGS}")
|
||||
|
||||
if(UNIX)
|
||||
|
||||
if(uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
|
||||
append("-O1" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-O1" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
endif()
|
||||
|
||||
if(USE_SANITIZER MATCHES "([Aa]ddress);([Uu]ndefined)"
|
||||
OR USE_SANITIZER MATCHES "([Uu]ndefined);([Aa]ddress)")
|
||||
message(STATUS "Building with Address, Undefined sanitizers")
|
||||
append("-fsanitize=address,undefined" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize=address,undefined" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
set(MEMCHECK_TYPE AddressSanitizer)
|
||||
elseif(USE_SANITIZER MATCHES "([Aa]ddress)")
|
||||
# Optional: -fno-optimize-sibling-calls -fsanitize-address-use-after-scope
|
||||
message(STATUS "Building with Address sanitizer")
|
||||
append("-fsanitize=address" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize=address" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
set(MEMCHECK_TYPE AddressSanitizer)
|
||||
elseif(USE_SANITIZER MATCHES "([Mm]emory([Ww]ith[Oo]rigins)?)")
|
||||
# Optional: -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2
|
||||
append("-fsanitize=memory" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize=memory" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
if(USE_SANITIZER MATCHES "([Mm]emory[Ww]ith[Oo]rigins)")
|
||||
message(STATUS "Building with MemoryWithOrigins sanitizer")
|
||||
append("-fsanitize-memory-track-origins" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize-memory-track-origins" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
else()
|
||||
message(STATUS "Building with Memory sanitizer")
|
||||
endif()
|
||||
set(MEMCHECK_TYPE MemorySanitizer)
|
||||
elseif(USE_SANITIZER MATCHES "([Uu]ndefined)")
|
||||
message(STATUS "Building with Undefined sanitizer")
|
||||
append("-fsanitize=undefined" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize=undefined" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
if(EXISTS "${BLACKLIST_FILE}")
|
||||
append("-fsanitize-blacklist=${BLACKLIST_FILE}" CMAKE_C_FLAGS
|
||||
CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize-blacklist=${BLACKLIST_FILE}" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
endif()
|
||||
set(MEMCHECK_TYPE UndefinedBehaviorSanitizer)
|
||||
elseif(USE_SANITIZER MATCHES "([Tt]hread)")
|
||||
message(STATUS "Building with Thread sanitizer")
|
||||
append("-fsanitize=thread" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize=thread" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
set(MEMCHECK_TYPE ThreadSanitizer)
|
||||
elseif(USE_SANITIZER MATCHES "([Ll]eak)")
|
||||
message(STATUS "Building with Leak sanitizer")
|
||||
append("-fsanitize=leak" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize=leak" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
set(MEMCHECK_TYPE LeakSanitizer)
|
||||
else()
|
||||
message(
|
||||
@@ -82,7 +83,7 @@ if(USE_SANITIZER AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
elseif(MSVC)
|
||||
if(USE_SANITIZER MATCHES "([Aa]ddress)")
|
||||
message(STATUS "Building with Address sanitizer")
|
||||
append("-fsanitize=address" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||
append("-fsanitize=address" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
|
||||
else()
|
||||
message(
|
||||
FATAL_ERROR
|
||||
|
||||
@@ -3590,7 +3590,7 @@ public class H5 implements java.io.Serializable {
|
||||
* - name is null.
|
||||
*/
|
||||
public synchronized static int H5Gget_obj_info_all(long loc_id, String name, String[] objNames, int[] objTypes,
|
||||
H5O_token_t[] tokens) throws HDF5LibraryException, NullPointerException {
|
||||
H5O_token_t[] tokens) throws HDF5LibraryException, NullPointerException {
|
||||
if (objNames == null) {
|
||||
throw new NullPointerException("H5Gget_obj_info_all(): name array is null");
|
||||
}
|
||||
@@ -3605,7 +3605,7 @@ public class H5 implements java.io.Serializable {
|
||||
|
||||
public synchronized static int H5Gget_obj_info_all(long loc_id, String name, String[] oname, int[] otype,
|
||||
int[] ltype, long[] fno, H5O_token_t[] tokens, int indx_type) throws HDF5LibraryException, NullPointerException {
|
||||
return H5Gget_obj_info_full(loc_id, name, oname, otype, ltype, fno, tokens, oname.length, indx_type, -1);
|
||||
return H5Gget_obj_info_full(loc_id, name, oname, otype, ltype, fno, tokens, indx_type, -1);
|
||||
}
|
||||
|
||||
public synchronized static int H5Gget_obj_info_full(long loc_id, String name, String[] oname, int[] otype,
|
||||
|
||||
@@ -395,7 +395,7 @@ Java_hdf_hdf5lib_H5_H5Pget_1fapl_1hdfs
|
||||
if (H5Pget_fapl_hdfs((hid_t)fapl_id, &fa) < 0)
|
||||
H5_LIBRARY_ERROR(ENVONLY);
|
||||
|
||||
if (NULL != fa.namenode_name) {
|
||||
if (HDstrlen(fa.namenode_name) > 0) {
|
||||
if (NULL == (j_namenode_name = ENVPTR->NewStringUTF(ENVONLY, fa.namenode_name))) {
|
||||
CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
|
||||
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Pget_fapl_hdfs: out of memory - can't create namenode_name string");
|
||||
@@ -405,7 +405,7 @@ Java_hdf_hdf5lib_H5_H5Pget_1fapl_1hdfs
|
||||
|
||||
args[1].i = (jint)fa.namenode_port;
|
||||
|
||||
if (NULL != fa.user_name) {
|
||||
if (HDstrlen(fa.user_name) > 0) {
|
||||
if (NULL == (j_user_name = ENVPTR->NewStringUTF(ENVONLY, fa.user_name))) {
|
||||
CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
|
||||
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Pget_fapl_hdfs: out of memory - can't create user_name string");
|
||||
@@ -413,7 +413,7 @@ Java_hdf_hdf5lib_H5_H5Pget_1fapl_1hdfs
|
||||
}
|
||||
args[2].l = j_user_name;
|
||||
|
||||
if (NULL != fa.kerberos_ticket_cache) {
|
||||
if (HDstrlen(fa.kerberos_ticket_cache) > 0) {
|
||||
if (NULL == (j_kerb_cache_path = ENVPTR->NewStringUTF(ENVONLY, fa.kerberos_ticket_cache))) {
|
||||
CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
|
||||
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Pget_fapl_hdfs: out of memory - can't create kerberos_ticket_cache string");
|
||||
@@ -820,7 +820,7 @@ Java_hdf_hdf5lib_H5_H5Pget_1fapl_1ros3
|
||||
if (H5Pget_fapl_ros3((hid_t)fapl_id, &fa) < 0)
|
||||
H5_LIBRARY_ERROR(ENVONLY);
|
||||
|
||||
if (NULL != fa.aws_region) {
|
||||
if (HDstrlen(fa.aws_region) > 0) {
|
||||
if (NULL == (j_aws = ENVPTR->NewStringUTF(ENVONLY, fa.aws_region))) {
|
||||
CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
|
||||
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Pget_fapl_ros3: out of memory - can't create aws_region string");
|
||||
@@ -828,7 +828,7 @@ Java_hdf_hdf5lib_H5_H5Pget_1fapl_1ros3
|
||||
}
|
||||
args[0].l = j_aws;
|
||||
|
||||
if (NULL != fa.secret_id) {
|
||||
if (HDstrlen(fa.secret_id) > 0) {
|
||||
if (NULL == (j_id = ENVPTR->NewStringUTF(ENVONLY, fa.secret_id))) {
|
||||
CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
|
||||
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Pget_fapl_ros3: out of memory - can't create secret_id string");
|
||||
@@ -836,7 +836,7 @@ Java_hdf_hdf5lib_H5_H5Pget_1fapl_1ros3
|
||||
}
|
||||
args[1].l = j_id;
|
||||
|
||||
if (NULL != fa.secret_key) {
|
||||
if (HDstrlen(fa.secret_key) > 0) {
|
||||
if (NULL == (j_key = ENVPTR->NewStringUTF(ENVONLY, fa.secret_key))) {
|
||||
CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
|
||||
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Pget_fapl_ros3: out of memory - can't create secret_key string");
|
||||
@@ -1685,7 +1685,7 @@ Java_hdf_hdf5lib_H5_H5Pget_1mdc_1config
|
||||
args[2].z = cacheinfo.open_trace_file;
|
||||
args[3].z = cacheinfo.close_trace_file;
|
||||
|
||||
if (NULL != cacheinfo.trace_file_name) {
|
||||
if (HDstrlen(cacheinfo.trace_file_name) > 0) {
|
||||
if (NULL == (j_str = ENVPTR->NewStringUTF(ENVONLY, cacheinfo.trace_file_name))) {
|
||||
CHECK_JNI_EXCEPTION(ENVONLY, JNI_TRUE);
|
||||
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "H5Pget_mdc_config: out of memory - unable to construct string from UTF characters");
|
||||
|
||||
Reference in New Issue
Block a user