From: Christian Eggers <ceggers@arri.de>
To: "musl@lists.openwall.com" <musl@lists.openwall.com>
Subject: [musl] -Wsign-conversion warning on ARM when using CMSG_NXTHDR
Date: Wed, 16 Feb 2022 11:35:41 +0100 [thread overview]
Message-ID: <13391677.RDIVbhacDa@localhost.localdomain> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 3988 bytes --]
Toolchain: Yocto Linux with poky-tiny
Host platform: openSUSE 15.3 x86_64
Target platform: arm-poky-linux-musleabi (armv7, 32 bit)
When I try to compile libkcapi [1] [2] with current
Yocto/Openembedded master branch, I get the following compiler error:
| ../git/lib/kcapi-kernel-if.c: In function '_kcapi_common_send_meta':
| ../git/lib/kcapi-kernel-if.c:193:26: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
| 193 | header = CMSG_NXTHDR(&msg, header);
| | ^~~~~~~~~~~
| ../git/lib/kcapi-kernel-if.c:193:26: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
| ../git/lib/kcapi-kernel-if.c:213:26: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
| 213 | header = CMSG_NXTHDR(&msg, header);
| | ^~~~~~~~~~~
| ../git/lib/kcapi-kernel-if.c:213:26: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
Note: libcapi uses the '-Werror' and '-Wconversion' flags.
For testing, I created a minimal code snipset (cmsg.c):
#include <stddef.h>
#include <sys/socket.h>
void foo(void)
{
struct msghdr msg = {0};
struct cmsghdr *header = NULL;
header = CMSG_FIRSTHDR(&msg);
header = CMSG_NXTHDR(&msg, header);
}
# arm-poky-linux-musleabi-gcc --sysroot=<...> -Werror -Wconversion -c -o cmsg.o cmsg.c
cmsg.c: In function 'foo':
cmsg.c:10:18: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
10 | header = CMSG_NXTHDR(&msg, header);
| ^~~~~~~~~~~
cmsg.c:10:18: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
When replace CMSG_NXTHDR() by the expanded macro code, I get the following errors:
cmsg.c: In function 'foo':
cmsg.c:12:46: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
12 | (((header)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1)) + sizeof(struct cmsghdr) >= ((unsigned char *)(&msg)->msg_control + (&msg)->msg_controllen) - (unsigned char *)(header) \
| ^
cmsg.c:13:99: error: unsigned conversion from 'long int' to 'long unsigned int' changes value from '-4' to '4294967292' [-Werror=sign-conversion]
13 | ? 0 : (struct cmsghdr *)((unsigned char *)(header) + (((header)->cmsg_len + sizeof(long) - 1) & ~(long)(sizeof(long) - 1))));
| ^
[1] https://git.openembedded.org/meta-openembedded/tree/meta-oe/recipes-crypto/libkcapi?h=master
[2] https://github.com/smuellerDD/libkcapi/tree/2936ecd060c299157ac880650ba2c9fd94d27bb1
_______________________________________________________
Christian
Eggers
Software Engineer
ARRI
Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Arriweg 17,
83071
Stephanskirchen
www.arri.com
+49 8036 3009-3118
CEggers@arri.de
Get all the latest information from www.arri.com, Facebook, Twitter, Instagram and YouTube.
Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRA 57918
Persönlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: München - Registergericht: Amtsgericht München - Handelsregisternummer: HRB 54477
Geschäftsführer: Dr. Michael Neuhäuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
[-- Attachment #1.2: Type: text/html, Size: 13143 bytes --]
[-- Attachment #2: image092396.png --]
[-- Type: image/png, Size: 528 bytes --]
[-- Attachment #3: image623061.png --]
[-- Type: image/png, Size: 824 bytes --]
next reply other threads:[~2022-02-16 12:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-16 10:35 Christian Eggers [this message]
2022-02-16 18:03 ` Khem Raj
2022-02-17 12:37 ` [musl] " Christian Eggers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13391677.RDIVbhacDa@localhost.localdomain \
--to=ceggers@arri.de \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).