Changeset: 9c237560f639 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9c237560f639
Modified Files:
MonetDB5/src/modules/mal/mal_mapi.mx
sql/src/backends/monet5/merovingian/merovingian_proxy.c
Branch: Oct2010
Log Message:
fixing compilation with gcc 4.5.1 on Fedora 14:
added HACK(?) to avoid
"dereferencing type-punned pointer will break strict-aliasing rules"
diffs (51 lines):
diff -r f022c1b3925f -r 9c237560f639 MonetDB5/src/modules/mal/mal_mapi.mx
--- a/MonetDB5/src/modules/mal/mal_mapi.mx Fri Dec 10 22:29:03 2010 +0100
+++ b/MonetDB5/src/modules/mal/mal_mapi.mx Sun Dec 12 10:37:17 2010 +0100
@@ -563,6 +563,7 @@
/* nothing special, nothing to do */
break;
case '1':
+ { int *c_d;
/* filedescriptor, put it in place of
msgsock */
cmsg = CMSG_FIRSTHDR(&msgh);
if (!cmsg->cmsg_type == SCM_RIGHTS) {
@@ -573,7 +574,13 @@
continue;
}
closesocket(msgsock);
- msgsock = *(int*)CMSG_DATA(cmsg);
+ /* HACK to avoid
+ * "dereferencing type-punned pointer
will break strict-aliasing rules"
+ * (with gcc 4.5.1 on Fedora 14)
+ */
+ c_d = (int*)CMSG_DATA(cmsg);
+ msgsock = *c_d;
+ }
break;
default:
/* some unknown state */
diff -r f022c1b3925f -r 9c237560f639
sql/src/backends/monet5/merovingian/merovingian_proxy.c
--- a/sql/src/backends/monet5/merovingian/merovingian_proxy.c Fri Dec 10
22:29:03 2010 +0100
+++ b/sql/src/backends/monet5/merovingian/merovingian_proxy.c Sun Dec 12
10:37:17 2010 +0100
@@ -119,6 +119,7 @@
struct cmsghdr *cmsg;
struct iovec vec;
char buf[1];
+ int *c_d;
if ((ssock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
return(newErr("cannot open socket: %s",
strerror(errno)));
@@ -142,7 +143,12 @@
cmsg->cmsg_level = SOL_SOCKET;
cmsg->cmsg_type = SCM_RIGHTS;
cmsg->cmsg_len = CMSG_LEN(sizeof(psock));
- *(int *)CMSG_DATA(cmsg) = psock;
+ /* HACK to avoid
+ * "dereferencing type-punned pointer will break
strict-aliasing rules"
+ * (with gcc 4.5.1 on Fedora 14)
+ */
+ c_d = (int *)CMSG_DATA(cmsg);
+ *c_d = psock;
msg.msg_controllen = cmsg->cmsg_len;
msg.msg_flags = 0;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list