summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-04-22 14:38:12 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2010-04-22 14:38:12 +0100
commit3a12d05433153d5c7c84f85af6b5039fbcdd1d09 (patch)
tree2a5922d7681f5d21700d152dc09909c2809e28c9 /runtime
parentf902c9ca4891dcd65fd1f4b8bba0d23c75451dcd (diff)
downloadrsyslog-3a12d05433153d5c7c84f85af6b5039fbcdd1d09.tar.gz
rsyslog-3a12d05433153d5c7c84f85af6b5039fbcdd1d09.tar.xz
rsyslog-3a12d05433153d5c7c84f85af6b5039fbcdd1d09.zip
solved alignment errors on Solaris Sparc
Diffstat (limited to 'runtime')
-rw-r--r--runtime/msg.c2
-rw-r--r--runtime/net.c8
-rw-r--r--runtime/rsyslog.h28
3 files changed, 21 insertions, 17 deletions
diff --git a/runtime/msg.c b/runtime/msg.c
index 91057f97..6d7e6a89 100644
--- a/runtime/msg.c
+++ b/runtime/msg.c
@@ -3048,7 +3048,7 @@ static rsRetVal msgConstructFinalizer(msg_t *pThis)
* rgerhards, 2008-01-14
*/
static rsRetVal
-MsgGetSeverity(obj_t *pThis, int *piSeverity)
+MsgGetSeverity(obj_t_ptr pThis, int *piSeverity)
{
ISOBJ_TYPE_assert(pThis, msg);
assert(piSeverity != NULL);
diff --git a/runtime/net.c b/runtime/net.c
index fe6eef5b..4eb5a3bb 100644
--- a/runtime/net.c
+++ b/runtime/net.c
@@ -502,8 +502,8 @@ static inline void MaskIP4 (struct in_addr *addr, uint8_t bits) {
addr->s_addr &= htonl(0xffffffff << (32 - bits));
}
-#define SIN(sa) ((struct sockaddr_in *)(sa))
-#define SIN6(sa) ((struct sockaddr_in6 *)(sa))
+#define SIN(sa) ((struct sockaddr_in *)(void*)(sa))
+#define SIN6(sa) ((struct sockaddr_in6 *)(void*)(sa))
/* This is a cancel-safe getnameinfo() version, because we learned
@@ -1165,12 +1165,12 @@ void debugListenInfo(int fd, char *type)
switch(sa.sa_family) {
case PF_INET:
szFamily = "IPv4";
- ipv4 = (struct sockaddr_in*) &sa;
+ ipv4 = (struct sockaddr_in*)(void*) &sa;
port = ntohs(ipv4->sin_port);
break;
case PF_INET6:
szFamily = "IPv6";
- ipv6 = (struct sockaddr_in6*) &sa;
+ ipv6 = (struct sockaddr_in6*)(void*) &sa;
port = ntohs(ipv6->sin6_port);
break;
default:
diff --git a/runtime/rsyslog.h b/runtime/rsyslog.h
index acc31a99..b7117029 100644
--- a/runtime/rsyslog.h
+++ b/runtime/rsyslog.h
@@ -60,12 +60,8 @@
#endif
-/* under Solaris (actually only SPARC), we need to redefine some types
- * to be void, so that we get void* pointers. Otherwise, we will see
-* alignment errors.
-*/
-
/* define some base data types */
+
typedef unsigned char uchar;/* get rid of the unhandy "unsigned char" */
typedef struct thrdInfo thrdInfo_t;
typedef struct obj_s obj_t;
@@ -83,13 +79,6 @@ typedef struct nsd_gsspi_s nsd_gsspi_t;
typedef struct nsd_nss_s nsd_nss_t;
typedef struct nsdsel_ptcp_s nsdsel_ptcp_t;
typedef struct nsdsel_gtls_s nsdsel_gtls_t;
-#ifdef OS_SOLARIS
- typedef void nsd_t;
- typedef void nsdsel_t;
-#else
- typedef obj_t nsd_t;
- typedef obj_t nsdsel_t;
-#endif
typedef struct msg msg_t;
typedef struct prop_s prop_t;
typedef struct interface_s interface_t;
@@ -108,6 +97,21 @@ typedef rsRetVal (*prsf_t)(struct vmstk_s*, int); /* pointer to a RainerScript f
typedef struct tcpLstnPortList_s tcpLstnPortList_t; // TODO: rename?
typedef struct strmLstnPortList_s strmLstnPortList_t; // TODO: rename?
+/* under Solaris (actually only SPARC), we need to redefine some types
+ * to be void, so that we get void* pointers. Otherwise, we will see
+ * alignment errors.
+ */
+#ifdef OS_SOLARIS
+ typedef void * obj_t_ptr;
+ typedef void nsd_t;
+ typedef void nsdsel_t;
+#else
+ typedef obj_t obj_t_ptr;
+ typedef obj_t nsd_t;
+ typedef obj_t nsdsel_t;
+#endif
+
+
/* some universal 64 bit define... */
typedef long long int64;
typedef long long unsigned uint64;