delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/05/30/14:26:39

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type; q=dns; s=default; b=UiCM68vRYr6sZ5oZCHoyP8lwqk7Ye
OX0LTKDt0xcy1ugAXvWq86Qzho/D2JV4AjhDiGjLDCykUngNshjIiuCLYt8yn+Bz
E50p74c9nq7IO3YV0lBv5U2uaGFObL4j6L5VK/URm4cBr9U9OJSfC3glk9KHQhQT
TXYYOBEyKaFFgo=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type; s=default; bh=uSfYKiTtT+iqg7bx5imLOuKRvJo=; b=byb
XOi/dNu/f99Z/boSopHlCz+18H5SyJnc1SReUkzIImkYGAyw5qtxFp2pmWJroNks
loJqtOyf2PmOGrdSwg5fh+3emhA6NjE6UD04SfIwAz3B3S6ZOl0lJiP/PDIxg6et
R+9bV9P6YIaqgfpQ59RWu8P+v2bqrLJIFgOQUxZ0=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Spam-SWARE-Status: No, score=-10.2 required=5.0 tests=AWL,BAYES_00,KHOP_PGP_SIGNED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1
Message-ID: <51A78E70.1010600@redhat.com>
Date: Thu, 30 May 2013 11:37:52 -0600
From: Eric Blake <eblake AT redhat DOT com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: bug in <sys/un.h>
OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg
X-Virus-Found: No

------enig2OKFTCGPFRMFBBFJTWUDA
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

STC - this program does nothing useful when executed; it merely exists
to show a compilation problem extracted from a larger program:

$ cat foo.c
#ifdef WORKAROUND
# include <sys/socket.h>
#endif
#include <sys/un.h>
#include <sys/socket.h>
int main(void) {
  const struct msghdr msg;
  return sendmsg(0, &msg, 0);
}
$ gcc -o foo -Wall foo.c
foo.c: In function 'main':
foo.c:9:5: warning: passing argument 2 of 'sendmsg' from incompatible
pointer type
/usr/include/sys/socket.h:42:11: note: expected 'const struct msghdr *'
but argument is of type 'const struct msghdr *'
$ gcc -o foo -Wall foo.c -DWORKAROUND
$

Gcc has a less-than-stellar error message (expect type X but have type
X); it could do a better job about pointing out that it is complaining
about two different 'type X' declarations, and where they come from.
But the root cause is that if <sys/un.h> is included first, then the use
of 'struct msghdr' applied in the declaration of sendmsg() is somehow
scoped incorrectly (local to the declaration rather than the global
type), so that the compiler really is complaining about two different
incompatible 'struct msghdr' layouts.  I'm not quite sure what the fix
should be, but since I hit the problem today, I'm at least pointing it
out.  The same test case compiles without needing a workaround on Linux
with glibc 2.16.

--=20
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


------enig2OKFTCGPFRMFBBFJTWUDA
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (GNU/Linux)
Comment: Public key at http://people.redhat.com/eblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBCAAGBQJRp45wAAoJEKeha0olJ0NqmY0IAK1P00k6tWa3kfoS7AJskXl2
AnjYGa9/5vaOf0rJJYnUAg4riqYQNJB6d7XhHrrq4npqHhgkvzN4YCgeQNzl/t9Q
mU18aTCYQ4P30ekQW/rTBKmdbqOJHnwXHPIMp9RPifyfekqfKoBulAGUEwJydyqO
YWwKJQojz0vzTT9aZnF5RMqKNOwsTipvkRGxEfYiz7cMdgzu3royd6ywZIa9Qtjt
Rw2C5SsA+S+10TGho1gLxX+aK1H/nWli3gmTu+yIuY1kpxYgZd5N57iiQb6t+4x0
IQe8eQ9M7q/xsKMshydqLRMoEJXak0gSmYaOUB2tJuluVK6eAUvq44WmaL1RxJU=
=DO5k
-----END PGP SIGNATURE-----

------enig2OKFTCGPFRMFBBFJTWUDA--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019