From d212f4600cf592a5e70f839434803acbea394d3e Mon Sep 17 00:00:00 2001 From: Alex Kasko Date: Fri, 15 May 2026 10:55:00 +0100 Subject: [PATCH] Update vendor script disabling jemalloc (main) This is a forward-port of the PR #684 to the `main` branch. This PR temporary disables jemalloc due to changes in duckdb/duckdb#22558. --- CMakeLists.txt.in | 14 -------------- src/stubs/jemalloc_extension.hpp | 18 ------------------ vendor.py | 23 ++++------------------- 3 files changed, 4 insertions(+), 51 deletions(-) delete mode 100644 src/stubs/jemalloc_extension.hpp diff --git a/CMakeLists.txt.in b/CMakeLists.txt.in index 65f979955..05727a04b 100644 --- a/CMakeLists.txt.in +++ b/CMakeLists.txt.in @@ -40,18 +40,12 @@ endif() set(DUCKDB_INCLUDE_DIRS ${INCLUDES}) -set(JEMALLOC_INCLUDE_DIRS - ${JEMALLOC_INCLUDES}) - set(DUCKDB_DEFINITIONS ${DEFINES}) set(DUCKDB_SRC_FILES ${SOURCES}) -set(JEMALLOC_SRC_FILES - ${JEMALLOC_SOURCES}) - # a few OS-specific variables @@ -102,10 +96,7 @@ add_jar(duckdb_jdbc_tests ${JAVA_TEST_FILES} INCLUDE_JARS duckdb_jdbc_nolib) # main shared lib compilation 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}) endif() add_library(duckdb_java SHARED @@ -135,11 +126,6 @@ target_include_directories(duckdb_java PRIVATE ${JAVA_INCLUDE_PATH2} ${DUCKDB_INCLUDE_DIRS}) -if (NOT MSVC AND NOT ZOS) - target_include_directories(duckdb_java PRIVATE - ${JEMALLOC_INCLUDE_DIRS}) -endif() - target_link_libraries(duckdb_java PRIVATE duckdb-native ${CMAKE_DL_LIBS}) diff --git a/src/stubs/jemalloc_extension.hpp b/src/stubs/jemalloc_extension.hpp deleted file mode 100644 index bdbcc0c74..000000000 --- a/src/stubs/jemalloc_extension.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include "duckdb.hpp" - -namespace duckdb { - -class JemallocExtension : public Extension { -public: - void Load(ExtensionLoader &) override {}; - std::string Name() override { - return ""; - }; - std::string Version() const override { - return ""; - }; -}; - -} // namespace duckdb diff --git a/vendor.py b/vendor.py index fc27332b9..9bc1fb9e6 100644 --- a/vendor.py +++ b/vendor.py @@ -14,7 +14,7 @@ # list of extensions to bundle, we include jemalloc here to have its # files copied along with all other sources -extensions = ['core_functions', 'parquet', 'icu', 'json', 'jemalloc'] +extensions = ['core_functions', 'parquet', 'icu', 'json'] # path to target basedir = os.getcwd() @@ -27,33 +27,20 @@ sys.path.append(scripts_dir) import package_build -defines = ['DUCKDB_EXTENSION_{}_LINKED'.format(ext.upper()) for ext in extensions if ext != 'jemalloc'] +defines = ['DUCKDB_EXTENSION_{}_LINKED'.format(ext.upper()) for ext in extensions] # fresh build - copy over all of the files (source_list, include_list, original_sources) = package_build.build_package(target_dir, extensions, False) -# process jemalloc separately with its own CMake vars -jemalloc_include_files = [] -jemalloc_include_list = [] -jemalloc_source_list = [] -jemalloc_dir = os.path.join(args.duckdb, 'extension', 'jemalloc') -package_build.include_package('jemalloc', jemalloc_dir, jemalloc_include_files, jemalloc_include_list, jemalloc_source_list) -jemalloc_source_list = [os.path.join('duckdb', x) for x in jemalloc_source_list] - source_list = [os.path.relpath(x, basedir) if os.path.isabs(x) else os.path.join('src', x) - for x in source_list if x not in jemalloc_source_list] -jemalloc_source_list = [os.path.relpath(x, basedir) if os.path.isabs(x) else os.path.join('src', x) - for x in jemalloc_source_list] -include_list = [os.path.join('src', 'duckdb', x) for x in include_list if x not in jemalloc_include_list] -jemalloc_include_list = [os.path.join('src', 'duckdb', x) for x in jemalloc_include_list] + for x in source_list] +include_list = [os.path.join('src', 'duckdb', x) for x in include_list] def sanitize_path(x): return x.replace('\\', '/') source_list = [sanitize_path(x) for x in source_list] -jemalloc_source_list = [sanitize_path(x) for x in jemalloc_source_list] include_list = [sanitize_path(x) for x in include_list] -jemalloc_include_list = [sanitize_path(x) for x in jemalloc_include_list] os.chdir(basedir) @@ -64,9 +51,7 @@ def replace_entries(cmake, replacement_map): cmake.replace() cmake = cmake.replace('${SOURCES}', '\n '.join(source_list)) -cmake = cmake.replace('${JEMALLOC_SOURCES}', '\n '.join(jemalloc_source_list)) cmake = cmake.replace('${INCLUDES}', '\n '.join(include_list)) -cmake = cmake.replace('${JEMALLOC_INCLUDES}', '\n '.join(jemalloc_include_list)) cmake = cmake.replace('${DEFINES}', '\n '.join(['-D'+x for x in defines])) with open('CMakeLists.txt', 'w+') as f: