Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -560,6 +560,10 @@ if(UNIX AND NOT APPLE)
set(OS_NAME "linux") # sorry BSD
endif()

if(OVERRIDE_JDBC_OS_NAME)
set(OS_NAME ${OVERRIDE_JDBC_OS_NAME})
endif()

if(OVERRIDE_JDBC_OS_ARCH)
set(OS_ARCH ${OVERRIDE_JDBC_OS_ARCH})
endif()
Expand All @@ -579,8 +583,8 @@ add_jar(duckdb_jdbc_tests ${JAVA_TEST_FILES} INCLUDE_JARS duckdb_jdbc_nolib)

# main shared lib compilation

if(MSVC)
list(APPEND DUCKDB_INCLUDE_DIRS src/windows)
if(MSVC OR ZOS)
list(APPEND DUCKDB_INCLUDE_DIRS src/stubs)
list(APPEND DUCKDB_SRC_FILES duckdb_java.def)
else()
list(APPEND DUCKDB_SRC_FILES ${JEMALLOC_SRC_FILES})
Expand All @@ -606,7 +610,7 @@ target_include_directories(duckdb_java PRIVATE
${JAVA_INCLUDE_PATH2}
${DUCKDB_INCLUDE_DIRS})

if (NOT MSVC)
if (NOT MSVC AND NOT ZOS)
target_include_directories(duckdb_java PRIVATE
${JEMALLOC_INCLUDE_DIRS})
endif()
Expand Down Expand Up @@ -637,7 +641,7 @@ target_compile_definitions(duckdb_java PRIVATE
-DDUCKDB_EXTENSION_AUTOLOAD_DEFAULT
-DDUCKDB_EXTENSION_AUTOINSTALL_DEFAULT)

if(NOT MSVC)
if(NOT MSVC AND NOT ZOS)
target_compile_definitions(duckdb_java PRIVATE
-DDUCKDB_EXTENSION_JEMALLOC_LINKED)
endif()
Expand Down
12 changes: 8 additions & 4 deletions CMakeLists.txt.in
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ if(UNIX AND NOT APPLE)
set(OS_NAME "linux") # sorry BSD
endif()

if(OVERRIDE_JDBC_OS_NAME)
set(OS_NAME ${OVERRIDE_JDBC_OS_NAME})
endif()

if(OVERRIDE_JDBC_OS_ARCH)
set(OS_ARCH ${OVERRIDE_JDBC_OS_ARCH})
endif()
Expand All @@ -97,8 +101,8 @@ add_jar(duckdb_jdbc_tests ${JAVA_TEST_FILES} INCLUDE_JARS duckdb_jdbc_nolib)

# main shared lib compilation

if(MSVC)
list(APPEND DUCKDB_INCLUDE_DIRS src/windows)
if(MSVC OR ZOS)
list(APPEND DUCKDB_INCLUDE_DIRS src/stubs)
list(APPEND DUCKDB_SRC_FILES duckdb_java.def)
else()
list(APPEND DUCKDB_SRC_FILES ${JEMALLOC_SRC_FILES})
Expand All @@ -124,7 +128,7 @@ target_include_directories(duckdb_java PRIVATE
${JAVA_INCLUDE_PATH2}
${DUCKDB_INCLUDE_DIRS})

if (NOT MSVC)
if (NOT MSVC AND NOT ZOS)
target_include_directories(duckdb_java PRIVATE
${JEMALLOC_INCLUDE_DIRS})
endif()
Expand Down Expand Up @@ -155,7 +159,7 @@ target_compile_definitions(duckdb_java PRIVATE
-DDUCKDB_EXTENSION_AUTOLOAD_DEFAULT
-DDUCKDB_EXTENSION_AUTOINSTALL_DEFAULT)

if(NOT MSVC)
if(NOT MSVC AND NOT ZOS)
target_compile_definitions(duckdb_java PRIVATE
-DDUCKDB_EXTENSION_JEMALLOC_LINKED)
endif()
Expand Down
15 changes: 10 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,14 @@ else
JARS=build/release
endif

ARCH_OVERRIDE=
OS_NAME_OVERRIDE=
ifneq ($(OVERRIDE_JDBC_OS_NAME),)
OS_NAME_OVERRIDE=-DOVERRIDE_JDBC_OS_NAME=$(OVERRIDE_JDBC_OS_NAME)
endif

OS_ARCH_OVERRIDE=
ifneq ($(OVERRIDE_JDBC_OS_ARCH),)
ARCH_OVERRIDE=-DOVERRIDE_JDBC_OS_ARCH=$(OVERRIDE_JDBC_OS_ARCH)
OS_ARCH_OVERRIDE=-DOVERRIDE_JDBC_OS_ARCH=$(OVERRIDE_JDBC_OS_ARCH)
endif


Expand All @@ -33,15 +38,15 @@ test:

debug:
mkdir -p build/debug
cd build/debug && cmake -DCMAKE_BUILD_TYPE=Debug $(GENERATOR) $(ARCH_OVERRIDE) ../.. && cmake --build . --config Debug
cd build/debug && cmake -DCMAKE_BUILD_TYPE=Debug $(GENERATOR) $(OS_NAME_OVERRIDE) $(OS_ARCH_OVERRIDE) ../.. && cmake --build . --config Debug

release:
mkdir -p build/release
cd build/release && cmake -DCMAKE_BUILD_TYPE=Release $(GENERATOR) $(ARCH_OVERRIDE) ../.. && cmake --build . --config Release
cd build/release && cmake -DCMAKE_BUILD_TYPE=Release $(GENERATOR) $(OS_NAME_OVERRIDE) $(OS_ARCH_OVERRIDE) ../.. && cmake --build . --config Release

sanitized:
mkdir -p build/sanitized
cd build/sanitized && cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_ADDRESS_SANITIZER=ON $(GENERATOR) $(ARCH_OVERRIDE) ../.. && cmake --build . --config Release
cd build/sanitized && cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_ADDRESS_SANITIZER=ON $(GENERATOR) $(OS_NAME_OVERRIDE) $(OS_ARCH_OVERRIDE) ../.. && cmake --build . --config Release

format:
python3 scripts/format.py
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/org/duckdb/DuckDBNative.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ private static String cpuArch() {
case "arm64":
return ARCH_AARCH64;
default:
throw new IllegalStateException("Unsupported system architecture: '" + prop + "'");
return prop.replaceAll("[^a-z0-9_\\-.]", "");
}
}

Expand All @@ -85,7 +85,7 @@ static String osName() {
} else if (prop.startsWith("linux")) {
return OS_LINUX;
} else {
throw new IllegalStateException("Unsupported OS: '" + prop + "'");
return prop.replaceAll("[^a-z0-9_\\-.]", "");
}
}

Expand Down Expand Up @@ -116,6 +116,8 @@ private static void unpackAndLoad(URL nativeLibRes) throws IOException {
Files.copy(is, tmpFile, REPLACE_EXISTING);
}
tmpFile.toFile().deleteOnExit();
// Harmless on the officially supported platforms but required on some other.
tmpFile.toFile().setExecutable(true);
System.load(tmpFile.toAbsolutePath().toString());
}

Expand Down
File renamed without changes.
Loading