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>

index | next in thread | raw e-mail

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


home | help

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