On 28 February 2015 at 11:17, Patrick Welche <[email protected]> wrote: > The surprise is that when building rump, gcc complains with: > > > /usr/src/sys/rump/net/lib/libnet/../../../../net/route.c:1010:21: error: > initializer element is not constant > static const struct in_addr inmask32 = {.s_addr = INADDR_BROADCAST}; > ^ > /usr/src/sys/rump/net/lib/libnet/../../../../net/route.c:1010:21: error: > (near initialization for 'inmask32.s_addr') > > > which certainly looks constant. Problem is that INADDR_BROADCAST may > contain a call to htonl(), e.g. try
> Given that 0xffffffff is the same in either order, there is an obvious > kludge, but any thoughts on an elegant solution? Hmm, I hadnt seen that. Maybe define an HTONL macro that uses shifts and masks ifdef little endian so it is all done at compile time? Justin
