Skip to content

Commit 0a1d578

Browse files
committed
Fix link order and error on unsupported DUCKDB_EXTENSION_CONFIGS
1 parent 872c6d3 commit 0a1d578

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

crates/libduckdb-sys/build_bundled_cmake.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ pub fn main(_out_dir: &str, out_path: &Path) {
4040
write_bindings(&source_dir.join("src/include"), out_path);
4141
if let Some(configs) = env_var("DUCKDB_EXTENSION_CONFIGS") {
4242
if !configs.trim().is_empty() {
43-
cargo_warning(
44-
"DUCKDB_EXTENSION_CONFIGS is not yet supported by bundled-cmake because additional static extension libraries are not auto-linked; ignoring it",
43+
panic!(
44+
"DUCKDB_EXTENSION_CONFIGS is not yet supported by bundled-cmake because additional static extension libraries are not auto-linked"
4545
);
4646
}
4747
}
@@ -105,14 +105,14 @@ pub fn main(_out_dir: &str, out_path: &Path) {
105105
let lib_dir = dst.join("lib");
106106
validate_extension_libraries(&lib_dir, &cmake_build_type, &enabled_extensions);
107107
println!("cargo:rustc-link-search=native={}", lib_dir.display());
108-
// Preserve expected dependency order for common single-pass linkers:
109-
// `duckdb_static` provides core symbols used by the generated loader and extensions.
110-
link_static_library(&lib_dir, &cmake_build_type, "duckdb_static");
108+
// Emit in dependents-before-dependencies order for single-pass linkers:
109+
// loader → extensions → duckdb_static (which satisfies all core symbols).
111110
link_static_library(&lib_dir, &cmake_build_type, "duckdb_generated_extension_loader");
112111
link_static_library(&lib_dir, &cmake_build_type, "core_functions_extension");
113112
for extension in enabled_extensions {
114113
link_static_library(&lib_dir, &cmake_build_type, &format!("{extension}_extension"));
115114
}
115+
link_static_library(&lib_dir, &cmake_build_type, "duckdb_static");
116116
link_system_libs();
117117
println!("cargo:lib_dir={}", lib_dir.display());
118118
}

0 commit comments

Comments
 (0)