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>