Skip to content

Commit 18074d7

Browse files
committed
Merge branch 'main' into paullgdc/remote_config/agentless_fetcher
2 parents 8f6508e + 44f705f commit 18074d7

79 files changed

Lines changed: 1594 additions & 825 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ clippy.toml @DataDog/libdatadog
2929
cmake/ @DataDog/apm-common-components-core
3030
CONTRIBUTING.md @DataDog/libdatadog-core
3131
Cross.toml @DataDog/apm-common-components-core
32-
datadog-ffe @DataDog/feature-flagging-and-experimentation-sdk
33-
datadog-ffe-test-suite @DataDog/feature-flagging-and-experimentation-sdk
34-
datadog-ffe-ffi @DataDog/feature-flagging-and-experimentation-sdk
32+
libdd-ffe @DataDog/feature-flagging-and-experimentation-sdk
33+
libdd-ffe-test-suite @DataDog/feature-flagging-and-experimentation-sdk
34+
libdd-ffe-ffi @DataDog/feature-flagging-and-experimentation-sdk
3535
datadog-ipc*/ @DataDog/libdatadog-php
3636
datadog-live-debugger*/ @DataDog/libdatadog-php @DataDog/libdatadog-apm
3737
datadog-profiling-replayer @DataDog/libdatadog-profiling
@@ -43,21 +43,22 @@ deny.toml @DataDog/libdatadog
4343
docker-bake.hcl @DataDog/apm-common-components-core
4444
docs @DataDog/libdatadog
4545
examples @DataDog/libdatadog
46+
libdd-agent-client @DataDog/apm-common-components-core
4647
libdd-alloc/ @DataDog/libdatadog-profiling
4748
libdd-capabilities*/ @DataDog/apm-common-components-core
4849
libdd-common*/ @DataDog/libdatadog
4950
libdd-crashtracker*/ @DataDog/libdatadog-profiling
5051
libdd-data-pipeline*/ @DataDog/libdatadog-apm
5152
libdd-ddsketch*/ @DataDog/libdatadog-apm @DataDog/apm-common-components-core
5253
libdd-dogstatsd-client @DataDog/apm-common-components-core
53-
libdd-profiling-heap-*/ @DataDog/libdatadog-profiling
54+
libdd-gotter/ @DataDog/libdatadog @DataDog/libdatadog-profiling
5455
libdd-http-client @DataDog/apm-common-components-core
55-
libdd-agent-client @DataDog/apm-common-components-core
5656
libdd-library-config*/ @DataDog/apm-sdk-capabilities-rust
5757
libdd-log*/ @DataDog/apm-common-components-core
5858
libdd-otel-thread-ctx/ @DataDog/apm-common-components-core
5959
libdd-otel-thread-ctx-ffi/ @DataDog/apm-common-components-core
6060
libdd-profiling*/ @DataDog/libdatadog-profiling
61+
libdd-profiling-heap-*/ @DataDog/libdatadog-profiling
6162
libdd-sampling/ @DataDog/apm-common-components-core
6263
libdd-shared-runtime*/ @DataDog/apm-common-components-core
6364
libdd-telemetry*/ @DataDog/apm-common-components-core

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[submodule "datadog-ffe-test-suite/ffe-system-test-data"]
2-
path = datadog-ffe-test-suite/ffe-system-test-data
2+
path = libdd-ffe-test-suite/ffe-system-test-data
33
url = https://github.com/DataDog/ffe-system-test-data.git

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ libdatadog is integrated into many runtimes and languages via FFI, and runs in D
7373
- Bubble errors up to the library caller with detail — prefer structured error enums (e.g. `thiserror`) over opaque strings.
7474
- Stay free of global effects unless a feature requires them: no spawning threads, no globals, no reading environment variables behind the caller's back.
7575
- Care about performance, especially memory allocations on hot paths.
76-
- Panics across FFI boundaries are undefined behavior. FFI entry points must catch unwinds (e.g. `std::panic::catch_unwind`) and convert them into error returns rather than letting them propagate into the caller's runtime.
76+
- A panic that reaches an `extern "C"` boundary aborts the host process. FFI entry points must catch unwinds (e.g. `std::panic::catch_unwind`) and convert them into error returns rather than letting them propagate into the caller's runtime. Whether a release artifact gets panic containment is decided by `builder` alone, through its `catch_panic` feature (a default), which propagates to the `catch_panic` feature in `libdd-profiling-ffi/Cargo.toml`. Projects building their own flavor with `builder`'s default features off ask for `catch_panic` explicitly; leaving it out yields abort-on-panic semantics. The FFI examples are what verify containment is on for our own release process.
7777
- The C FFI does **not** offer C ABI backward-compatibility guarantees: callers (Datadog SDKs) pin to specific libdatadog versions, so `#[repr(C)]` layouts, function signatures, and enum variants may change between releases.
7878

