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

Reply via email to