svn commit: r327447 - head/sys/sys

Julian Elischer julian at freebsd.org
Tue Jan 2 03:56:43 UTC 2018


On 1/1/18 5:00 am, Colin Percival wrote:
> Author: cperciva
> Date: Sun Dec 31 21:00:21 2017
> New Revision: 327447
> URL: https://svnweb.freebsd.org/changeset/base/327447
>
> Log:
>    Wrap includes in sys/tslog.h with #ifdef TSLOG.
>    
>    This is necessary because some non-kernel code #defines _KERNEL and then
>    includes kernel headers; as a result, it was getting conflicting versions
>    of curthread and curproc.  Non-kernel code should probably refrain from
>    defining _KERNEL, but for now hiding these indirect inclusions fixes the
>    build.

this is a recurring issue. Program that want to look into the 
internals of files such as mount.h
and define _KERNEL to allow themselves to do so.  It eventualy leads 
to all sorts of confusion and pollution.
Maybe we should make a policy on how to do this. At $JOB I had to hack 
it to define a
#ifdef _NOTREALLYKERNEL to split out parts we really wanted, but it 
would be better to have specific ones for
various specific 'rule breakers'..
e.g.
#if defined( _KERNEL ) || defined (WANT_TO_LOOK_AT_something)

kdump seems ot do the right thing with:

kdump/kdump.c:#define _WANT_KERNEL_ERRNO
errno.h:#if defined(_KERNEL) || defined(_WANT_KERNEL_ERRNO)




>    
>    Reported by:	Michael Butler, Herbert J. Skuhra
>
> Modified:
>    head/sys/sys/tslog.h
>
> Modified: head/sys/sys/tslog.h
> ==============================================================================
> --- head/sys/sys/tslog.h	Sun Dec 31 20:30:51 2017	(r327446)
> +++ head/sys/sys/tslog.h	Sun Dec 31 21:00:21 2017	(r327447)
> @@ -29,8 +29,10 @@
>   #ifndef _TSLOG_H_
>   #define	_TSLOG_H_
>   
> +#ifdef TSLOG
>   #include <sys/_types.h>
>   #include <sys/pcpu.h>
> +#endif
>   
>   #define TS_ENTER	0
>   #define TS_EXIT		1
>
>



More information about the svn-src-head mailing list