7979
### Cryptography

Cargo.lock

Lines changed: 59 additions & 51 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ members = [
77
"libdd-alloc",
88
"libdd-profiling-heap-sampler",
99
"libdd-profiling-heap-allocator",
10+
"libdd-gotter",
1011
"libdd-profiling-heap-gotter",
1112
"libdd-profiling-heap-gotter-ffi",
1213
"libdd-crashtracker",
1314
"libdd-crashtracker-ffi",
14-
"datadog-ffe",
15-
"datadog-ffe-test-suite",
16-
"datadog-ffe-ffi",
15+
"libdd-ffe",
16+
"libdd-ffe-test-suite",
17+
"libdd-ffe-ffi",
1718
"datadog-ipc",
1819
"datadog-ipc-macros",
1920
"libdd-library-config",

LICENSE-3rdparty.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ js-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys,MIT OR
221221
kernel32-sys,https://github.com/retep998/winapi-rs,MIT,Peter Atashian <retep998@gmail.com>
222222
kv-log-macro,https://github.com/yoshuawuyts/kv-log-macro,MIT OR Apache-2.0,Yoshua Wuyts <yoshuawuyts@gmail.com>
223223
lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel <loebel.marvin@gmail.com>
224-
libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The Rust Project Developers
224+
libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The libc Authors
225225
libdd-libunwind-sys,https://github.com/DataDog/libdatadog/tree/main/libdd-libunwind-sys,Apache-2.0,The libdd-libunwind-sys Authors
226226
libloading,https://github.com/nagisa/rust_libloading,ISC,Simonas Kazlauskas <libloading@kazlauskas.me>
227227
libredox,https://gitlab.redox-os.org/redox-os/libredox,MIT,4lDO2 <4lDO2@protonmail.com>

builder/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ default = [
2020
"ddsketch",
2121
"ffe",
2222
"shared-runtime",
23+
"catch_panic",
2324
]
2425
crashtracker = []
2526
profiling = []
@@ -35,11 +36,11 @@ ddsketch = []
3536
ffe = []
3637
shared-runtime = []
3738
otel-thread-ctx = []
39+
catch_panic = []
3840
regex-lite = ["libdd-common/regex-lite"]
3941

4042
[lib]
4143
bench = false
42-
test = false
4344
doctest = false
4445

4546
[dependencies]

builder/src/bin/release.rs

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use builder::builder::Builder;
99
use builder::common::Common;
1010
#[cfg(feature = "crashtracker")]
1111
use builder::crashtracker::CrashTracker;
12+
use builder::features::{profiling_features, Selection};
1213
#[cfg(feature = "profiling")]
1314
use builder::profiling::Profiling;
1415
use builder::utils::project_root;
@@ -54,34 +55,7 @@ pub fn main() {
5455
host.clone()
5556
};
5657

57-
#[allow(clippy::vec_init_then_push)]
58-
let features = {
59-
#[allow(unused_mut)]
60-
let mut f: Vec<String> = vec![];
61-
#[cfg(feature = "telemetry")]
62-
f.push("ddtelemetry-ffi".to_string());
63-
#[cfg(feature = "data-pipeline")]
64-
f.push("data-pipeline-ffi".to_string());
65-
#[cfg(feature = "data-pipeline-compression")]
66-
f.push("data-pipeline-compression".to_string());
67-
#[cfg(feature = "crashtracker")]
68-
f.push("crashtracker-ffi".to_string());
69-
#[cfg(feature = "symbolizer")]
70-
f.push("symbolizer".to_string());
71-
#[cfg(feature = "library-config")]
72-
f.push("datadog-library-config-ffi".to_string());
73-
#[cfg(feature = "log")]
74-
f.push("datadog-log-ffi".to_string());
75-
#[cfg(feature = "ddsketch")]
76-
f.push("ddsketch-ffi".to_string());
77-
#[cfg(feature = "ffe")]
78-
f.push("datadog-ffe-ffi".to_string());
79-
#[cfg(feature = "shared-runtime")]
80-
f.push("shared-runtime".to_string());
81-
#[cfg(feature = "otel-thread-ctx")]
82-
f.push("otel-thread-ctx-ffi".to_string());
83-
f
84-
};
58+
let features = profiling_features(&Selection::from_cargo_features());
8559

8660
let mut builder = Builder::new(
8761
source_path.to_str().unwrap(),

builder/src/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ use crate::utils::{file_replace, project_root};
4040
/// Ok(())
4141
/// }
4242
/// }
43-
/// let mut builder = Builder::new("source", "target", "arch", "features", "profile", "version");
43+
/// let mut builder = Builder::new("source", "target", "arch", "profile", "features", "version");
4444
/// let core = Box::new(Core {
4545
/// version: builder.version.clone(),
4646
/// });

0 commit comments

Comments
 (0)