Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Jan 2011 15:13:36 -0800
From:      mdf@FreeBSD.org
To:        FreeBSD Arch <freebsd-arch@freebsd.org>
Subject:   SYSCTL type safety
Message-ID:  <AANLkTimv%2Br8o9_U7dxvO1o7mpNSM4VdYH7ex=uT_4WwO@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Long ago at Isilon we ran into a problem with some sysctls in the
stock FreeBSD tree using the wrong type, like SYSCTL_ULONG on an int,
or just mixing unsigned/signed.  We have a patch that uses transparent
unions to cause a compile-time error with a type mismatch.  For a
while I was hesitant to push this since I wasn't sure about the use of
a gcc extension, but the SYSCTL fixes and the way to keep them sane
came up again when we started building a new driver locally, and the
build failed until we fixed some SYSCTL stuff.

Anyways, the patch to sys/sysctl.h is at

http://people.freebsd.org/~mdf/bsd-sysctl-type-safety.diff

Please chime in if you think this is a bad thing to add to the tree.
I will of course ensure a make universe passes locally before
committing this part.  The plan is to change the SYSCTL use, not the
base type of the variable, for any conflicts found.

Thanks,
matthew



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimv%2Br8o9_U7dxvO1o7mpNSM4VdYH7ex=uT_4WwO>