From jr@opal.com  Wed Feb 20 20:49:48 2013
Return-Path: <jr@opal.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	by hub.freebsd.org (Postfix) with ESMTP id C7A64DD9
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 20 Feb 2013 20:49:48 +0000 (UTC)
	(envelope-from jr@opal.com)
Received: from mho-02-ewr.mailhop.org (mho-04-ewr.mailhop.org [204.13.248.74])
	by mx1.freebsd.org (Postfix) with ESMTP id 51AB73D7
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 20 Feb 2013 20:49:47 +0000 (UTC)
Received: from pool-141-154-241-44.bos.east.verizon.net ([141.154.241.44] helo=homobox.opal.com)
	by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256)
	(Exim 4.72)
	(envelope-from <jr@opal.com>)
	id 1U8Gbr-000HTU-93
	for FreeBSD-gnats-submit@freebsd.org; Wed, 20 Feb 2013 20:49:47 +0000
Received: from shibato.opal.com (shibato.opal.com [IPv6:2001:470:8cb8:4:221:63ff:fe5a:c9a7])
	(authenticated bits=0)
	by homobox.opal.com (8.14.4/8.14.4) with ESMTP id r1KKnhMK080737
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 20 Feb 2013 15:49:46 -0500 (EST)
	(envelope-from jr@opal.com)
Received: from shibato.opal.com (localhost [127.0.0.1])
	by shibato.opal.com (8.14.5/8.14.5) with ESMTP id r1KKngm0085645
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO)
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 20 Feb 2013 15:49:43 -0500 (EST)
	(envelope-from jr@opal.com)
Received: (from jr@localhost)
	by shibato.opal.com (8.14.5/8.14.5/Submit) id r1KKngRK085644;
	Wed, 20 Feb 2013 15:49:42 -0500 (EST)
	(envelope-from jr)
Message-Id: <201302202049.r1KKngRK085644@shibato.opal.com>
Date: Wed, 20 Feb 2013 15:49:42 -0500 (EST)
From: "J.R. Oldroyd" <fbsd@opal.com>
Reply-To: "J.R. Oldroyd" <fbsd@opal.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: __CTASSERT() missing from <sys/cdefs.h>
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         176300
>Category:       kern
>Synopsis:       [headers] __CTASSERT() missing from <sys/cdefs.h>
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Feb 20 20:50:00 UTC 2013
>Closed-Date:    
>Last-Modified:  Sun Feb 24 23:33:19 UTC 2013
>Originator:     J.R. Oldroyd
>Release:        FreeBSD 9.1-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD xx.opal.com 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r244985: Tue Jan 8 10:51:13 EST 2013 jr@xx.opal.com:/usr/src/sys/amd64/compile/GENERIC amd64
>Description:
NetBSD has declarations of __CTASSERT() in <sys/cdefs.h>.  We only have it in
<sys/systm.h> which is a kernel space header.  Since we are mirroring code from
NetBSD that might use __CTASSERT() in user space, e.g., vis(3), we need to add
or move __CTASSERT().
>How-To-Repeat:
n/a
>Fix:
The NetBSD code in <sys/cdefs.h> is:
/*
 * Compile Time Assertion.
 */
#ifdef __COUNTER__
#define __CTASSERT(x)		__CTASSERT0(x, __ctassert, __COUNTER__)
#else
#define __CTASSERT(x)		__CTASSERT0(x, __ctassert, __LINE__)
#endif
#define __CTASSERT0(x, y, z)	__CTASSERT1(x, y, z)
#define __CTASSERT1(x, y, z)	typedef char y ## z[(x) ? 1 : -1]
>Release-Note:
>Audit-Trail:

From: "J.R. Oldroyd" <fbsd@opal.com>
To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org
Cc:  
Subject: Re: bin/176300: __CTASSERT() missing from <sys/cdefs.h>
Date: Wed, 20 Feb 2013 17:07:50 -0500

 On Wed, 20 Feb 2013 20:50:00 GMT FreeBSD-gnats-submit@FreeBSD.org wrote:
 
 [bug editor's note: above patch has been fixed as of 20130224]

 Oops, that last line should not have a semi-colon.  I was looking at
 an old version on NetBSD where they've since removed it.
 
 -#define __CTASSERT1(x, y, z)	typedef char y ## z[(x) ? 1 : -1];
 +#define __CTASSERT1(x, y, z)	typedef char y ## z[(x) ? 1 : -1]
 
>Unformatted:
