Date: Sat, 6 Mar 2004 20:06:42 -0500 From: Garance A Drosihn <drosih@rpi.edu> To: Tim Kientzle <tim@kientzle.com>, hackers@freebsd.org Subject: Re: Style(9) and portability Message-ID: <p060204cebc702460b7d5@[128.113.24.47]> In-Reply-To: <404A320D.8090905@kientzle.com> References: <404A320D.8090905@kientzle.com>
next in thread | previous in thread | raw e-mail | index | archive | help
At 12:18 PM -0800 3/6/04, Tim Kientzle wrote: >... I've been scratching my head over how to >deal with the version ID code that is supposed >to apear as the first two lines of any FreeBSD >source file: > >#include <sys/cdefs.h> >__FBSDID("$FreeBSD$"); > >Clearly, I cannot reasonably assume that all >platforms define a __FBSDID macro in sys/cdefs.h. Really, you can't even assume that all platforms will *have* a sys/cdefs.h >The second option deals with the issue by pushing >it onto a header that encapsulates platform-specific >definitions. In particular, the local platform.h >header can include sys/cdefs.h on FreeBSD and >provide an alternative definition of __FBSDID >on other platforms. The drawback is, of course, >the requirement for a new local header file to >wrap platform-specific decisions: > >2) #include "platform.h" /* Platform-specific defines */ > __FBSDID("$FreeBSD$"); This is basically the tactic that I went with for everything under lpr. That works reasonably well for lpr, but I don't know if it makes sense for everything: #include "lp.cdefs.h" /* A cross-platform version of <sys/cdefs.h> */ I intentionally have the comment about sys/defs.h, in case someone comes along later and scans for that string... -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p060204cebc702460b7d5>