Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Feb 2009 22:21:52 -0700 (MST)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        tinderbox@FreeBSD.org
Cc:        mips@FreeBSD.org, current@FreeBSD.org
Subject:   Re: [head tinderbox] failure on mips/mips
Message-ID:  <20090217.222152.-109416210.imp@bsdimp.com>
In-Reply-To: <20090217.203647.-1518647466.imp@bsdimp.com>
References:  <20090218023328.227617302F@freebsd-current.sentex.ca> <20090217.203647.-1518647466.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20090217.203647.-1518647466.imp@bsdimp.com>
            "M. Warner Losh" <imp@bsdimp.com> writes:
: In message: <20090218023328.227617302F@freebsd-current.sentex.ca>
:             FreeBSD Tinderbox <tinderbox@freebsd.org> writes:
: : /src/usr.sbin/bsnmpd/modules/snmp_mibII/../../../../contrib/bsnmp/snmp_mibII/mibII.c:1016: warning: cast increases required alignment of target type
: 
: there's still 3 or 4 of these in the tree that I'm trying to track
: back to root cause.  A simple (void *) fixes the problem, but I want
: to understand the issues before I slap that bad-boy in there...

The first one is:

	  case RTM_IFINFO:
		ifm = (struct if_msghdr *)rtm;
		mib_extract_addrs(ifm->ifm_addrs, (u_char *)(ifm + 1), addrs);
		if ((ifp = mib_find_if_sys(ifm->ifm_index)) == NULL)
			break;

rtm is of type struct rt_msghdr.  This has an alignment requirement of
4 on mips, at least on 32-bit mips (the biggest data element is a
u_long).  struct if_msghdr has an alignment requirement of 8, because
time_t is int64_t on MIPS, which is 8-bytes in size.

One way to fix this is to add __aligned(8) to struct rt_msghdr to
compensate for this.  Otherwise, if the time_t element is referenced
in ifm_data we'll core dump.

But that doesn't seem very portable and seems like a hack.

Adding (void *) to "fix" the warning would be even worse...

Anybody else have any ideas?

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090217.222152.-109416210.imp>