Skip to content
Merged
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
5 changes: 0 additions & 5 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
[target.'cfg(target_family="unix")']
rustflags = [
"-C", "force-frame-pointers=yes",
# Add dynamic DuckDB library directory to runtime search path.
"-C", "link-arg=-Wl,-rpath,$ORIGIN/../duckdb-v1.3.0",
"-C", "link-arg=-Wl,-rpath,$ORIGIN/../../duckdb-v1.3.0",
"-C", "link-arg=-Wl,-rpath,@executable_path/../duckdb-v1.3.0",
"-C", "link-arg=-Wl,-rpath,@executable_path/../../duckdb-v1.3.0"
]

[target.wasm32-unknown-unknown]
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/bench-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@ jobs:
shell: bash
env:
RUST_BACKTRACE: full
LD_LIBRARY_PATH: target/duckdb-v1.3.0
run: |
target/release_debug/${{ matrix.benchmark.id }} -d gh-json | tee ${{ matrix.benchmark.id }}.json

Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/sql-benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@ jobs:
shell: bash
env:
RUST_BACKTRACE: full
LD_LIBRARY_PATH: target/duckdb-v1.3.0
run: |
# Generate data, running each query once to make sure they don't panic.
target/release_debug/${{ matrix.binary_name }} --targets datafusion:parquet -i1 -d gh-json --skip-duckdb-build
Expand Down Expand Up @@ -172,7 +171,6 @@ jobs:
OTEL_EXPORTER_OTLP_ENDPOINT: '${{ secrets.OTEL_EXPORTER_OTLP_ENDPOINT }}'
OTEL_EXPORTER_OTLP_HEADERS: '${{ secrets.OTEL_EXPORTER_OTLP_HEADERS }}'
OTEL_RESOURCE_ATTRIBUTES: 'bench-name=${{ matrix.id }}'
LD_LIBRARY_PATH: target/duckdb-v1.3.0
run: |
target/release_debug/${{ matrix.binary_name }} \
-d gh-json \
Expand All @@ -191,7 +189,6 @@ jobs:
OTEL_EXPORTER_OTLP_ENDPOINT: '${{ secrets.OTEL_EXPORTER_OTLP_ENDPOINT }}'
OTEL_EXPORTER_OTLP_HEADERS: '${{ secrets.OTEL_EXPORTER_OTLP_HEADERS }}'
OTEL_RESOURCE_ATTRIBUTES: 'bench-name=${{ matrix.id }}'
LD_LIBRARY_PATH: target/duckdb-v1.3.0
run: |
target/release_debug/${{ matrix.binary_name }} \
--use-remote-data-dir ${{ matrix.remote_storage }} \
Expand Down
27 changes: 27 additions & 0 deletions bench-vortex/build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#![allow(clippy::unwrap_used)]
#![allow(clippy::expect_used)]
use std::env;
use std::path::PathBuf;

/// Adds a dynamic linker runtime path pointing to the DuckDB dylib dir.
///
/// Setting an absolute rpath, if required by multiple binaries, is the most
/// robust solution compared to using relative paths in terms of
/// `-rpath,$ORIGIN` or `-rpath,@executable_path`.
///
/// Using an absolute rpath implies that binaries linking against the dynamic
/// DuckDB library are never published.
///
/// Note that the rpath set in vortex-duckdb-ext's build.rs is not inherited by
/// crates linking against it which is why consumers must set a rpath on their end.
///
/// The dynamic DuckDB library is preferred over the static version, as DuckDB's
/// static lib is not self-contained. This means that it includes symbols which
/// are not defined as part of the static library.
fn main() {
const DUCKDB_VERSION: &str = "v1.3.0";
let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
let target_dir = manifest_dir.parent().unwrap().join("target");
let lib_path = target_dir.join(format!("duckdb-{DUCKDB_VERSION}"));
println!("cargo:rustc-link-arg=-Wl,-rpath,{}", lib_path.display());
}
9 changes: 1 addition & 8 deletions vortex-duckdb-ext/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,7 @@ const DUCKDB_BASE_URL: &str = "https://github.com/duckdb/duckdb/releases/downloa

fn download_duckdb_archive() -> Result<PathBuf, Box<dyn std::error::Error>> {
let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR")?);
let workspace_root = manifest_dir
.parent()
.ok_or("Failed to get workspace root")?;

let target_dir = env::var("CARGO_TARGET_DIR")
.map(PathBuf::from)
.unwrap_or_else(|_| workspace_root.join("target"));

let target_dir = manifest_dir.parent().unwrap().join("target");
let duckdb_dir = target_dir.join(format!("duckdb-{DUCKDB_VERSION}"));

let target = env::var("TARGET")?;
Expand Down
Loading