feat(zephyr): v4.4 migration fixes/improvements

Zephyr v4.4 has stricter compiler policies. This commit fixes following:
- fix implicit casting errors
- fix IPV6 related typos/variables/structures
- fix zephyr fd relevant implicit casting

Signed-off-by: Krisztian Szilvasi <34309983+kr-t@users.noreply.github.com>
This commit is contained in:
Krisztian Szilvasi 2026-04-16 14:43:10 +02:00
parent 11eb2069c4
commit d1a577ea0e
No known key found for this signature in database
3 changed files with 15 additions and 15 deletions

View File

@ -438,7 +438,7 @@ apply_relocation(AOTModule *module, uint8 *target_section_addr,
| ((lower & 0x7000) >> 4) | (lower & 0x00ff);
offset = (offset ^ 0x8000) - 0x8000;
offset += (symbol_addr + reloc_addend);
offset += ((intptr_t)symbol_addr + reloc_addend);
if (reloc_type == R_ARM_THM_MOVT_PREL
|| reloc_type == R_ARM_THM_MOVW_PREL_NC)

View File

@ -2216,14 +2216,14 @@ wasmtime_ssp_poll_oneoff(wasm_exec_env_t exec_env, struct fd_table *curfds,
if (error == 0) {
// Temporary workaround (see PR#4377)
#ifdef BH_PLATFORM_ZEPHYR
os_file_handle tfd = fos[i]->file_handle->fd;
#else
os_file_handle tfd = fos[i]->file_handle;
#endif
// Proper file descriptor on which we can poll().
pfds[i] = (os_poll_file_handle){
#ifdef BH_PLATFORM_ZEPHYR
.fd = tfd->fd,
#else
.fd = tfd,
#endif
.events = s->u.type == __WASI_EVENTTYPE_FD_READ
? POLLIN
: POLLOUT,

View File

@ -24,7 +24,7 @@ textual_addr_to_sockaddr(const char *textual, int port, struct sockaddr *out,
{
struct sockaddr_in *v4;
#ifdef IPPROTO_IPV6
struct sockaddr_in *v6;
struct sockaddr_in6 *v6;
#endif
assert(textual);
@ -38,11 +38,11 @@ textual_addr_to_sockaddr(const char *textual, int port, struct sockaddr *out,
}
#ifdef IPPROTO_IPV6
v6 = (struct sockaddr_in *)out;
v6 = (struct sockaddr_in6 *)out;
if (zsock_inet_pton(AF_INET6, textual, &v6->sin6_addr.s6_addr) == 1) {
v6->sin6_family = AF_INET6;
v6->sin6_port = htons(port);
*out_len = sizeof(struct sockaddr_in);
*out_len = sizeof(struct sockaddr_in6);
return true;
}
#endif
@ -67,7 +67,7 @@ sockaddr_to_bh_sockaddr(const struct sockaddr *sockaddr,
#ifdef IPPROTO_IPV6
case AF_INET6:
{
struct sockaddr_in *addr = (struct sockaddr_in *)sockaddr;
struct sockaddr_in6 *addr = (struct sockaddr_in6 *)sockaddr;
size_t i;
bh_sockaddr->port = ntohs(addr->sin6_port);
@ -245,7 +245,7 @@ os_socket_bind(bh_socket_t socket, const char *host, int *port)
}
else {
#ifdef IPPROTO_IPV6
*port = ntohs(((struct sockaddr_in *)&addr)->sin6_port);
*port = ntohs(((struct sockaddr_in6 *)&addr)->sin6_port);
#else
return BHT_ERROR;
#endif
@ -906,10 +906,10 @@ os_socket_set_ip_add_membership(bh_socket_t socket,
((uint16_t *)mreq.ipv6mr_multiaddr.s6_addr)[i] =
imr_multiaddr->ipv6[i];
}
mreq.ipv6mr_interface = imr_interface;
mreq.ipv6mr_ifindex = imr_interface;
if (setsockopt(socket->fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq,
sizeof(mreq))
if (zsock_setsockopt(socket->fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP,
&mreq, sizeof(mreq))
!= 0) {
return BHT_ERROR;
}
@ -947,7 +947,7 @@ os_socket_set_ip_drop_membership(bh_socket_t socket,
((uint16_t *)mreq.ipv6mr_multiaddr.s6_addr)[i] =
imr_multiaddr->ipv6[i];
}
mreq.ipv6mr_interface = imr_interface;
mreq.ipv6mr_ifindex = imr_interface;
if (zsock_setsockopt(socket->fd, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP,
&mreq, sizeof(mreq))