NetBSD Problem Report #10803

Received: (qmail 17008 invoked from network); 10 Aug 2000 16:35:29 -0000
Message-Id: <xofvgx9f54l.fsf@blubb.pdc.kth.se>
Date: 10 Aug 2000 18:33:14 +0200
From: joda@pdc.kth.se (Johan Danielsson)
Reply-To: joda@pdc.kth.se
To: gnats-bugs@gnats.netbsd.org
Subject: NetBSD does not provide a C99 conformant environment

>Number:         10803
>Category:       standards
>Synopsis:       NetBSD does not provide a C99 conformant environment
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    standards-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Thu Aug 10 16:36:00 +0000 2000
>Closed-Date:    
>Last-Modified:  Sat Apr 05 19:20:01 +0000 2008
>Originator:     Johan Danielsson
>Release:        2000-08
>Organization:
>Environment:

>Description:

There are some new stuff in C99, that we should support. After some
browsing the C99 document, I've found at least these missing
pieces. Some of these should be fixed in gcc (and some of them are
already there, but implemented differently), and some should be fixed
in NetBSD. This list is not complete.

	__func__ is not predefined (6.4.2.2)

	universal character names are not implemented (6.4.3)

	_Bool, _Complex, and _Imaginary types missing (6.7.2)

	flexible array members not allowed (6.7.2.1)

	restrict type qualifier (6.7.3)

	variable arrays in function declarators using [*] (6.7.5.3)

	for loops with declarations (6.8.5)

	variable argument macros (6.10.3)

	_Pragma operator (6.10.9)

	<complex.h> (7.3)

	<fenv.h> (7.6)

	<inttypes.h> defines what <stdint.h> should defined, and
	<stdint.h> doesn't exist at all (7.8, and 7.18)

	<iso646.h> (7.9)

	missing fields from <locale.h> (7.11)

	lots of stuff from <math.h> (7.12)

	<stdbool.h> (7.16)

	<stdio.h>: `j', `z', and `t' length modifiers, and `a', and
	`A' conversion specifiers (7.19)

	_Exit function (same as _exit) (7.20.4.4)

	<tgmath.h> (7.22)

	probably a few wide character issues

>How-To-Repeat:
>Fix:

Some (most I would guess) of this should be easy to fix, some will
take more effort.
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->suspended 
State-Changed-By: tv 
State-Changed-When: Thu Aug 10 09:50:45 PDT 2000 
State-Changed-Why:  
We are depending on our compiler, gcc, to provide the necessary
C99 standard compiler features. This PR can be re-addressed when
gcc supports all of the needed things.

Until that time, stay tuned for gcc updates. 

From: Klaus Klein <klaus.klein@security.kpnqwest.com>
To: joda@pdc.kth.se
Cc: gnats-bugs@gnats.netbsd.org
Subject: Re: standards/10803: NetBSD does not provide a C99 conformant environment
Date: 10 Aug 2000 19:38:37 +0200

 joda@pdc.kth.se (Johan Danielsson) writes:

 > 	<iso646.h> (7.9)

 For the record, this one has been in the tree since 1995. :-)


 -kjk

From: joda@pdc.kth.se (Johan Danielsson)
To: Klaus Klein <klaus.klein@security.kpnqwest.com>
Cc: gnats-bugs@gnats.netbsd.org
Subject: Re: standards/10803: NetBSD does not provide a C99 conformant environment
Date: 11 Aug 2000 11:23:06 +0200

 Klaus Klein <klaus.klein@security.kpnqwest.com> writes:

 > For the record, this one has been in the tree since 1995. :-)

 Yes, you're right.

 /Johan
Responsible-Changed-From-To: standards-manager->tv 
Responsible-Changed-By: tv 
Responsible-Changed-When: Mon Nov 13 11:05:10 PST 2000 
Responsible-Changed-Why:  
Toolchain == me right now. 
Responsible-Changed-From-To: tv->standards-manager 
Responsible-Changed-By: fair 
Responsible-Changed-When: Tue Jul 23 19:37:14 PDT 2002 
Responsible-Changed-Why:  
Todd Vierling has resigned from the NetBSD Project. 
State-Changed-From-To: suspended->open
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Sat, 05 Apr 2008 19:16:24 +0000
State-Changed-Why:
Let's have another look at this in light of gcc4.


From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: standards/10803: NetBSD does not provide a C99 conformant environment
Date: Sat, 5 Apr 2008 19:17:30 +0000

 A good bit of this has been implemented by now.

 Language-level:

    __func__ works;
    _Bool, _Complex work;
    flexible array members work;
    restrict works;
    for loops with declarations work;
    varargs macros work;
    _Pragma() works;

 leaving:

    universal character names are not implemented (6.4.3)
    _Imaginary type missing (6.7.2)
    variable arrays in function declarators using [*] (6.7.5.3)


 and at the library-level, most of the headers cited now exist, and:

    _Exit() exists;
    printf handles %jd, %zd, %td, %a, and %A;
    <iso646.h> is complete;
    <stdbool.h> is complete;

 leaving:

    <fenv.h> is missing;
    <tgmath.h> is missing;

 and someone more motivated than I feel at the moment should check
 whether all the bits that are supposed to be in these headers actually
 are, and if not, what's missing:

    <stdint.h>
    <inttypes.h>
    <complex.h>
    <locale.h>
    <math.h>

 plus investigate any wchar issues.

 -- 
 David A. Holland
 dholland@netbsd.org

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.