summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChangqing Li <changqing.li@windriver.com>2026-03-18 16:27:01 +0800
committerKhem Raj <raj.khem@gmail.com>2026-03-18 14:33:34 -0700
commit0001e284a9dd5d332f99f1003eba2628e7f8758a (patch)
tree5bbaac6263c79fa60f5be189b1e5cb45a0e8d13e
parentcf4788c91682f91d934475e8394f1b346508c8f8 (diff)
downloadmeta-openembedded-0001e284a9dd5d332f99f1003eba2628e7f8758a.tar.gz
dlt-daemon: upgrade 2.18.10 to 3.0.0
Changes: https://github.com/COVESA/dlt-daemon/releases Remove patches already in 3.0.0: 544.patch 567.patch 0001-CMakeLists-txt-make-DLT_WatchdogSec-can-be-set-by-user.patch 0003-allow-build-with-cmake-4.patch Add patches to fix build failures 0001-Fix-compile-failure-related-to-gzlog.patch 0001-Fix-kinds-of-build-failure.patch 0001-Fix-build-failures.patch 0001-fix-build-failure-when-systemd-is-enabled.patch 0001-Fix-build-failure-with-glibc-2.43.patch Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists-txt-make-DLT_WatchdogSec-can-be-set-by-user.patch40
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failure-with-glibc-2.43.patch55
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failures.patch360
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-compile-failure-related-to-gzlog.patch69
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-kinds-of-build-failure.patch174
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch423
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0003-allow-build-with-cmake-4.patch99
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch80
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch36
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb (renamed from meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.10.bb)12
10 files changed, 1088 insertions, 260 deletions
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists-txt-make-DLT_WatchdogSec-can-be-set-by-user.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists-txt-make-DLT_WatchdogSec-can-be-set-by-user.patch
deleted file mode 100644
index 335872c40f..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-CMakeLists-txt-make-DLT_WatchdogSec-can-be-set-by-user.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From bc03f142507da92add8ba325fdf8187d47a7d719 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Fri, 13 Dec 2024 16:37:24 +0800
4Subject: [PATCH] CMakeLists.txt: make DLT_WatchdogSec can be set by user
5
6In my test env, WatchdogSec default value 2 is not enough, manually
7changed to 3 is ok. This makes dlt.service/dlt-system.service start
8failed during boot time. So, make DLT_WatchdogSec can be set by user, so
9user can set them to proper value at build time, then service can start
10successfully in boot time.
11
12Signed-off-by: Changqing Li <changqing.li@windriver.com>
13
14Upstream-Status: Backport [https://github.com/COVESA/dlt-daemon/pull/720/commits/bc03f142507da92add8ba325fdf8187d47a7d719]
15
16Signed-off-by: Changqing Li <changqing.li@windriver.com>
17---
18 systemd/CMakeLists.txt | 8 ++++++--
19 1 file changed, 6 insertions(+), 2 deletions(-)
20
21diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt
22index 16cbe86b5..659378d16 100644
23--- a/systemd/CMakeLists.txt
24+++ b/systemd/CMakeLists.txt
25@@ -18,10 +18,14 @@ if(WITH_SYSTEMD)
26 set(SYSTEMD_CONFIGURATIONS_FILES_DIR ${SYSTEMD_UNITDIR} )
27
28 if(WITH_SYSTEMD_WATCHDOG)
29- set( DLT_WatchdogSec 2 )
30+ if(NOT DEFINED DLT_WatchdogSec)
31+ set(DLT_WatchdogSec 2 CACHE STRING "Watchdog timeout in seconds")
32+ endif()
33 message( STATUS "The systemd watchdog is enabled - timeout is set to ${DLT_WatchdogSec} seconds")
34 else(WITH_SYSTEMD_WATCHDOG)
35- set( DLT_WatchdogSec 0 )
36+ if(NOT DEFINED DLT_WatchdogSec)
37+ set(DLT_WatchdogSec 0 CACHE STRING "Watchdog timeout in seconds")
38+ endif()
39 message( STATUS "The systemd watchdog is disabled")
40 endif(WITH_SYSTEMD_WATCHDOG)
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failure-with-glibc-2.43.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failure-with-glibc-2.43.patch
new file mode 100644
index 0000000000..d37489e4b7
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failure-with-glibc-2.43.patch
@@ -0,0 +1,55 @@
1From c833520ac8cb473a6d820a063adb10c49304c4a8 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Wed, 18 Mar 2026 13:42:04 +0800
4Subject: [PATCH] Fix build failure with glibc 2.43
5
6src/shared/dlt_common.c:6477:17: error: initialization discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
7| 6477 | char *dot = strrchr(filename, '.');
8
9Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/828]
10
11[1] https://github.com/bminor/glibc/commit/cd748a63ab1a7ae846175c532a3daab341c62690
12
13Signed-off-by: Changqing Li <changqing.li@windriver.com>
14---
15 include/dlt/dlt_common.h | 2 +-
16 src/shared/dlt_common.c | 4 ++--
17 2 files changed, 3 insertions(+), 3 deletions(-)
18
19diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h
20index 85cf5b7..30d3ca7 100644
21--- a/include/dlt/dlt_common.h
22+++ b/include/dlt/dlt_common.h
23@@ -2308,7 +2308,7 @@ int dlt_execute_command(char *filename, char *command, ...);
24 * @param filename Only file names without prepended path allowed.
25 * @return pointer to extension
26 */
27-char *get_filename_ext(const char *filename);
28+const char *get_filename_ext(const char *filename);
29
30 /**
31 * Extract the base name of given file name (without the extension).
32diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c
33index aa0aaaa..4c379af 100644
34--- a/src/shared/dlt_common.c
35+++ b/src/shared/dlt_common.c
36@@ -6467,14 +6467,14 @@ int dlt_execute_command(char *filename, char *command, ...)
37 return ret;
38 }
39
40-char *get_filename_ext(const char *filename)
41+const char *get_filename_ext(const char *filename)
42 {
43 if (filename == NULL) {
44 fprintf(stderr, "ERROR: %s: invalid arguments\n", __func__);
45 return "";
46 }
47
48- char *dot = strrchr(filename, '.');
49+ const char *dot = strrchr(filename, '.');
50 return (!dot || dot == filename) ? NULL : dot;
51 }
52
53--
542.34.1
55
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failures.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failures.patch
new file mode 100644
index 0000000000..6cfa3a5482
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-failures.patch
@@ -0,0 +1,360 @@
1From 4813b72cfe82062db41dd1d8cfa7069634d78d9e Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Mon, 16 Mar 2026 13:28:40 +0800
4Subject: [PATCH] Fix build failures
5
6Fix the following similar build failures, some of the build failure
7reproduced with arm64/riscv64, some of the build reproduced with 32bit
8x86/arm.
9
10dlt_daemon_common.c:2785:26: error: conversion to 'int8_t' {aka 'signed char'} from 'char' may change the sign of the result [-Werror=sign-conversion]
11
12src/tests/dlt-test-multi-process-client-v2.c:302:49: error: format '%lld' expects argument of type 'long long int', but argument 2 has type 'time_t' {aka 'long int'} [-Werror=format=]
13 302 | printf(" Time running (seconds) : %lld\n", time(NULL) - stats.first_message_time);
14 | ~~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 | | |
16 | long long int time_t {aka long int}
17 | %ld
18
19src/lib/dlt_user.c:5109:60: error: format '%lld' expects argument of type 'long long int', but argument 4 has type '__off_t' {aka 'long int'} [-Werror=format=]
20 5109 | dlt_vlog(LOG_DEBUG, "%s: Current file size=[%lld]\n", __func__,
21 | ~~~^
22 | |
23 | long long int
24 | %ld
25 5110 | st.st_size);
26 | ~~~~~~~~~~
27 | |
28 | __off_t {aka long int}
29
30Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/827]
31
32Signed-off-by: Changqing Li <changqing.li@windriver.com>
33---
34 src/daemon/dlt-daemon.c | 8 ++---
35 src/daemon/dlt_daemon_client.c | 32 ++++++++++----------
36 src/daemon/dlt_daemon_common.c | 4 +--
37 src/lib/dlt_user.c | 18 +++++------
38 src/shared/dlt_common.c | 2 +-
39 src/shared/dlt_multiple_files.c | 2 +-
40 src/tests/dlt-test-multi-process-client-v2.c | 8 ++---
41 src/tests/dlt-test-multi-process-v2.c | 2 +-
42 src/tests/dlt-test-multi-process.c | 2 +-
43 9 files changed, 39 insertions(+), 39 deletions(-)
44
45diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
46index 523bf33..2ae5bc9 100644
47--- a/src/daemon/dlt-daemon.c
48+++ b/src/daemon/dlt-daemon.c
49@@ -457,7 +457,7 @@ int option_file_parser(DltDaemonLocal *daemon_local)
50
51 if (n < 0 || (size_t)n > sizeof(daemon_local->flags.loggingFilename)) {
52 dlt_vlog(LOG_WARNING, "%s: snprintf truncation/error(%ld) %s\n",
53- __func__, n, daemon_local->flags.loggingFilename);
54+ __func__, (long int)n, daemon_local->flags.loggingFilename);
55 }
56 daemon_local->flags.enableLoggingFileLimit = false;
57 daemon_local->flags.loggingFileSize = 250000;
58@@ -2501,7 +2501,7 @@ void dlt_daemon_exit_trigger()
59 n = snprintf(tmp, DLT_PATH_MAX, "%s/dlt", dltFifoBaseDir);
60 if (n < 0 || (size_t)n > DLT_PATH_MAX) {
61 dlt_vlog(LOG_WARNING, "%s: snprintf truncation/error(%ld) %s\n",
62- __func__, n, tmp);
63+ __func__, (long int)n, tmp);
64 }
65
66 (void)unlink(tmp);
67@@ -2878,8 +2878,8 @@ int dlt_daemon_log_internal(DltDaemon *daemon, DltDaemonLocal *daemon_local,
68 dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL, daemon,daemon_local,
69 msg.headerbuffer, sizeof(DltStorageHeader),
70 msg.headerbuffer + sizeof(DltStorageHeader),
71- (size_t)(msg.headersize - (int32_t)sizeof(DltStorageHeader)),
72- msg.databuffer, (size_t)msg.datasize, verbose);
73+ (int)(msg.headersize - (int32_t)sizeof(DltStorageHeader)),
74+ msg.databuffer, (int)msg.datasize, verbose);
75
76 free(msg.databuffer);
77 }else {
78diff --git a/src/daemon/dlt_daemon_client.c b/src/daemon/dlt_daemon_client.c
79index 50d8f19..20a512b 100644
80--- a/src/daemon/dlt_daemon_client.c
81+++ b/src/daemon/dlt_daemon_client.c
82@@ -551,8 +551,8 @@ int dlt_daemon_client_send_message_to_all_client(DltDaemon *daemon,
83 return dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL, daemon, daemon_local,
84 daemon_local->msg.headerbuffer, sizeof(DltStorageHeader),
85 daemon_local->msg.headerbuffer + sizeof(DltStorageHeader),
86- (size_t)(daemon_local->msg.headersize - (int32_t)sizeof(DltStorageHeader)),
87- daemon_local->msg.databuffer, (size_t)daemon_local->msg.datasize, verbose);
88+ (int)(daemon_local->msg.headersize - (int32_t)sizeof(DltStorageHeader)),
89+ daemon_local->msg.databuffer, (int)daemon_local->msg.datasize, verbose);
90
91 }
92
93@@ -771,8 +771,8 @@ int dlt_daemon_client_send_control_message(int sock,
94 if ((ret =
95 dlt_daemon_client_send(sock, daemon, daemon_local, msg->headerbuffer, sizeof(DltStorageHeader),
96 msg->headerbuffer + sizeof(DltStorageHeader),
97- (size_t)(msg->headersize - (int32_t)sizeof(DltStorageHeader)),
98- msg->databuffer, (size_t)msg->datasize, verbose))) {
99+ (int)(msg->headersize - (int32_t)sizeof(DltStorageHeader)),
100+ msg->databuffer, (int)msg->datasize, verbose))) {
101 dlt_log(LOG_DEBUG, "dlt_daemon_control_send_control_message: DLT message send to all failed!.\n");
102 return ret;
103 }
104@@ -1919,7 +1919,7 @@ void dlt_daemon_control_get_log_info(int sock,
105
106 /* Allocate buffer for response message */
107 resp.databuffer = (uint8_t *)malloc((size_t)resp.datasize);
108- resp.databuffersize = (size_t)resp.datasize;
109+ resp.databuffersize = resp.datasize;
110
111 if (resp.databuffer == 0) {
112 dlt_daemon_control_service_response(sock,
113@@ -2572,7 +2572,7 @@ int dlt_daemon_control_message_buffer_overflow(int sock,
114
115 if (msg.databuffer == 0) {
116 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
117- msg.databuffersize = (size_t)msg.datasize;
118+ msg.databuffersize = msg.datasize;
119 }
120
121 if (msg.databuffer == 0)
122@@ -2633,7 +2633,7 @@ int dlt_daemon_control_message_buffer_overflow_v2(int sock,
123
124 if (msg.databuffer == 0) {
125 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
126- msg.databuffersize = (size_t)msg.datasize;
127+ msg.databuffersize = msg.datasize;
128 }
129
130 if (msg.databuffer == 0)
131@@ -2686,7 +2686,7 @@ void dlt_daemon_control_service_response(int sock,
132
133 if (msg.databuffer == 0) {
134 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
135- msg.databuffersize = (size_t)msg.datasize;
136+ msg.databuffersize = msg.datasize;
137 }
138
139 if (msg.databuffer == 0)
140@@ -2732,7 +2732,7 @@ void dlt_daemon_control_service_response_v2(int sock,
141
142 if (msg.databuffer == 0) {
143 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
144- msg.databuffersize = (size_t)msg.datasize;
145+ msg.databuffersize = msg.datasize;
146 }
147
148 if (msg.databuffer == 0)
149@@ -2779,7 +2779,7 @@ int dlt_daemon_control_message_unregister_context(int sock,
150
151 if (msg.databuffer == 0) {
152 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
153- msg.databuffersize = (size_t)msg.datasize;
154+ msg.databuffersize = msg.datasize;
155 }
156
157 if (msg.databuffer == 0)
158@@ -2842,7 +2842,7 @@ int dlt_daemon_control_message_unregister_context_v2(int sock,
159
160 if (msg.databuffer == 0) {
161 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
162- msg.databuffersize = (size_t)msg.datasize;
163+ msg.databuffersize = msg.datasize;
164 }
165
166 if (msg.databuffer == 0)
167@@ -2909,7 +2909,7 @@ int dlt_daemon_control_message_connection_info(int sock,
168
169 if (msg.databuffer == 0) {
170 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
171- msg.databuffersize = (size_t)msg.datasize;
172+ msg.databuffersize = msg.datasize;
173 }
174
175 if (msg.databuffer == 0)
176@@ -2962,7 +2962,7 @@ int dlt_daemon_control_message_connection_info_v2(int sock,
177
178 if (msg.databuffer == 0) {
179 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
180- msg.databuffersize = (size_t)msg.datasize;
181+ msg.databuffersize = msg.datasize;
182 }
183
184 if (msg.databuffer == 0)
185@@ -3010,7 +3010,7 @@ int dlt_daemon_control_message_timezone(int sock, DltDaemon *daemon, DltDaemonLo
186
187 if (msg.databuffer == 0) {
188 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
189- msg.databuffersize = (size_t)msg.datasize;
190+ msg.databuffersize = msg.datasize;
191 }
192
193 if (msg.databuffer == 0)
194@@ -3072,7 +3072,7 @@ int dlt_daemon_control_message_timezone_v2(int sock, DltDaemon *daemon, DltDaemo
195
196 if (msg.databuffer == 0) {
197 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
198- msg.databuffersize = (size_t)msg.datasize;
199+ msg.databuffersize = msg.datasize;
200 }
201
202 if (msg.databuffer == 0)
203@@ -3127,7 +3127,7 @@ int dlt_daemon_control_message_marker(int sock, DltDaemon *daemon, DltDaemonLoca
204
205 if (msg.databuffer == 0) {
206 msg.databuffer = (uint8_t *)malloc((size_t)msg.datasize);
207- msg.databuffersize = (size_t)msg.datasize;
208+ msg.databuffersize = msg.datasize;
209 }
210
211 if (msg.databuffer == 0)
212diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c
213index 2f08c6a..65b264a 100644
214--- a/src/daemon/dlt_daemon_common.c
215+++ b/src/daemon/dlt_daemon_common.c
216@@ -2782,7 +2782,7 @@ int dlt_daemon_user_send_log_state(DltDaemon *daemon, DltDaemonApplication *app,
217 if (dlt_user_set_userheader(&userheader, DLT_USER_MESSAGE_LOG_STATE) < DLT_RETURN_OK)
218 return -1;
219
220- logstate.log_state = daemon->connectionState;
221+ logstate.log_state = (int8_t)daemon->connectionState;
222
223 /* log to FIFO */
224 ret = dlt_user_log_out2_with_timeout(app->user_handle,
225@@ -2811,7 +2811,7 @@ int dlt_daemon_user_send_log_state_v2(DltDaemon *daemon, DltDaemonApplication *a
226 if (dlt_user_set_userheader_v2(&userheader, DLT_USER_MESSAGE_LOG_STATE) < DLT_RETURN_OK)
227 return -1;
228
229- logstate.log_state = daemon->connectionState;
230+ logstate.log_state = (int8_t)daemon->connectionState;
231
232 /* log to FIFO */
233 ret = dlt_user_log_out2_with_timeout(app->user_handle,
234diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c
235index 6d0098d..e432e26 100644
236--- a/src/lib/dlt_user.c
237+++ b/src/lib/dlt_user.c
238@@ -5106,8 +5106,8 @@ DltReturnValue dlt_user_log_send_log(DltContextData *log, const int mtype, int *
239 return DLT_RETURN_ERROR;
240 }
241
242- dlt_vlog(LOG_DEBUG, "%s: Current file size=[%ld]\n", __func__,
243- st.st_size);
244+ dlt_vlog(LOG_DEBUG, "%s: Current file size=[%lld]\n", __func__,
245+ (long long int)st.st_size);
246 /* Check filesize */
247 /* Return error if the file size has reached to maximum */
248 unsigned int msg_size = (unsigned int)st.st_size + (unsigned int)msg.headersize +
249@@ -5115,8 +5115,8 @@ DltReturnValue dlt_user_log_send_log(DltContextData *log, const int mtype, int *
250 if (msg_size > dlt_user.filesize_max) {
251 dlt_user_file_reach_max = true;
252 dlt_vlog(LOG_ERR,
253- "%s: File size (%ld bytes) reached to defined maximum size (%d bytes)\n",
254- __func__, st.st_size, dlt_user.filesize_max);
255+ "%s: File size (%lld bytes) reached to defined maximum size (%d bytes)\n",
256+ __func__, (long long int)st.st_size, dlt_user.filesize_max);
257 dlt_mutex_unlock();
258 return DLT_RETURN_FILESZERR;
259 }
260@@ -5612,21 +5612,21 @@ DltReturnValue dlt_user_log_send_log_v2(DltContextData *log, const int mtype, Dl
261 return DLT_RETURN_ERROR;
262 }
263
264- dlt_vlog(LOG_DEBUG, "%s: Current file size=[%ld]\n", __func__,
265- st.st_size);
266+ dlt_vlog(LOG_DEBUG, "%s: Current file size=[%lld]\n", __func__,
267+ (long long int)st.st_size);
268 /* Check filesize */
269 /* Return error if the file size has reached to maximum */
270 unsigned int msg_size = 0;
271 if (st.st_size < 0 || st.st_size > UINT_MAX) {
272- dlt_vlog(LOG_ERR, "%s: File size (%ld bytes) is invalid or too large for unsigned int\n", __func__, st.st_size);
273+ dlt_vlog(LOG_ERR, "%s: File size (%lld bytes) is invalid or too large for unsigned int\n", __func__, (long long int)st.st_size);
274 return DLT_RETURN_FILESZERR;
275 }
276 msg_size = (unsigned int)st.st_size + (unsigned int) msg.headersizev2 + (unsigned int) log->size;
277 if (msg_size > dlt_user.filesize_max) {
278 dlt_user_file_reach_max = true;
279 dlt_vlog(LOG_ERR,
280- "%s: File size (%ld bytes) reached to defined maximum size (%d bytes)\n",
281- __func__, st.st_size, dlt_user.filesize_max);
282+ "%s: File size (%lld bytes) reached to defined maximum size (%d bytes)\n",
283+ __func__, (long long int)st.st_size, dlt_user.filesize_max);
284 return DLT_RETURN_FILESZERR;
285 }
286 else {
287diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c
288index 6ad354b..aa0aaaa 100644
289--- a/src/shared/dlt_common.c
290+++ b/src/shared/dlt_common.c
291@@ -1220,7 +1220,7 @@ DltReturnValue dlt_message_header_flags_v2(DltMessageV2 *msg, char *text, size_t
292 for (int i = 0; i<5; ++i){
293 tt = (tt << 8) | msg->headerextrav2.seconds[i];
294 }
295- snprintf(text + strlen(text), textlength - strlen(text), "%ld.%.9u ", tt, msg->headerextrav2.nanoseconds);
296+ snprintf(text + strlen(text), textlength - strlen(text), "%lld.%.9u ", (long long int)tt, msg->headerextrav2.nanoseconds);
297 }
298 else
299 snprintf(text + strlen(text), textlength - strlen(text), "---------- ");
300diff --git a/src/shared/dlt_multiple_files.c b/src/shared/dlt_multiple_files.c
301index c4019e5..65529ff 100644
302--- a/src/shared/dlt_multiple_files.c
303+++ b/src/shared/dlt_multiple_files.c
304@@ -257,7 +257,7 @@ ssize_t multiple_files_buffer_get_total_size(const MultipleFilesRingBuffer *file
305 if (((unsigned int)res < sizeof(filename)) && (res > 0)) {
306 errno = 0;
307 if (0 == stat(filename, &status))
308- size += status.st_size;
309+ size += (ssize_t)status.st_size;
310 else
311 fprintf(stderr, "file %s cannot be stat-ed, error=%s\n", filename, strerror(errno));
312 }
313diff --git a/src/tests/dlt-test-multi-process-client-v2.c b/src/tests/dlt-test-multi-process-client-v2.c
314index 2bb1158..ec99720 100644
315--- a/src/tests/dlt-test-multi-process-client-v2.c
316+++ b/src/tests/dlt-test-multi-process-client-v2.c
317@@ -299,10 +299,10 @@ void print_stats(s_statistics stats, s_parameters params)
318 printf(" Messages received : %d\n", stats.messages_received);
319 printf(" Broken messages received : %d\n", stats.broken_messages_received);
320 printf(" Bytes received : %d\n", stats.bytes_received);
321- printf(" Time running (seconds) : %ld\n", time(NULL) - stats.first_message_time);
322- printf(" Throughput (msgs/sec)/(B/sec) : %ld/%ld\n",
323- stats.messages_received / ((time(NULL) - stats.first_message_time) + 1),
324- (stats.bytes_received) / ((time(NULL) - stats.first_message_time) + 1));
325+ printf(" Time running (seconds) : %lld\n", (long long int)(time(NULL) - stats.first_message_time));
326+ printf(" Throughput (msgs/sec)/(B/sec) : %lld/%lld\n",
327+ (long long int)(stats.messages_received / ((time(NULL) - stats.first_message_time) + 1)),
328+ (long long int)((stats.bytes_received) / ((time(NULL) - stats.first_message_time) + 1)));
329
330 if (params.messages_left == 0) {
331 if (stats.broken_messages_received == 0)
332diff --git a/src/tests/dlt-test-multi-process-v2.c b/src/tests/dlt-test-multi-process-v2.c
333index 44a8622..1d3a54a 100644
334--- a/src/tests/dlt-test-multi-process-v2.c
335+++ b/src/tests/dlt-test-multi-process-v2.c
336@@ -393,7 +393,7 @@ void *do_logging(void *arg)
337
338 sleep_time = mksleep_time(data->params.delay, data->params.delay_fudge);
339 ts.tv_sec = sleep_time / 1000000000;
340- ts.tv_nsec = sleep_time % 1000000000;
341+ ts.tv_nsec = (long int)(sleep_time % 1000000000);
342 nanosleep(&ts, NULL);
343 }
344
345diff --git a/src/tests/dlt-test-multi-process.c b/src/tests/dlt-test-multi-process.c
346index 016c8b4..00fb11c 100644
347--- a/src/tests/dlt-test-multi-process.c
348+++ b/src/tests/dlt-test-multi-process.c
349@@ -370,7 +370,7 @@ void *do_logging(void *arg)
350
351 sleep_time = mksleep_time(data->params.delay, data->params.delay_fudge);
352 ts.tv_sec = sleep_time / 1000000000;
353- ts.tv_nsec = sleep_time % 1000000000;
354+ ts.tv_nsec = (long int)(sleep_time % 1000000000);
355 nanosleep(&ts, NULL);
356 }
357
358--
3592.34.1
360
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-compile-failure-related-to-gzlog.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-compile-failure-related-to-gzlog.patch
new file mode 100644
index 0000000000..f9692d9f4d
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-compile-failure-related-to-gzlog.patch
@@ -0,0 +1,69 @@
1From bee9bce043c72de1d27a4251333ace9fe66bcc74 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 12 Mar 2026 19:37:11 +0800
4Subject: [PATCH] Fix compile failure related to gzlog
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9* In commit [1], gzlog is changed from gzFile to gzFile*, this cause
10 failure:
11/dlt-daemon/src/offlinelogstorage/dlt_offline_logstorage.c:88:21: error: passing argument 1 of ‘gzclose’ from incompatible pointer type [-Werror=incompatible-pointer-types]
12 88 | gzclose(data->gzlog);
13 | ~~~~^~~~~~~
14 | |
15 | struct gzFile_s **
16compilation terminated due to -Wfatal-errors.
17
18so change gzlog back to gzFile, so that all the gzxxx function can work
19well.
20
21* Change to gzFile causes the following failure, since fileno need
22 FILE*, according to code "config->gzlog = gzdopen(config->fd, mode)",
23 seems we don't need to use fileno, just use config->fd is ok.
24/dlt-daemon/src/offlinelogstorage/dlt_offline_logstorage_behavior.c:1133:48: error: passing argument 1 of ‘fileno’ from incompatible pointer type [-Werror=incompatible-pointer-types]
25 1133 | if (fsync(fileno(config->gzlog)) != 0) {
26 | ~~~~~~^~~~~~~
27 | |
28 | gzFile {aka struct gzFile_s *}
29compilation terminated due to -Wfatal-errors.
30
31[1] https://github.com/COVESA/dlt-daemon/commit/543087ba98c103dc576edadeccf614c9dab1b9b3
32
33Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/826]
34
35Signed-off-by: Changqing Li <changqing.li@windriver.com>
36---
37 src/offlinelogstorage/dlt_offline_logstorage.h | 2 +-
38 src/offlinelogstorage/dlt_offline_logstorage_behavior.c | 2 +-
39 2 files changed, 2 insertions(+), 2 deletions(-)
40
41diff --git a/src/offlinelogstorage/dlt_offline_logstorage.h b/src/offlinelogstorage/dlt_offline_logstorage.h
42index fe38687..09ea5ce 100644
43--- a/src/offlinelogstorage/dlt_offline_logstorage.h
44+++ b/src/offlinelogstorage/dlt_offline_logstorage.h
45@@ -217,7 +217,7 @@ struct DltLogStorageFilterConfig
46 FILE *log; /* current open log file */
47 int fd; /* The file descriptor for the active log file */
48 #ifdef DLT_LOGSTORAGE_USE_GZIP
49- gzFile *gzlog; /* current open gz log file */
50+ gzFile gzlog; /* current open gz log file */
51 #endif
52 void *cache; /* log data cache */
53 unsigned int specific_size; /* cache size used for specific_size sync strategy */
54diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
55index f17fbb2..ff09c9e 100644
56--- a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
57+++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
58@@ -1130,7 +1130,7 @@ int dlt_logstorage_prepare_on_msg(DltLogStorageFilterConfig *config,
59 (config->sync == DLT_LOGSTORAGE_SYNC_UNSET)) {
60 #ifdef DLT_LOGSTORAGE_USE_GZIP
61 if (config->gzip_compression == DLT_LOGSTORAGE_GZIP_ON) {
62- if (fsync(fileno(config->gzlog)) != 0) {
63+ if (fsync(config->fd) != 0) {
64 if (errno != ENOSYS) {
65 dlt_vlog(LOG_ERR, "%s: failed to sync gzip log file\n", __func__);
66 }
67--
682.34.1
69
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-kinds-of-build-failure.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-kinds-of-build-failure.patch
new file mode 100644
index 0000000000..403d1089e2
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-kinds-of-build-failure.patch
@@ -0,0 +1,174 @@
1From 3d713358fe19ce02e7c580d26222ec2386c94bc9 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 12 Mar 2026 20:06:34 +0800
4Subject: [PATCH] Fix kinds of build failure
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Fix kinds of build failures caused by -Werror=sign-conversion,
10-Werror=cast-qual, -Werror=conversion etc.
11Eg:
12src/offlinelogstorage/dlt_offline_logstorage.h:129:49: error: unsigned conversion from ‘int’ to ‘unsigned int’ changes value from ‘-1’ to ‘4294967295’ [-Werror=sign-conversion]
13 129 | #define DLT_LOGSTORAGE_GZIP_ERROR -1 /* error case */
14 | ^
15/dlt-daemon/src/offlinelogstorage/dlt_offline_logstorage.c:1303:36: note: in expansion of macro ‘DLT_LOGSTORAGE_GZIP_ERROR’
16 1303 | config->gzip_compression = DLT_LOGSTORAGE_GZIP_ERROR;
17
18 | ^~~~~~~~~~~~~~~~~~~~~~~~~
19
20src/offlinelogstorage/dlt_offline_logstorage_behavior.c:851:16: error: conversion from ‘z_size_t’ {aka ‘long unsigned int’} to ‘int’ may change value [-Werror=conversion]
21 851 | return gzfwrite(ptr, size, nmemb, config->gzlog);
22 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23
24src/console/dlt-control-common.c:922:25: error: cast discards 'const' qualifier from pointer target type [-Werror=cast-qual]
25 922 | json_object_to_file((char*)filename, json_filter_obj);
26 |
27
28Use explicit type conversion to make the build can pass
29
30Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/826]
31
32Signed-off-by: Changqing Li <changqing.li@windriver.com>
33---
34 src/console/dlt-control-common.c | 2 +-
35 src/daemon/dlt-daemon.c | 4 ++--
36 src/daemon/udp_connection/dlt_daemon_udp_socket.c | 10 +++++-----
37 src/examples/dlt-example-multicast-clientmsg-view.c | 8 ++++----
38 src/offlinelogstorage/dlt_offline_logstorage.h | 2 +-
39 .../dlt_offline_logstorage_behavior.c | 4 ++--
40 6 files changed, 15 insertions(+), 15 deletions(-)
41
42diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c
43index 2aeea280..4f9e95b4 100644
44--- a/src/console/dlt-control-common.c
45+++ b/src/console/dlt-control-common.c
46@@ -919,7 +919,7 @@ DltReturnValue dlt_json_filter_save(DltFilter *filter, const char *filename, int
47 }
48
49 printf("Saving current filter into '%s'\n", filename);
50- json_object_to_file((char*)filename, json_filter_obj);
51+ json_object_to_file(filename, json_filter_obj);
52
53 return DLT_RETURN_OK;
54 }
55diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
56index 97af1cd9..94024eb4 100644
57--- a/src/daemon/dlt-daemon.c
58+++ b/src/daemon/dlt-daemon.c
59@@ -867,7 +867,7 @@ int option_file_parser(DltDaemonLocal *daemon_local)
60
61 if ((longval == MULTICAST_CONNECTION_DISABLED)
62 || (longval == MULTICAST_CONNECTION_ENABLED)) {
63- daemon_local->UDPConnectionSetup = longval;
64+ daemon_local->UDPConnectionSetup = (int)longval;
65 printf("Option: %s=%s\n", token, value);
66 }
67 else {
68@@ -884,7 +884,7 @@ int option_file_parser(DltDaemonLocal *daemon_local)
69 }
70 else if (strcmp(token, "UDPMulticastIPPort") == 0)
71 {
72- daemon_local->UDPMulticastIPPort = strtol(value, NULL, 10);
73+ daemon_local->UDPMulticastIPPort = (int)strtol(value, NULL, 10);
74 }
75 #endif
76 else if (strcmp(token, "BindAddress") == 0)
77diff --git a/src/daemon/udp_connection/dlt_daemon_udp_socket.c b/src/daemon/udp_connection/dlt_daemon_udp_socket.c
78index 4c40cda8..b3408773 100644
79--- a/src/daemon/udp_connection/dlt_daemon_udp_socket.c
80+++ b/src/daemon/udp_connection/dlt_daemon_udp_socket.c
81@@ -66,7 +66,7 @@ void dlt_daemon_udp_setmulticast_addr(DltDaemonLocal *daemon_local)
82 struct sockaddr_in clientaddr;
83 clientaddr.sin_family = AF_INET;
84 inet_pton(AF_INET, daemon_local->UDPMulticastIPAddress, &clientaddr.sin_addr);
85- clientaddr.sin_port = htons(daemon_local->UDPMulticastIPPort);
86+ clientaddr.sin_port = htons((uint16_t)daemon_local->UDPMulticastIPPort);
87 memcpy(&g_udpmulticast_addr.clientaddr, &clientaddr, sizeof(struct sockaddr_in));
88 g_udpmulticast_addr.clientaddr_size = sizeof(g_udpmulticast_addr.clientaddr);
89 g_udpmulticast_addr.isvalidflag = ADDRESS_VALID;
90@@ -224,17 +224,17 @@ void dlt_daemon_udp_clientmsg_send(DltDaemonClientSockInfo *clientinfo,
91
92 if ((clientinfo->isvalidflag == ADDRESS_VALID) &&
93 (size1 > 0) && (size2 > 0)) {
94- void *data = (void *)calloc(size1 + size2, sizeof(char));
95+ void *data = (void *)calloc((size_t)(size1 + size2), sizeof(char));
96
97 if (data == NULL) {
98 dlt_vlog(LOG_ERR, "%s: calloc failure\n", __func__);
99 return;
100 }
101
102- memcpy(data, data1, size1);
103- memcpy(data + size1, data2, size2);
104+ memcpy(data, data1, (size_t)size1);
105+ memcpy((int*)data + size1, data2, (size_t)size2);
106
107- if (sendto(g_udp_sock_fd, data, size1 + size2, 0, (struct sockaddr *)&clientinfo->clientaddr,
108+ if (sendto(g_udp_sock_fd, data, (size_t)(size1 + size2), 0, (struct sockaddr *)&clientinfo->clientaddr,
109 clientinfo->clientaddr_size) < 0)
110 dlt_vlog(LOG_ERR, "%s: Send UDP Packet Data failed\n", __func__);
111
112diff --git a/src/examples/dlt-example-multicast-clientmsg-view.c b/src/examples/dlt-example-multicast-clientmsg-view.c
113index c00537e5..f8920453 100644
114--- a/src/examples/dlt-example-multicast-clientmsg-view.c
115+++ b/src/examples/dlt-example-multicast-clientmsg-view.c
116@@ -74,9 +74,9 @@ int dlt_receiver_receive_socket_udp(struct clientinfostruct *clientinfo, DltRece
117 /* wait for data from socket */
118 unsigned int addrlen = sizeof(clientinfo->addr);
119
120- if ((receiver->bytesRcvd = recvfrom(clientinfo->fd,
121+ if ((receiver->bytesRcvd = (int32_t)recvfrom(clientinfo->fd,
122 receiver->buf + receiver->lastBytesRcvd,
123- receiver->buffersize - receiver->lastBytesRcvd,
124+ (size_t)(receiver->buffersize - receiver->lastBytesRcvd),
125 0,
126 (struct sockaddr *)&(clientinfo->addr), &addrlen))
127 <= 0) {
128@@ -177,11 +177,11 @@ int main()
129 dlt_receiver_receive_socket_udp(&clientinfo, &(clientinfo.receiver));
130
131 while (dlt_message_read(&msg, (unsigned char *)(clientinfo.receiver.buf),
132- clientinfo.receiver.bytesRcvd, 0, 0) == DLT_MESSAGE_ERROR_OK) {
133+ (unsigned int)clientinfo.receiver.bytesRcvd, 0, 0) == DLT_MESSAGE_ERROR_OK) {
134 dlt_receive_message_callback_udp(&msg);
135
136 if (dlt_receiver_remove(&(clientinfo.receiver),
137- msg.headersize + msg.datasize - sizeof(DltStorageHeader))
138+ msg.headersize + msg.datasize - ((int32_t)(sizeof(DltStorageHeader))))
139 == DLT_RETURN_ERROR) {
140 /* Return value ignored */
141 dlt_message_free(&msg, 0);
142diff --git a/src/offlinelogstorage/dlt_offline_logstorage.h b/src/offlinelogstorage/dlt_offline_logstorage.h
143index 09ea5ce4..cfb70f33 100644
144--- a/src/offlinelogstorage/dlt_offline_logstorage.h
145+++ b/src/offlinelogstorage/dlt_offline_logstorage.h
146@@ -192,7 +192,7 @@ struct DltLogStorageFilterConfig
147 int overwrite; /* Overwrite strategy */
148 int skip; /* Flag to skip file logging if DISCARD_NEW */
149 char *ecuid; /* ECU identifier */
150- unsigned int gzip_compression; /* Toggle if log files should be gzip compressed */
151+ int gzip_compression; /* Toggle if log files should be gzip compressed */
152 /* callback function for filter configurations */
153 int (*dlt_logstorage_prepare)(DltLogStorageFilterConfig *config,
154 DltLogStorageUserConfig *file_config,
155diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
156index ff09c9eb..ae8f4442 100644
157--- a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
158+++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
159@@ -848,10 +848,10 @@ DLT_STATIC int dlt_logstorage_write_to_log(void *ptr, size_t size, size_t nmemb,
160 {
161 #ifdef DLT_LOGSTORAGE_USE_GZIP
162 if (config->gzip_compression == DLT_LOGSTORAGE_GZIP_ON) {
163- return gzfwrite(ptr, size, nmemb, config->gzlog);
164+ return (int)gzfwrite(ptr, size, nmemb, config->gzlog);
165 }
166 else {
167- return fwrite(ptr, size, nmemb, config->log);
168+ return (int)fwrite(ptr, size, nmemb, config->log);
169 }
170 #else
171 return (int)fwrite(ptr, size, nmemb, config->log);
172--
1732.34.1
174
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch
new file mode 100644
index 0000000000..d19a23cd9c
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-fix-build-failure-when-systemd-is-enabled.patch
@@ -0,0 +1,423 @@
1From 28322f951bb8510ddb4cf767426a67c81ce826ab Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Tue, 17 Mar 2026 13:04:11 +0800
4Subject: [PATCH] fix build failure when systemd is enabled
5
6Fix build failures when -DWITH_SYSTEMD=ON, -DWITH_SYSTEMD_WATCHDOG=ON,
7-DWITH_SYSTEMD_JOURNAL=ON:
8Eg:
9src/system/dlt-system-syslog.c:91:39: error: conversion from 'int' to '__uint16_t' {aka 'short unsigned int'} may change value [-Werror=conversion]
10 91 | syslog_addr.sin6_port = htons(opts.Port);
11 | ~~~~^~~~~
12
13src/system/dlt-system-logfile.c:74:21: error: conversion from 'size_t' {aka 'long unsigned int'} to 'int' may change value [-Werror=conversion]
14 74 | bytes = fread(buffer, 1, sizeof(buffer) - 1, pFile);
15 | ^~~~~
16
17src/daemon/dlt-daemon.c:5513:14: error: unused variable 'curr_time' [-Werror=unused-variable]
18 5513 | uint32_t curr_time = 0U;
19 | ^~~~~~~~~
20
21src/system/dlt-system-syslog.c:120:22: error: conversion from 'ssize_t' {aka 'long int'} to 'int' may change value [-Werror=conversion]
22 120 | int bytes_read = recvfrom(sock, recv_data, RECV_BUF_SZ, 0,
23 | ^~~~~~~~
24
25src/system/dlt-system-logfile.c:76:23: error: comparison of unsigned expression in '>= 0' is always true [-Werror=type-limits]
26 76 | if (bytes >= 0)
27 | ^~
28
29 src/system/dlt-system-filetransfer.c:727:56: error: '__builtin___snprintf_chk' output may be truncated before the last format cha racter [-Werror=format-truncation=]
30 10 727 | snprintf(tosend, length, "%s/%s", opts->Directory[j], ie->name);
31
32src/system/dlt-system-filetransfer.c:153: error: declaration of 'len' shadows a previous local [-Werror=shadow]
33
34Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/828]
35
36Signed-off-by: Changqing Li <changqing.li@windriver.com>
37---
38 src/daemon/dlt-daemon.c | 8 +----
39 src/daemon/dlt_daemon_client.c | 2 +-
40 src/system/dlt-system-filetransfer.c | 43 +++++++++++++-----------
41 src/system/dlt-system-journal.c | 2 +-
42 src/system/dlt-system-logfile.c | 4 +--
43 src/system/dlt-system-process-handling.c | 2 +-
44 src/system/dlt-system-processes.c | 2 +-
45 src/system/dlt-system-syslog.c | 6 ++--
46 src/system/dlt-system-watchdog.c | 8 ++---
47 systemd/3rdparty/sd-daemon.c | 5 +--
48 10 files changed, 40 insertions(+), 42 deletions(-)
49
50diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
51index ef42f89..8c318a4 100644
52--- a/src/daemon/dlt-daemon.c
53+++ b/src/daemon/dlt-daemon.c
54@@ -1620,7 +1620,7 @@ int main(int argc, char *argv[])
55 watchdogTimeoutSeconds = 30;
56 }
57
58- daemon.watchdog_trigger_interval = watchdogTimeoutSeconds;
59+ daemon.watchdog_trigger_interval = (unsigned int)watchdogTimeoutSeconds;
60 daemon.watchdog_last_trigger_time = 0U;
61 create_timer_fd(&daemon_local,
62 watchdogTimeoutSeconds,
63@@ -5509,9 +5509,6 @@ int dlt_daemon_send_ringbuffer_to_client(DltDaemon *daemon, DltDaemonLocal *daem
64 int ret;
65 static uint8_t data[DLT_DAEMON_RCVBUFSIZE];
66 int length;
67-#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
68- uint32_t curr_time = 0U;
69-#endif
70
71 PRINT_FUNCTION_VERBOSE(verbose);
72
73@@ -5554,9 +5551,6 @@ int dlt_daemon_send_ringbuffer_to_client_v2(DltDaemon *daemon, DltDaemonLocal *d
74 int ret;
75 static uint8_t data[DLT_DAEMON_RCVBUFSIZE];
76 int length;
77-#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
78- uint32_t curr_time = 0U;
79-#endif
80
81 PRINT_FUNCTION_VERBOSE(verbose);
82
83diff --git a/src/daemon/dlt_daemon_client.c b/src/daemon/dlt_daemon_client.c
84index 20a512b..681bf1e 100644
85--- a/src/daemon/dlt_daemon_client.c
86+++ b/src/daemon/dlt_daemon_client.c
87@@ -4690,7 +4690,7 @@ int dlt_daemon_process_systemd_timer(DltDaemon *daemon,
88
89 if ((daemon_local == NULL) || (daemon == NULL) || (receiver == NULL)) {
90 dlt_vlog(LOG_ERR, "%s: invalid parameters", __func__);
91- return res;
92+ return (int)res;
93 }
94
95 res = read(receiver->fd, &expir, sizeof(expir));
96diff --git a/src/system/dlt-system-filetransfer.c b/src/system/dlt-system-filetransfer.c
97index c082f22..6024a3e 100644
98--- a/src/system/dlt-system-filetransfer.c
99+++ b/src/system/dlt-system-filetransfer.c
100@@ -105,14 +105,14 @@ char *unique_name(char *src)
101 DLT_STRING("dlt-system-filetransfer, creating unique temporary file name."));
102 time_t t = time(NULL);
103 int ok;
104- uint32_t l = getFileSerialNumber(src, &ok) ^ t;
105+ uint32_t l = (uint32_t)(getFileSerialNumber(src, &ok) ^ t);
106
107 if (!ok)
108 return (char *)NULL;
109
110 char *basename_f = basename(src);
111 /* Length of ULONG_MAX + 1 */
112- int len = 11 + strlen(basename_f);
113+ size_t len = 11 + strlen(basename_f);
114
115 if (len > NAME_MAX) {
116 DLT_LOG(dltsystem, DLT_LOG_WARN,
117@@ -155,7 +155,7 @@ void send_dumped_file(FiletransferOptions const *opts, char *dst_tosend)
118 while ((total - used) < (total / 2)) {
119 struct timespec t;
120 t.tv_sec = 0;
121- t.tv_nsec = 1000000ul * opts->TimeoutBetweenLogs;
122+ t.tv_nsec = (long int)(1000000ul * (unsigned long)opts->TimeoutBetweenLogs);
123 nanosleep(&t, NULL);
124 dlt_user_log_resend_buffer();
125 dlt_user_check_buffer(&total, &used);
126@@ -220,7 +220,7 @@ int compress_file_to(char *src, char *dst, int level)
127 MALLOC_ASSERT(buf);
128
129 while (!feof(src_file)) {
130- int read = fread(buf, 1, Z_CHUNK_SZ, src_file);
131+ size_t read = fread(buf, 1, Z_CHUNK_SZ, src_file);
132
133 if (ferror(src_file)) {
134 free(buf);
135@@ -230,7 +230,7 @@ int compress_file_to(char *src, char *dst, int level)
136 return -1;
137 }
138
139- gzwrite(dst_file, buf, read);
140+ gzwrite(dst_file, buf, (unsigned int)read);
141 }
142
143 if (remove(src) < 0)
144@@ -290,7 +290,7 @@ int send_one(char *src, FiletransferOptions const *opts, int which)
145 char *dst_tocompress;/*file which is going to be compressed, the compressed one is named dst_tosend */
146
147
148- int len = strlen(fdir) + strlen(SUBDIR_COMPRESS) + strlen(rn) + 3;/*the filename in .tocompress +2 for 2*"/", +1 for \0 */
149+ size_t len = strlen(fdir) + strlen(SUBDIR_COMPRESS) + strlen(rn) + 3;/*the filename in .tocompress +2 for 2*"/", +1 for \0 */
150 dst_tocompress = malloc(len);
151 MALLOC_ASSERT(dst_tocompress);
152
153@@ -328,7 +328,7 @@ int send_one(char *src, FiletransferOptions const *opts, int which)
154 /*move it directly into "tosend" */
155 DLT_LOG(dltsystem, DLT_LOG_DEBUG,
156 DLT_STRING("dlt-system-filetransfer, Moving file to tmp directory."));
157- int len = strlen(fdir) + strlen(SUBDIR_TOSEND) + strlen(rn) + 3;
158+ size_t len = strlen(fdir) + strlen(SUBDIR_TOSEND) + strlen(rn) + 3;
159 dst_tosend = malloc(len);/*the resulting filename in .tosend +2 for 2*"/", +1 for \0 */
160
161 snprintf(dst_tosend, len, "%s/%s/%s", fdir, SUBDIR_TOSEND, rn);
162@@ -379,7 +379,7 @@ int flush_dir_send(FiletransferOptions const *opts, const char *compress_dir, co
163 DLT_LOG(dltsystem, DLT_LOG_DEBUG,
164 DLT_STRING("dlt-system-filetransfer, old compressed file found in send directory:"),
165 DLT_STRING(dp->d_name));
166- int len = strlen(send_dir) + strlen(dp->d_name) + 2;
167+ size_t len = strlen(send_dir) + strlen(dp->d_name) + 2;
168 fn = malloc(len);
169 MALLOC_ASSERT(fn);
170 snprintf(fn, len, "%s/%s", send_dir, dp->d_name);
171@@ -394,10 +394,10 @@ int flush_dir_send(FiletransferOptions const *opts, const char *compress_dir, co
172 strncpy(tmp, dp->d_name, strlen(dp->d_name) - strlen(COMPRESS_EXTENSION));
173 tmp[strlen(dp->d_name) - strlen(COMPRESS_EXTENSION)] = '\0';
174
175- int len = strlen(tmp) + strlen(compress_dir) + 1 + 1;/*2 sizes + 1*"/" + \0 */
176- char *path_uncompressed = malloc(len);
177+ size_t length = strlen(tmp) + strlen(compress_dir) + 1 + 1;/*2 sizes + 1*"/" + \0 */
178+ char *path_uncompressed = malloc(length);
179 MALLOC_ASSERT(path_uncompressed);
180- snprintf(path_uncompressed, len, "%s/%s", compress_dir, tmp);
181+ snprintf(path_uncompressed, length, "%s/%s", compress_dir, tmp);
182
183 struct stat sb;
184
185@@ -475,7 +475,7 @@ int flush_dir_compress(FiletransferOptions const *opts, int which, const char *c
186
187
188 /*compress file into to_send dir */
189- int len = strlen(compress_dir) + strlen(dp->d_name) + 2;
190+ size_t len = strlen(compress_dir) + strlen(dp->d_name) + 2;
191 char *cd_filename = malloc(len);
192 MALLOC_ASSERT(cd_filename);
193 snprintf(cd_filename, len, "%s/%s", compress_dir, dp->d_name);
194@@ -526,7 +526,7 @@ int flush_dir_original(FiletransferOptions const *opts, int which)
195
196 DLT_LOG(dltsystem, DLT_LOG_DEBUG,
197 DLT_STRING("dlt-system-filetransfer, old file found in directory."));
198- int len = strlen(sdir) + strlen(dp->d_name) + 2;
199+ size_t len = strlen(sdir) + strlen(dp->d_name) + 2;
200 char *fn = malloc(len);
201 MALLOC_ASSERT(fn);
202 snprintf(fn, len, "%s/%s", sdir, dp->d_name);
203@@ -564,7 +564,7 @@ int flush_dir(FiletransferOptions const *opts, int which)
204
205 char *compress_dir;
206 char *send_dir;
207- int len = strlen(opts->Directory[which]) + strlen(SUBDIR_COMPRESS) + 2;
208+ size_t len = strlen(opts->Directory[which]) + strlen(SUBDIR_COMPRESS) + 2;
209 compress_dir = malloc (len);
210 MALLOC_ASSERT(compress_dir);
211 snprintf(compress_dir, len, "%s/%s", opts->Directory[which], SUBDIR_COMPRESS);
212@@ -625,7 +625,7 @@ int init_filetransfer_dirs(DltSystemConfiguration *config)
213 /*create subdirectories for processing the files */
214
215 char *subdirpath;
216- int len = strlen(opts->Directory[i]) + strlen(SUBDIR_COMPRESS) + 2;
217+ size_t len = strlen(opts->Directory[i]) + strlen(SUBDIR_COMPRESS) + 2;
218 subdirpath = malloc (len);
219 MALLOC_ASSERT(subdirpath);
220 snprintf(subdirpath, len, "%s/%s", opts->Directory[i], SUBDIR_COMPRESS);
221@@ -699,7 +699,7 @@ int process_files(FiletransferOptions const *opts)
222
223 unsigned int i = 0;
224
225- while (i < (len - INOTIFY_SZ)) {
226+ while (i < ((long unsigned int)len - INOTIFY_SZ)) {
227 struct inotify_event *ie = (struct inotify_event *)&buf[i];
228
229 if (ie->len > 0) {
230@@ -712,26 +712,29 @@ int process_files(FiletransferOptions const *opts)
231 DLT_LOG_DEBUG,
232 DLT_STRING("dlt-system-filetransfer, found new file."),
233 DLT_STRING(ie->name));
234- int length = strlen(opts->Directory[j]) + ie->len + 1;
235+ size_t length = strlen(opts->Directory[j]) + strlen(ie->name) + 2;
236
237 if (length > PATH_MAX) {
238 DLT_LOG(filetransferContext,
239 DLT_LOG_ERROR,
240 DLT_STRING(
241 "dlt-system-filetransfer: Very long path for file transfer. Cancelling transfer! Length is: "),
242- DLT_INT(length));
243+ DLT_INT((int)length));
244 return -1;
245 }
246
247 char *tosend = malloc(length);
248+#pragma GCC diagnostic push
249+#pragma GCC diagnostic ignored "-Wformat-truncation="
250 snprintf(tosend, length, "%s/%s", opts->Directory[j], ie->name);
251+#pragma GCC diagnostic pop
252 send_one(tosend, opts, j);
253 free(tosend);
254 }
255 }
256 }
257
258- i += INOTIFY_SZ + ie->len;
259+ i += (unsigned int)INOTIFY_SZ + ie->len;
260 }
261
262 #endif
263@@ -741,4 +744,4 @@ int process_files(FiletransferOptions const *opts)
264 void filetransfer_fd_handler(DltSystemConfiguration *config)
265 {
266 process_files(&(config->Filetransfer));
267-}
268\ No newline at end of file
269+}
270diff --git a/src/system/dlt-system-journal.c b/src/system/dlt-system-journal.c
271index 366555b..9a55c3f 100644
272--- a/src/system/dlt-system-journal.c
273+++ b/src/system/dlt-system-journal.c
274@@ -393,7 +393,7 @@ void register_journal_fd(sd_journal **j, struct pollfd *pollfd, int i, DltSyste
275 DLT_STRING(strerror(pollfd[i].fd)));
276 j_tmp = NULL;
277 }
278- pollfd[i].events = sd_journal_get_events(j_tmp);
279+ pollfd[i].events = (short)sd_journal_get_events(j_tmp);
280 if(pollfd[i].events < 0) {
281 DLT_LOG(dltsystem, DLT_LOG_ERROR, DLT_STRING("Error while getting journal events: "),
282 DLT_STRING(strerror(pollfd[i].events)));
283diff --git a/src/system/dlt-system-logfile.c b/src/system/dlt-system-logfile.c
284index 941a3be..d31441c 100644
285--- a/src/system/dlt-system-logfile.c
286+++ b/src/system/dlt-system-logfile.c
287@@ -64,7 +64,7 @@ void send_file(LogFileOptions const *fileopt, int n)
288 FILE *pFile;
289 DltContext context = logfileContext[n];
290 char buffer[1024];
291- int bytes;
292+ size_t bytes;
293 int seq = 1;
294
295 pFile = fopen((*fileopt).Filename[n], "r");
296@@ -73,7 +73,7 @@ void send_file(LogFileOptions const *fileopt, int n)
297 while (!feof(pFile)) {
298 bytes = fread(buffer, 1, sizeof(buffer) - 1, pFile);
299
300- if (bytes >= 0)
301+ if (bytes == (sizeof(buffer) - 1))
302 buffer[bytes] = 0;
303 else
304 buffer[0] = 0;
305diff --git a/src/system/dlt-system-process-handling.c b/src/system/dlt-system-process-handling.c
306index 3e092d4..708e9e3 100644
307--- a/src/system/dlt-system-process-handling.c
308+++ b/src/system/dlt-system-process-handling.c
309@@ -201,7 +201,7 @@ int register_timer_fd(struct pollfd *pollfd, int fdcnt)
310 void timer_fd_handler(int fd, DltSystemConfiguration *config)
311 {
312 uint64_t timersElapsed = 0ULL;
313- int r = read(fd, &timersElapsed, 8U); // only needed to reset fd event
314+ int r = (int)read(fd, &timersElapsed, 8U); // only needed to reset fd event
315 if (r < 0)
316 DLT_LOG(dltsystem, DLT_LOG_ERROR, DLT_STRING("Error while reading timer fd: "),
317 DLT_STRING(strerror(r)));
318diff --git a/src/system/dlt-system-processes.c b/src/system/dlt-system-processes.c
319index c35596c..b17b8ee 100644
320--- a/src/system/dlt-system-processes.c
321+++ b/src/system/dlt-system-processes.c
322@@ -72,7 +72,7 @@ void send_process(LogProcessOptions const *popts, int n)
323 struct dirent *dp;
324 char filename[PATH_MAX];
325 char buffer[1024];
326- int bytes;
327+ size_t bytes;
328 int found = 0;
329
330 /* go through all process files in directory */
331diff --git a/src/system/dlt-system-syslog.c b/src/system/dlt-system-syslog.c
332index 59e9d3f..d6b1b8a 100644
333--- a/src/system/dlt-system-syslog.c
334+++ b/src/system/dlt-system-syslog.c
335@@ -88,7 +88,7 @@ int init_socket(SyslogOptions opts)
336 #ifdef DLT_USE_IPv6
337 syslog_addr.sin6_family = AF_INET6;
338 syslog_addr.sin6_addr = in6addr_any;
339- syslog_addr.sin6_port = htons(opts.Port);
340+ syslog_addr.sin6_port = htons((uint16_t)opts.Port);
341 #else
342 syslog_addr.sin_family = AF_INET;
343 syslog_addr.sin_addr.s_addr = INADDR_ANY;
344@@ -117,7 +117,7 @@ int read_socket(int sock)
345 struct sockaddr_in client_addr;
346 socklen_t addr_len = sizeof(struct sockaddr_in);
347
348- int bytes_read = recvfrom(sock, recv_data, RECV_BUF_SZ, 0,
349+ int bytes_read = (int)recvfrom(sock, recv_data, RECV_BUF_SZ, 0,
350 (struct sockaddr *)&client_addr, &addr_len);
351
352 if (bytes_read == -1) {
353@@ -157,4 +157,4 @@ int register_syslog_fd(struct pollfd *pollfd, int i, DltSystemConfiguration *con
354 void syslog_fd_handler(int syslogSock)
355 {
356 read_socket(syslogSock);
357-}
358\ No newline at end of file
359+}
360diff --git a/src/system/dlt-system-watchdog.c b/src/system/dlt-system-watchdog.c
361index 7ed1604..6334214 100644
362--- a/src/system/dlt-system-watchdog.c
363+++ b/src/system/dlt-system-watchdog.c
364@@ -56,7 +56,7 @@ int calculate_period(struct itimerspec *itval)
365 }
366
367 DLT_LOG(watchdogContext, DLT_LOG_DEBUG, DLT_STRING("watchdogusec: "), DLT_STRING(watchdogUSec));
368- watchdogTimeoutSeconds = atoi(watchdogUSec);
369+ watchdogTimeoutSeconds = (unsigned int)atoi(watchdogUSec);
370
371 if (watchdogTimeoutSeconds <= 0) {
372 snprintf(str, 512, "systemd watchdog timeout incorrect: %u\n", watchdogTimeoutSeconds);
373@@ -78,9 +78,9 @@ int calculate_period(struct itimerspec *itval)
374 sec = notifiyPeriodNSec / 1000000;
375 ns = (notifiyPeriodNSec - (sec * 1000000)) * 1000;
376 itval->it_interval.tv_sec = sec;
377- itval->it_interval.tv_nsec = ns;
378+ itval->it_interval.tv_nsec = (long int)ns;
379 itval->it_value.tv_sec = sec;
380- itval->it_value.tv_nsec = ns;
381+ itval->it_value.tv_nsec = (long int)ns;
382
383 return 0;
384 }
385@@ -114,7 +114,7 @@ void watchdog_fd_handler(int fd)
386 #endif
387 {
388 uint64_t timersElapsed = 0ULL;
389- int r = read(fd, &timersElapsed, 8U); // only needed to reset fd event
390+ int r = (int)read(fd, &timersElapsed, 8U); // only needed to reset fd event
391 if(r < 0)
392 DLT_LOG(watchdogContext, DLT_LOG_ERROR, DLT_STRING("Could not reset systemd watchdog. Exit with: "),
393 DLT_STRING(strerror(r)));
394diff --git a/systemd/3rdparty/sd-daemon.c b/systemd/3rdparty/sd-daemon.c
395index de3f985..9fde8cc 100644
396--- a/systemd/3rdparty/sd-daemon.c
397+++ b/systemd/3rdparty/sd-daemon.c
398@@ -46,6 +46,7 @@
399 #include <stdio.h>
400 #include <stddef.h>
401 #include <limits.h>
402+#include <stdint.h>
403
404 #if defined(__linux__)
405 #include <mqueue.h>
406@@ -456,12 +457,12 @@ _sd_export_ int sd_notify(int unset_environment, const char *state) {
407 sockaddr.un.sun_path[0] = 0;
408
409 memset(&iovec, 0, sizeof(iovec));
410- iovec.iov_base = (char*) state;
411+ iovec.iov_base = (void *)(uintptr_t)state;
412 iovec.iov_len = strlen(state);
413
414 memset(&msghdr, 0, sizeof(msghdr));
415 msghdr.msg_name = &sockaddr;
416- msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e);
417+ msghdr.msg_namelen = (socklen_t)(offsetof(struct sockaddr_un, sun_path) + strlen(e));
418
419 if (msghdr.msg_namelen > sizeof(struct sockaddr_un))
420 msghdr.msg_namelen = sizeof(struct sockaddr_un);
421--
4222.34.1
423
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0003-allow-build-with-cmake-4.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0003-allow-build-with-cmake-4.patch
deleted file mode 100644
index ac5fec5684..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0003-allow-build-with-cmake-4.patch
+++ /dev/null
@@ -1,99 +0,0 @@
1From ae23f2cccc169874d89903cad24bf36e19bef659 Mon Sep 17 00:00:00 2001
2From: Alper Ak <alperyasinak1@gmail.com>
3Date: Wed, 9 Jul 2025 18:18:33 +0300
4Subject: [PATCH] cmake: Set minimum required version to 3.5 for CMake 4+
5 compatibility
6
7Fix:
8
9| CMake Error at CMakeLists.txt:17 (cmake_minimum_required):
10| Compatibility with CMake < 3.5 has been removed from CMake.
11|
12| Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
13| to tell CMake that the project requires at least <min> but has been updated
14| to work with policies introduced by <max> or earlier.
15|
16| Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.
17|
18|
19| -- Configuring incomplete, errors occurred!
20
21Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/755]
22
23Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
24---
25 CMakeLists.txt | 2 +-
26 examples/example1/CMakeLists.txt | 2 +-
27 examples/example2/CMakeLists.txt | 2 +-
28 examples/example3/CMakeLists.txt | 2 +-
29 examples/example4/CMakeLists.txt | 2 +-
30 5 files changed, 5 insertions(+), 5 deletions(-)
31
32diff --git a/CMakeLists.txt b/CMakeLists.txt
33index 94185b8..2a0f619 100644
34--- a/CMakeLists.txt
35+++ b/CMakeLists.txt
36@@ -14,7 +14,7 @@
37 #######
38
39 # Set minimum Cmake version and setup policy behavior
40-cmake_minimum_required(VERSION 3.3)
41+cmake_minimum_required(VERSION 3.5)
42
43 if(${CMAKE_VERSION} VERSION_GREATER "3.20" OR ${CMAKE_VERSION} VERSION_EQUAL "3.20")
44 cmake_policy(SET CMP0115 OLD)
45diff --git a/examples/example1/CMakeLists.txt b/examples/example1/CMakeLists.txt
46index 60644a1..44cd053 100644
47--- a/examples/example1/CMakeLists.txt
48+++ b/examples/example1/CMakeLists.txt
49@@ -17,7 +17,7 @@
50 # DLT example implementation
51 #
52
53-cmake_minimum_required( VERSION 2.6 )
54+cmake_minimum_required( VERSION 3.5 )
55 project( automotive-dlt-example1 )
56
57 #
58diff --git a/examples/example2/CMakeLists.txt b/examples/example2/CMakeLists.txt
59index 66a4f24..a8efbcf 100644
60--- a/examples/example2/CMakeLists.txt
61+++ b/examples/example2/CMakeLists.txt
62@@ -17,7 +17,7 @@
63 # DLT example implementation
64 #
65
66-cmake_minimum_required( VERSION 2.6 )
67+cmake_minimum_required( VERSION 3.5 )
68 project( automotive-dlt-example2 )
69
70 #
71diff --git a/examples/example3/CMakeLists.txt b/examples/example3/CMakeLists.txt
72index 45b7467..4d4958d 100644
73--- a/examples/example3/CMakeLists.txt
74+++ b/examples/example3/CMakeLists.txt
75@@ -17,7 +17,7 @@
76 # DLT example implementation
77 #
78
79-cmake_minimum_required( VERSION 2.6 )
80+cmake_minimum_required( VERSION 3.5 )
81 project( automotive-dlt-example3 )
82
83 #
84diff --git a/examples/example4/CMakeLists.txt b/examples/example4/CMakeLists.txt
85index 53a4fad..161c333 100644
86--- a/examples/example4/CMakeLists.txt
87+++ b/examples/example4/CMakeLists.txt
88@@ -17,7 +17,7 @@
89 # DLT example implementation
90 #
91
92-cmake_minimum_required( VERSION 2.6 )
93+cmake_minimum_required( VERSION 3.5 )
94 project( automotive-dlt-example4 )
95
96 #
97--
982.43.0
99
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch
deleted file mode 100644
index 3699b8c83a..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch
+++ /dev/null
@@ -1,80 +0,0 @@
1Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/544]
2
3From 8121a979026d5fcb05bd4e5d3a0647f321b56106 Mon Sep 17 00:00:00 2001
4From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
5Date: Thu, 28 Sep 2023 12:54:23 +0200
6Subject: [PATCH] Add common dlt_cdh_cpuinfo.c to unblock build on non amd64
7 and i386 arcs
8
9---
10 src/core_dump_handler/dlt_cdh.h | 2 ++
11 src/core_dump_handler/dlt_cdh_cpuinfo.c | 33 +++++++++++++++++++++++++
12 src/core_dump_handler/dlt_cdh_crashid.c | 2 +-
13 3 files changed, 36 insertions(+), 1 deletion(-)
14 create mode 100644 src/core_dump_handler/dlt_cdh_cpuinfo.c
15
16diff --git a/src/core_dump_handler/dlt_cdh.h b/src/core_dump_handler/dlt_cdh.h
17index d572ecf3..8608c6c4 100644
18--- a/src/core_dump_handler/dlt_cdh.h
19+++ b/src/core_dump_handler/dlt_cdh.h
20@@ -55,6 +55,8 @@ typedef struct
21 uint64_t pc;
22 uint64_t ip;
23 uint64_t lr;
24+ uint64_t sp;
25+ uint64_t fp;
26
27 } cdh_registers_t;
28
29diff --git a/src/core_dump_handler/dlt_cdh_cpuinfo.c b/src/core_dump_handler/dlt_cdh_cpuinfo.c
30new file mode 100644
31index 00000000..03509fda
32--- /dev/null
33+++ b/src/core_dump_handler/dlt_cdh_cpuinfo.c
34@@ -0,0 +1,33 @@
35+/*
36+ * SPDX license identifier: MPL-2.0
37+ *
38+ * Copyright (C) 2011-2015, BMW AG
39+ *
40+ * This file is part of COVESA Project DLT - Diagnostic Log and Trace.
41+ *
42+ * This Source Code Form is subject to the terms of the
43+ * Mozilla Public License (MPL), v. 2.0.
44+ * If a copy of the MPL was not distributed with this file,
45+ * You can obtain one at http://mozilla.org/MPL/2.0/.
46+ *
47+ * For further information see http://www.covesa.org/.
48+ */
49+
50+/*!
51+ * \author Gianfranco Costamagna <locutusofborg@debian.org>
52+ *
53+ * \copyright Copyright © 2011-2015 BMW AG. \n
54+ * License MPL-2.0: Mozilla Public License version 2.0 http://mozilla.org/MPL/2.0/.
55+ *
56+ * \file dlt_cdh_cpuinfo.c
57+ */
58+
59+#include "dlt_cdh_cpuinfo.h"
60+
61+void get_registers(prstatus_t *prstatus, cdh_registers_t *registers)
62+{
63+/* struct user_regs_struct *ptr_reg = (struct user_regs_struct *)prstatus->pr_reg;
64+
65+ registers->pc = ptr_reg->pc;*/ /* [REG_PROC_COUNTER]; */
66+
67+}
68diff --git a/src/core_dump_handler/dlt_cdh_crashid.c b/src/core_dump_handler/dlt_cdh_crashid.c
69index bca44e0e..8dd98d70 100644
70--- a/src/core_dump_handler/dlt_cdh_crashid.c
71+++ b/src/core_dump_handler/dlt_cdh_crashid.c
72@@ -30,7 +30,7 @@
73 #include <stdio.h>
74 #include <string.h>
75 #include <errno.h>
76-#include <asm/prctl.h>
77+#include <sys/prctl.h>
78 #include <inttypes.h>
79
80 #include "dlt_cdh.h"
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch
deleted file mode 100644
index fd36480456..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/567]
2
3From c84e48f6986054cf8b9459e608235b7bd1635746 Mon Sep 17 00:00:00 2001
4From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
5Date: Mon, 13 Nov 2023 12:37:23 +0100
6Subject: [PATCH] dlt_cdh:
7
8Make sure on 64 bit we read an ELF64 structure.
9Otherwise we get a read error, and the context file is missing some good
10to know information
11---
12 src/core_dump_handler/dlt_cdh.h | 7 +++++++
13 1 file changed, 7 insertions(+)
14
15diff --git a/src/core_dump_handler/dlt_cdh.h b/src/core_dump_handler/dlt_cdh.h
16index 8608c6c4..3dac480a 100644
17--- a/src/core_dump_handler/dlt_cdh.h
18+++ b/src/core_dump_handler/dlt_cdh.h
19@@ -45,10 +45,17 @@
20 #define CORE_FILE_PATTERN "%s/core.%d.%s.%d.gz"
21 #define CONTEXT_FILE_PATTERN "%s/context.%d.%s.%d.txt"
22
23+#if ((__SIZEOF_POINTER) == 4)
24 #define ELF_Ehdr Elf32_Ehdr
25 #define ELF_Phdr Elf32_Phdr
26 #define ELF_Shdr Elf32_Shdr
27 #define ELF_Nhdr Elf32_Nhdr
28+#else
29+#define ELF_Ehdr Elf64_Ehdr
30+#define ELF_Phdr Elf64_Phdr
31+#define ELF_Shdr Elf64_Shdr
32+#define ELF_Nhdr Elf64_Nhdr
33+#endif
34
35 typedef struct
36 {
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.10.bb b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb
index 82edde6c9d..5e80acd67e 100644
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.10.bb
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_3.0.0.bb
@@ -17,12 +17,13 @@ DEPENDS = "zlib gzip-native json-c"
17SRC_URI = "git://github.com/COVESA/${BPN}.git;protocol=https;branch=master \ 17SRC_URI = "git://github.com/COVESA/${BPN}.git;protocol=https;branch=master \
18 file://0002-Don-t-execute-processes-as-a-specific-user.patch \ 18 file://0002-Don-t-execute-processes-as-a-specific-user.patch \
19 file://0004-Modify-systemd-config-directory.patch \ 19 file://0004-Modify-systemd-config-directory.patch \
20 file://544.patch \ 20 file://0001-Fix-compile-failure-related-to-gzlog.patch \
21 file://567.patch \ 21 file://0001-Fix-kinds-of-build-failure.patch \
22 file://0001-CMakeLists-txt-make-DLT_WatchdogSec-can-be-set-by-user.patch \ 22 file://0001-Fix-build-failures.patch \
23 file://0003-allow-build-with-cmake-4.patch \ 23 file://0001-fix-build-failure-when-systemd-is-enabled.patch \
24 file://0001-Fix-build-failure-with-glibc-2.43.patch \
24 " 25 "
25SRCREV = "0f2d4cfffada6f8448a2cb27995b38eb4271044f" 26SRCREV = "f595ea29d1007ca1c3b2d1fd3a88adf7d3db6320"
26 27
27 28
28PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd systemd-watchdog systemd-journal ', '', d)} \ 29PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd systemd-watchdog systemd-journal ', '', d)} \
@@ -71,4 +72,5 @@ FILES:${PN}-doc += "${datadir}/dlt-filetransfer"
71 72
72do_install:append() { 73do_install:append() {
73 rm -f ${D}${bindir}/dlt-test-* 74 rm -f ${D}${bindir}/dlt-test-*
75 sed -i -e 's:${RECIPE_SYSROOT}::g' ${D}/usr/lib/pkgconfig/automotive-dlt.pc
74} 76}