From 0acfa8c8fd27076564dfc39025d63f45d1c67882 Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Fri, 3 Apr 2026 12:51:52 +0200 Subject: [PATCH 1/9] fix(ci): skip base_service.phpt under Valgrind to fix test_extension_ci [7.0] The test has a memory leak under Valgrind on PHP 7.0 that causes the Makefile's leaked-test check to fail. Skip it during the Valgrind pass (USE_TRACKED_ALLOC=1) to unblock CI. --- tests/ext/base_service.phpt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/ext/base_service.phpt b/tests/ext/base_service.phpt index e7d69de9d66..a80e9dedc78 100644 --- a/tests/ext/base_service.phpt +++ b/tests/ext/base_service.phpt @@ -1,5 +1,9 @@ --TEST-- Properly set _dd.base_service when service name is manually changed +--SKIPIF-- + --FILE-- Date: Fri, 3 Apr 2026 12:57:55 +0200 Subject: [PATCH 2/9] fix(ci): xfail OpenSSL SNI tests in PHP Language Tests for all versions sni_server.phpt, sni_server_key_cert.phpt, and bug74796.phpt are loopback TLS tests that do not check SKIP_ONLINE_TESTS and fail when CI pod networking does not support SNI loopback connections. PHP 7.1 already had sni_server.phpt xfailed; add all three for 7.0 and 7.2+. --- dockerfiles/ci/xfail_tests/7.0.list | 3 +++ dockerfiles/ci/xfail_tests/7.2.list | 3 +++ dockerfiles/ci/xfail_tests/7.3.list | 3 +++ dockerfiles/ci/xfail_tests/7.4.list | 3 +++ dockerfiles/ci/xfail_tests/8.0.list | 3 +++ dockerfiles/ci/xfail_tests/8.1.list | 3 +++ dockerfiles/ci/xfail_tests/8.2.list | 3 +++ dockerfiles/ci/xfail_tests/8.3.list | 3 +++ dockerfiles/ci/xfail_tests/8.4.list | 3 +++ dockerfiles/ci/xfail_tests/8.5.list | 3 +++ 10 files changed, 30 insertions(+) diff --git a/dockerfiles/ci/xfail_tests/7.0.list b/dockerfiles/ci/xfail_tests/7.0.list index 4097ddf7bc8..9c2e8ca9c6d 100644 --- a/dockerfiles/ci/xfail_tests/7.0.list +++ b/dockerfiles/ci/xfail_tests/7.0.list @@ -181,6 +181,9 @@ ext/openssl/tests/streams_crypto_method.phpt ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pdo/tests/pdo_023.phpt ext/pdo/tests/pdo_030.phpt ext/pdo_sqlite/tests/bug43831.phpt diff --git a/dockerfiles/ci/xfail_tests/7.2.list b/dockerfiles/ci/xfail_tests/7.2.list index ddd0300894b..ac70ed82b0e 100644 --- a/dockerfiles/ci/xfail_tests/7.2.list +++ b/dockerfiles/ci/xfail_tests/7.2.list @@ -186,6 +186,9 @@ ext/openssl/tests/tls_wrapper.phpt ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pdo/tests/pdo_023.phpt ext/pdo/tests/pdo_030.phpt ext/pdo_sqlite/tests/bug43831.phpt diff --git a/dockerfiles/ci/xfail_tests/7.3.list b/dockerfiles/ci/xfail_tests/7.3.list index eda53cf52d4..001f8055aca 100644 --- a/dockerfiles/ci/xfail_tests/7.3.list +++ b/dockerfiles/ci/xfail_tests/7.3.list @@ -422,3 +422,6 @@ ext/standard/tests/http/ghsa-hgf5-96fm-v528-002.phpt ext/standard/tests/http/ghsa-hgf5-96fm-v528-001.phpt ext/standard/tests/http/ignore_errors.phpt ext/openssl/tests/bug79145.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt diff --git a/dockerfiles/ci/xfail_tests/7.4.list b/dockerfiles/ci/xfail_tests/7.4.list index f4ebecf4319..37dc77d1a31 100644 --- a/dockerfiles/ci/xfail_tests/7.4.list +++ b/dockerfiles/ci/xfail_tests/7.4.list @@ -242,6 +242,9 @@ ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt ext/openssl/tests/tlsv1.3_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pcntl/tests/pcntl_unshare_01.phpt ext/pcntl/tests/pcntl_unshare_03.phpt ext/pdo/tests/pdo_023.phpt diff --git a/dockerfiles/ci/xfail_tests/8.0.list b/dockerfiles/ci/xfail_tests/8.0.list index af6d07e3e4d..d69fc4f3f1b 100644 --- a/dockerfiles/ci/xfail_tests/8.0.list +++ b/dockerfiles/ci/xfail_tests/8.0.list @@ -566,3 +566,6 @@ ext/standard/tests/http/ghsa-hgf5-96fm-v528-001.phpt ext/standard/tests/http/ignore_errors.phpt ext/standard/tests/general_functions/proc_open02.phpt ext/openssl/tests/bug79145.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt diff --git a/dockerfiles/ci/xfail_tests/8.1.list b/dockerfiles/ci/xfail_tests/8.1.list index 35b7dc63ac2..31d8c98ed4c 100644 --- a/dockerfiles/ci/xfail_tests/8.1.list +++ b/dockerfiles/ci/xfail_tests/8.1.list @@ -106,6 +106,9 @@ ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt ext/openssl/tests/tlsv1.3_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pcntl/tests/pcntl_unshare_01.phpt ext/pcntl/tests/pcntl_unshare_02.phpt ext/pcntl/tests/pcntl_unshare_03.phpt diff --git a/dockerfiles/ci/xfail_tests/8.2.list b/dockerfiles/ci/xfail_tests/8.2.list index f8c3862efdf..aa81e5f9ffd 100644 --- a/dockerfiles/ci/xfail_tests/8.2.list +++ b/dockerfiles/ci/xfail_tests/8.2.list @@ -96,6 +96,9 @@ ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt ext/openssl/tests/tlsv1.3_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pcntl/tests/pcntl_unshare_01.phpt ext/pcntl/tests/pcntl_unshare_02.phpt ext/pcntl/tests/pcntl_unshare_03.phpt diff --git a/dockerfiles/ci/xfail_tests/8.3.list b/dockerfiles/ci/xfail_tests/8.3.list index 2cf3c411061..a94260c4be2 100644 --- a/dockerfiles/ci/xfail_tests/8.3.list +++ b/dockerfiles/ci/xfail_tests/8.3.list @@ -94,6 +94,9 @@ ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt ext/openssl/tests/tlsv1.3_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pcntl/tests/pcntl_unshare_01.phpt ext/pcntl/tests/pcntl_unshare_02.phpt ext/pcntl/tests/pcntl_unshare_03.phpt diff --git a/dockerfiles/ci/xfail_tests/8.4.list b/dockerfiles/ci/xfail_tests/8.4.list index 466800981e6..bbfb5b71df2 100644 --- a/dockerfiles/ci/xfail_tests/8.4.list +++ b/dockerfiles/ci/xfail_tests/8.4.list @@ -97,6 +97,9 @@ ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt ext/openssl/tests/tlsv1.3_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pcntl/tests/pcntl_unshare_01.phpt ext/pcntl/tests/pcntl_unshare_02.phpt ext/pcntl/tests/pcntl_unshare_03.phpt diff --git a/dockerfiles/ci/xfail_tests/8.5.list b/dockerfiles/ci/xfail_tests/8.5.list index d44340f8183..4a528ade8cd 100644 --- a/dockerfiles/ci/xfail_tests/8.5.list +++ b/dockerfiles/ci/xfail_tests/8.5.list @@ -98,6 +98,9 @@ ext/openssl/tests/tlsv1.0_wrapper.phpt ext/openssl/tests/tlsv1.1_wrapper.phpt ext/openssl/tests/tlsv1.2_wrapper.phpt ext/openssl/tests/tlsv1.3_wrapper.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/bug74796.phpt ext/pcntl/tests/pcntl_unshare_01.phpt ext/pcntl/tests/pcntl_unshare_02.phpt ext/pcntl/tests/pcntl_unshare_03.phpt From 6fad6fe97125bf1ed79c51f998a05801639c6ea7 Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Fri, 3 Apr 2026 13:06:11 +0200 Subject: [PATCH 3/9] docs(ci): document OpenSSL SNI xfail entries in README --- dockerfiles/ci/xfail_tests/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dockerfiles/ci/xfail_tests/README.md b/dockerfiles/ci/xfail_tests/README.md index c4b8cbfc1e2..76d926d7804 100644 --- a/dockerfiles/ci/xfail_tests/README.md +++ b/dockerfiles/ci/xfail_tests/README.md @@ -242,3 +242,9 @@ Disabled on versions: `8.1+`. This test checks PHP's handling of excessively large QName prefix in SoapVar (a stress test for edge cases). With ddtrace loaded, the additional memory overhead causes the test to be killed before it can complete, due to hitting memory limits during the stress test. +## `ext/openssl/tests/sni_server.phpt`, `ext/openssl/tests/sni_server_key_cert.phpt`, `ext/openssl/tests/bug74796.phpt` + +Disabled on all versions. + +These are loopback TLS tests that do not check `SKIP_ONLINE_TESTS` and fail due to CI pod networking producing flakiness. The failures are unrelated to the tracer. + From 3cd08d41a5e0516c17d77dd0bae4a90b754edd0d Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Fri, 3 Apr 2026 13:30:21 +0200 Subject: [PATCH 4/9] Collect *.mem files from valgrind tests Signed-off-by: Bob Weinand --- .gitlab/collect_artifacts.sh | 2 +- tests/ext/base_service.phpt | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.gitlab/collect_artifacts.sh b/.gitlab/collect_artifacts.sh index cfc02c5434d..fd1a9c71094 100755 --- a/.gitlab/collect_artifacts.sh +++ b/.gitlab/collect_artifacts.sh @@ -5,6 +5,6 @@ set -eo pipefail mkdir -p "${CI_PROJECT_DIR}/artifacts/core_dumps" find . -type f -name "core*" -exec head -c 4 "{}" \; -exec echo " {}" \; | grep -a ^.ELF | cut -d' ' -f2 | xargs -I % -n 1 cp % "${CI_PROJECT_DIR}/artifacts/core_dumps" || true mkdir -p "${CI_PROJECT_DIR}/artifacts/diffs" -find . -type f -name '*.diff' -not -path "*/vendor/*" -exec cp --parents '{}' "${CI_PROJECT_DIR}/artifacts/diffs" \; || true +find . -type f \( -name '*.diff' -o -name "*.mem" \) -not -path "*/vendor/*" -exec cp --parents '{}' "${CI_PROJECT_DIR}/artifacts/diffs" \; || true mkdir -p "${CI_PROJECT_DIR}/artifacts/tests" find . -type f -name '*.xml' -path "*/artifacts/tests/*" -exec cp '{}' "${CI_PROJECT_DIR}/artifacts/tests/" \; || true diff --git a/tests/ext/base_service.phpt b/tests/ext/base_service.phpt index a80e9dedc78..e7d69de9d66 100644 --- a/tests/ext/base_service.phpt +++ b/tests/ext/base_service.phpt @@ -1,9 +1,5 @@ --TEST-- Properly set _dd.base_service when service name is manually changed ---SKIPIF-- - --FILE-- Date: Fri, 3 Apr 2026 16:48:53 +0200 Subject: [PATCH 5/9] fix(ci): use stable trampoline path in Valgrind pass to fix base_service leak Set DD_SPAWN_WORKER_STABLE_TRAMPOLINE=1 in the test_extension_ci Valgrind pass so the sidecar spawn_worker writes the trampoline to a stable per- process path instead of a random temp file that gets self-deleted before Valgrind can read it. Updates libdatadog to DataDog/libdatadog#1844. --- Makefile | 2 +- libdatadog | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index deb5e20c4ec..29d42e12c50 100644 --- a/Makefile +++ b/Makefile @@ -211,7 +211,7 @@ test_extension_ci: $(SO_FILE) $(TEST_FILES) $(TEST_STUB_FILES) $(BUILD_DIR)/run- \ export TEST_PHP_JUNIT=$(JUNIT_RESULTS_DIR)/valgrind-extension-test.xml; \ export TEST_PHP_OUTPUT=$(JUNIT_RESULTS_DIR)/valgrind-run-tests.out; \ - $(ALL_TEST_ENV_OVERRIDE) $(RUN_TESTS_CMD) -d extension=$(SO_FILE) -m -s $$TEST_PHP_OUTPUT $(BUILD_DIR)/$(TESTS) && ! grep -e '^LEAKED TEST SUMMARY' $$TEST_PHP_OUTPUT; \ + DD_SPAWN_WORKER_STABLE_TRAMPOLINE=1 $(ALL_TEST_ENV_OVERRIDE) $(RUN_TESTS_CMD) -d extension=$(SO_FILE) -m -s $$TEST_PHP_OUTPUT $(BUILD_DIR)/$(TESTS) && ! grep -e '^LEAKED TEST SUMMARY' $$TEST_PHP_OUTPUT; \ ) build_tea: TEA_BUILD_TESTS=ON diff --git a/libdatadog b/libdatadog index bfdbeae3e32..8a7126fb0f4 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit bfdbeae3e32dabf8949a945c421e47c81b098040 +Subproject commit 8a7126fb0f4580f30cb3f1e2e84faa76ea4b7de0 From 0675e27c55503a47912b3a237bcf26998c5a670c Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Fri, 3 Apr 2026 16:51:26 +0200 Subject: [PATCH 6/9] fix(ci): update libdatadog to rebased trampoline fix --- libdatadog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libdatadog b/libdatadog index 8a7126fb0f4..249be463995 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit 8a7126fb0f4580f30cb3f1e2e84faa76ea4b7de0 +Subproject commit 249be463995da75026d8bc65b6790c2656952b0b From ba4596a2eb78d4d8262fd758fd90617b782a9d67 Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Fri, 3 Apr 2026 17:26:09 +0200 Subject: [PATCH 7/9] fix(ci): update Cargo.lock for rebased libdatadog --- Cargo.lock | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 912cec23bd8..ba2f26ff501 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2709,6 +2709,26 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "libdd-capabilities" +version = "0.1.0" +dependencies = [ + "anyhow", + "bytes", + "http", + "thiserror 1.0.69", +] + +[[package]] +name = "libdd-capabilities-impl" +version = "0.1.0" +dependencies = [ + "bytes", + "http", + "libdd-capabilities", + "libdd-common", +] + [[package]] name = "libdd-common" version = "3.0.2" @@ -2730,6 +2750,7 @@ dependencies = [ "hyper-util", "indexmap 2.12.1", "libc 0.2.177", + "libdd-capabilities", "maplit", "mime", "multer", @@ -2740,7 +2761,6 @@ dependencies = [ "reqwest", "rustls", "rustls-native-certs", - "rusty-fork", "serde", "static_assertions", "tempfile", @@ -2833,9 +2853,12 @@ dependencies = [ "clap", "criterion", "either", + "getrandom 0.2.15", "http", "http-body-util", "httpmock", + "libdd-capabilities", + "libdd-capabilities-impl", "libdd-common", "libdd-ddsketch", "libdd-dogstatsd-client", @@ -2941,6 +2964,7 @@ dependencies = [ "bolero", "byteorder", "bytes", + "cc", "chrono", "criterion", "crossbeam-channel", @@ -2992,6 +3016,7 @@ version = "4.0.0" dependencies = [ "anyhow", "base64 0.22.1", + "bytes", "futures", "hashbrown 0.15.2", "http", @@ -3089,12 +3114,15 @@ dependencies = [ "criterion", "flate2", "futures", + "getrandom 0.2.15", "http", "http-body", "http-body-util", "httpmock", "hyper", "indexmap 2.12.1", + "libdd-capabilities", + "libdd-capabilities-impl", "libdd-common", "libdd-tinybytes", "libdd-trace-normalization", @@ -6017,6 +6045,7 @@ checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" dependencies = [ "getrandom 0.2.15", "serde", + "wasm-bindgen", ] [[package]] From 6a0443d2a3389a0b7b26020444fe24a59d9cb303 Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Fri, 3 Apr 2026 17:31:23 +0200 Subject: [PATCH 8/9] fix(tests): update crashtracker_segfault EXPECTF for libdatadog 1.6 schema - runtime_stack moved to message.experimental.runtime_stack - new error block with native crash stack (Datadog Crashtracker 1.0 format) - data_schema_version bumped to 1.6 - signal message changed to "Process terminated with SI_USER (SIGSEGV)" --- tests/ext/crashtracker_segfault.phpt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/ext/crashtracker_segfault.phpt b/tests/ext/crashtracker_segfault.phpt index 3388f138fcb..2d9f08442a7 100644 --- a/tests/ext/crashtracker_segfault.phpt +++ b/tests/ext/crashtracker_segfault.phpt @@ -70,6 +70,22 @@ $rr->waitForRequest(function ($request) { %A{ "message": { %A + "data_schema_version": "1.6", + "error": { + "is_crash": true, + "kind": "UnixSignal", + "message": "Process terminated with SI_USER (SIGSEGV)", + "thread_name": "%s", + "source_type": "Crashtracking", + "stack": { + "format": "Datadog Crashtracker 1.0", + "frames": [ +%A + ], + "incomplete": false + } + }, + "experimental": { "runtime_stack": { "format": "Datadog Runtime Callback 1.0", "frames": [ @@ -94,7 +110,7 @@ $rr->waitForRequest(function ($request) { } ] } -%A + }, "files": { %A }, From 732de8776da9d12ed0b875bd6da558b69dc06136 Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Fri, 3 Apr 2026 21:14:39 +0200 Subject: [PATCH 9/9] fix(build): add libdd-capabilities and libdd-capabilities-impl to RUST_FILES for PECL package --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 29d42e12c50..abaacda2d08 100644 --- a/Makefile +++ b/Makefile @@ -48,7 +48,7 @@ RUN_TESTS_CMD := DD_SERVICE= DD_ENV= REPORT_EXIT_STATUS=1 TEST_PHP_SRCDIR=$(PROJ C_FILES = $(shell find components components-rs ext src/dogstatsd zend_abstract_interface -name '*.c' -o -name '*.h' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' ) TEST_FILES = $(shell find tests/ext -name '*.php*' -o -name '*.inc' -o -name '*.json' -o -name '*.yaml' -o -name 'CONFLICTS' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' ) -RUST_FILES = $(BUILD_DIR)/Cargo.toml $(BUILD_DIR)/Cargo.lock $(shell find components-rs -name '*.c' -o -name '*.rs' -o -name 'Cargo.toml' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' ) $(shell find libdatadog/{build-common,datadog-ffe,datadog-ipc,datadog-ipc-macros,datadog-live-debugger,datadog-live-debugger-ffi,datadog-remote-config,datadog-sidecar,datadog-sidecar-ffi,datadog-sidecar-macros,libdd-alloc,libdd-common,libdd-common-ffi,libdd-crashtracker,libdd-crashtracker-ffi,libdd-data-pipeline,libdd-ddsketch,libdd-dogstatsd-client,libdd-library-config,libdd-library-config-ffi,libdd-log,libdd-libunwind-sys,libdd-telemetry,libdd-telemetry-ffi,libdd-tinybytes,libdd-trace-*,spawn_worker,tools/{cc_utils,sidecar_mockgen},libdd-trace-*,Cargo.toml} \( -type l -o -type f \) \( -path "*/src*" -o -path "*/examples*" -o -path "*/libunwind*" -o -path "*Cargo.toml" -o -path "*/build.rs" -o -path "*/tests/dataservice.rs" -o -path "*/tests/service_functional.rs" \) -not -path "*/datadog-ipc/build.rs" -not -path "*/datadog-sidecar-ffi/build.rs") +RUST_FILES = $(BUILD_DIR)/Cargo.toml $(BUILD_DIR)/Cargo.lock $(shell find components-rs -name '*.c' -o -name '*.rs' -o -name 'Cargo.toml' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' ) $(shell find libdatadog/{build-common,datadog-ffe,datadog-ipc,datadog-ipc-macros,datadog-live-debugger,datadog-live-debugger-ffi,datadog-remote-config,datadog-sidecar,datadog-sidecar-ffi,datadog-sidecar-macros,libdd-alloc,libdd-capabilities,libdd-capabilities-impl,libdd-common,libdd-common-ffi,libdd-crashtracker,libdd-crashtracker-ffi,libdd-data-pipeline,libdd-ddsketch,libdd-dogstatsd-client,libdd-library-config,libdd-library-config-ffi,libdd-log,libdd-libunwind-sys,libdd-telemetry,libdd-telemetry-ffi,libdd-tinybytes,libdd-trace-*,spawn_worker,tools/{cc_utils,sidecar_mockgen},libdd-trace-*,Cargo.toml} \( -type l -o -type f \) \( -path "*/src*" -o -path "*/examples*" -o -path "*/libunwind*" -o -path "*Cargo.toml" -o -path "*/build.rs" -o -path "*/tests/dataservice.rs" -o -path "*/tests/service_functional.rs" \) -not -path "*/datadog-ipc/build.rs" -not -path "*/datadog-sidecar-ffi/build.rs") ALL_OBJECT_FILES = $(C_FILES) $(RUST_FILES) $(BUILD_DIR)/Makefile TEST_OPCACHE_FILES = $(shell find tests/opcache -name '*.php*' -o -name '.gitkeep' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' ) TEST_STUB_FILES = $(shell find tests/ext -type d -name 'stubs' -exec find '{}' -type f \; | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' )