diff mbox series

[3/9] lttng-tools: Fix build with libcxx runtime

Message ID 20250821064528.754633-3-raj.khem@gmail.com
State New
Headers show
Series [v2,1/9] m4: Fix ptest on musl | expand

Commit Message

Khem Raj Aug. 21, 2025, 6:45 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../lttng/lttng-tools/libc++.patch            | 48 +++++++++++++++++++
 .../lttng/lttng-tools_2.14.0.bb               |  1 +
 2 files changed, 49 insertions(+)
 create mode 100644 meta/recipes-kernel/lttng/lttng-tools/libc++.patch

Comments

patchtest@automation.yoctoproject.org Aug. 21, 2025, 7:04 a.m. UTC | #1
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch /home/patchtest/share/mboxes/3-9-lttng-tools-Fix-build-with-libcxx-runtime.patch

FAIL: test commit message presence: Please include a commit message on your patch explaining the change (test_mbox.TestMbox.test_commit_message_presence)

PASS: pretest src uri left files (test_metadata.TestMetadata.pretest_src_uri_left_files)
PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Signed-off-by presence (test_patch.TestPatch.test_signed_off_by_presence)
PASS: test Upstream-Status presence (test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test lic files chksum modified not mentioned (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test src uri left files (test_metadata.TestMetadata.test_src_uri_left_files)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)

SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
diff mbox series

Patch

diff --git a/meta/recipes-kernel/lttng/lttng-tools/libc++.patch b/meta/recipes-kernel/lttng/lttng-tools/libc++.patch
new file mode 100644
index 00000000000..be793c76992
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-tools/libc++.patch
@@ -0,0 +1,48 @@ 
+sessiond: avoid std::vector range-ctor on non-standard iterators (libc++)
+
+libc++ SFINAE-gates std::vector(It, It) behind standard iterator requirements.
+The events_view/channels_ht_view iterators don’t model Input/Forward, so the
+range constructor is not viable and the build fails under clang+libc++.
+Populate the vectors via a simple loop instead, which only relies on !=, ++,
+and dereference. No functional change; fixes clang/libc++ builds while keeping
+libstdc++ behavior unchanged.
+
+Upstream-Status: Submitted [https://review.lttng.org/c/lttng-tools/+/15163]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: lttng-tools-2.14.0/src/bin/lttng-sessiond/ust-registry-channel.cpp
+===================================================================
+--- lttng-tools-2.14.0.orig/src/bin/lttng-sessiond/ust-registry-channel.cpp
++++ lttng-tools-2.14.0/src/bin/lttng-sessiond/ust-registry-channel.cpp
+@@ -529,8 +529,11 @@ void lsu::registry_channel::_accept_on_e
+ 		events_view(*_events->ht);
+ 
+ 	/* Copy the event ptrs from the _events ht to this vector which we'll sort. */
+-	std::vector<const lttng::sessiond::ust::registry_event *> sorted_event_classes(
+-		events_view.begin(), events_view.end());
++  std::vector<const lttng::sessiond::ust::registry_event *> sorted_event_classes;
++  /* Avoid libc++’s range-ctor SFINAE on non-standard iterators. */
++  for (auto it = events_view.begin(); it != events_view.end(); ++it) {
++  	sorted_event_classes.push_back(*it);
++  }
+ 
+ 	std::sort(sorted_event_classes.begin(),
+ 		  sorted_event_classes.end(),
+Index: lttng-tools-2.14.0/src/bin/lttng-sessiond/ust-registry-session.cpp
+===================================================================
+--- lttng-tools-2.14.0.orig/src/bin/lttng-sessiond/ust-registry-session.cpp
++++ lttng-tools-2.14.0/src/bin/lttng-sessiond/ust-registry-session.cpp
+@@ -586,8 +586,11 @@ void lsu::registry_session::_accept_on_s
+ 						  decltype(lsu::registry_channel::_node),
+ 						  &lsu::registry_channel::_node>
+ 		channels_ht_view(*_channels->ht);
+-	std::vector<const lttng::sessiond::ust::registry_channel *> sorted_stream_classes(
+-		channels_ht_view.begin(), channels_ht_view.end());
++  std::vector<const lttng::sessiond::ust::registry_channel *> sorted_stream_classes;
++  /* Avoid libc++’s range-ctor SFINAE on non-standard iterators. */
++  for (auto it = channels_ht_view.begin(); it != channels_ht_view.end(); ++it) {
++  	sorted_stream_classes.push_back(*it);
++  }
+ 
+ 	std::sort(sorted_stream_classes.begin(),
+ 		  sorted_stream_classes.end(),
diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.14.0.bb b/meta/recipes-kernel/lttng/lttng-tools_2.14.0.bb
index 5bb6033b12c..89fcb6b60b1 100644
--- a/meta/recipes-kernel/lttng/lttng-tools_2.14.0.bb
+++ b/meta/recipes-kernel/lttng/lttng-tools_2.14.0.bb
@@ -53,6 +53,7 @@  SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
            file://0001-eventfd.cpp-Remove-the-scope-resolution-operator.patch \
            file://disable-tests2.patch \
            file://0001-liblttng-ctl-drop-index-allocator-symbols-from-versi.patch \
+           file://libc++.patch \
            "
 
 SRC_URI[sha256sum] = "d8c39c26cec13b7bd82551cd52a22efc358b888e36ebcf9c1b60ef1c3a3c2fd3"