diff options
| author | Khem Raj <raj.khem@gmail.com> | 2024-11-22 10:40:57 -0800 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2024-11-22 11:02:14 -0800 |
| commit | e7be0ede426b4a73c73b77f5c043a6ae1dd2210e (patch) | |
| tree | d770b2aca50d818ed1bb2e681c8c84548da70a81 | |
| parent | c5aa5e0a20b2e197a0d0ba3d3daefcb1c59b932c (diff) | |
| download | meta-openembedded-e7be0ede426b4a73c73b77f5c043a6ae1dd2210e.tar.gz | |
canopenterm: Fix build with musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
| -rw-r--r-- | meta-oe/recipes-extended/canopenterm/canopenterm/0001-can_linux-initialize-msghdr-in-a-portable-way.patch | 42 | ||||
| -rw-r--r-- | meta-oe/recipes-extended/canopenterm/canopenterm_1.0.8.bb | 4 |
2 files changed, 45 insertions, 1 deletions
diff --git a/meta-oe/recipes-extended/canopenterm/canopenterm/0001-can_linux-initialize-msghdr-in-a-portable-way.patch b/meta-oe/recipes-extended/canopenterm/canopenterm/0001-can_linux-initialize-msghdr-in-a-portable-way.patch new file mode 100644 index 0000000000..09bbd40215 --- /dev/null +++ b/meta-oe/recipes-extended/canopenterm/canopenterm/0001-can_linux-initialize-msghdr-in-a-portable-way.patch | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | From 464ed82087b0514694ab69e2808e859cb6f13833 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Fri, 22 Nov 2024 10:35:12 -0800 | ||
| 4 | Subject: [PATCH] can_linux: initialize msghdr in a portable way | ||
| 5 | |||
| 6 | musl has padding bytes inside the msghdr struct which means initializing | ||
| 7 | full structure will cause wrong assignments, doing partial assignment is | ||
| 8 | more portable and assign the elements after that | ||
| 9 | |||
| 10 | Fixes | ||
| 11 | src/core/can_linux.c:362:71: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion] | ||
| 12 | | struct msghdr msg = { &sa, sizeof(sa), &iov, 1, NULL, 0, 0 }; | ||
| 13 | | ^~~~ | ||
| 14 | |||
| 15 | Upstream-Status: Submitted [https://github.com/CANopenTerm/CANopenTerm/pull/70] | ||
| 16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 17 | --- | ||
| 18 | src/core/can_linux.c | 7 ++++++- | ||
| 19 | 1 file changed, 6 insertions(+), 1 deletion(-) | ||
| 20 | |||
| 21 | diff --git a/src/core/can_linux.c b/src/core/can_linux.c | ||
| 22 | index d8824be..b4e7907 100644 | ||
| 23 | --- a/src/core/can_linux.c | ||
| 24 | +++ b/src/core/can_linux.c | ||
| 25 | @@ -359,11 +359,16 @@ static char** get_can_interfaces(int* count) | ||
| 26 | int fd; | ||
| 27 | char buf[BUFFER_SIZE] = { 0 }; | ||
| 28 | struct iovec iov = { buf, sizeof(buf) }; | ||
| 29 | - struct msghdr msg = { &sa, sizeof(sa), &iov, 1, NULL, 0, 0 }; | ||
| 30 | + struct msghdr msg = { 0 }; | ||
| 31 | int len; | ||
| 32 | int max_interfaces = 10; | ||
| 33 | int can_count = 0; | ||
| 34 | char** can_interfaces = (char**)os_calloc(max_interfaces * sizeof(char*), sizeof(char)); | ||
| 35 | + | ||
| 36 | + msg.msg_name = &sa; | ||
| 37 | + msg.msg_namelen = sizeof(sa); | ||
| 38 | + msg.msg_iov = &iov; | ||
| 39 | + msg.msg_iovlen = 1; | ||
| 40 | |||
| 41 | struct | ||
| 42 | { | ||
diff --git a/meta-oe/recipes-extended/canopenterm/canopenterm_1.0.8.bb b/meta-oe/recipes-extended/canopenterm/canopenterm_1.0.8.bb index 191225bb15..c9bf0af560 100644 --- a/meta-oe/recipes-extended/canopenterm/canopenterm_1.0.8.bb +++ b/meta-oe/recipes-extended/canopenterm/canopenterm_1.0.8.bb | |||
| @@ -15,7 +15,9 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=10e84ea70e8c3a1fbc462f5424806474" | |||
| 15 | 15 | ||
| 16 | DEPENDS = "libinih libsdl2 lua libsocketcan pocketpy" | 16 | DEPENDS = "libinih libsdl2 lua libsocketcan pocketpy" |
| 17 | 17 | ||
| 18 | SRC_URI = "git://github.com/CANopenTerm/CANopenTerm.git;protocol=https;branch=main" | 18 | SRC_URI = "git://github.com/CANopenTerm/CANopenTerm.git;protocol=https;branch=main \ |
| 19 | file://0001-can_linux-initialize-msghdr-in-a-portable-way.patch \ | ||
| 20 | " | ||
| 19 | SRCREV = "5bc04e09351f68e889381e1912b0445c4f18ee32" | 21 | SRCREV = "5bc04e09351f68e889381e1912b0445c4f18ee32" |
| 20 | 22 | ||
| 21 | S = "${WORKDIR}/git" | 23 | S = "${WORKDIR}/git" |
