mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
Update.
1999-08-24 Ulrich Drepper <drepper@cygnus.com> * conform/Makefile: New file. * conform/conformtest.pl: New file. * conform/data/aio.h-data: New file. * conform/data/assert.h-data: New file. * conform/data/cpio.h-data: New file. * conform/data/ctype.h-data: New file. * conform/data/dirent.h-data: New file. * conform/data/dlfcn.h-data: New file. * conform/data/errno.h-data: New file. * conform/data/fcntl.h-data: New file. * conform/data/float.h-data: New file. * conform/data/fmtmsg.h-data: New file. * conform/data/fnmatch.h-data: New file. * conform/data/ftw.h-data: New file. * conform/data/glob.h-data: New file. * conform/data/grp.h-data: New file. * conform/data/iconv.h-data: New file. * conform/data/inttypes.h-data: New file. * conform/data/iso646.h-data: New file. * conform/data/langinfo.h-data: New file. * conform/data/libgen.h-data: New file. * conform/data/locale.h-data: New file. * conform/data/math.h-data: New file.
This commit is contained in:
26
ChangeLog
26
ChangeLog
@@ -1,3 +1,29 @@
|
|||||||
|
1999-08-24 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* conform/Makefile: New file.
|
||||||
|
* conform/conformtest.pl: New file.
|
||||||
|
* conform/data/aio.h-data: New file.
|
||||||
|
* conform/data/assert.h-data: New file.
|
||||||
|
* conform/data/cpio.h-data: New file.
|
||||||
|
* conform/data/ctype.h-data: New file.
|
||||||
|
* conform/data/dirent.h-data: New file.
|
||||||
|
* conform/data/dlfcn.h-data: New file.
|
||||||
|
* conform/data/errno.h-data: New file.
|
||||||
|
* conform/data/fcntl.h-data: New file.
|
||||||
|
* conform/data/float.h-data: New file.
|
||||||
|
* conform/data/fmtmsg.h-data: New file.
|
||||||
|
* conform/data/fnmatch.h-data: New file.
|
||||||
|
* conform/data/ftw.h-data: New file.
|
||||||
|
* conform/data/glob.h-data: New file.
|
||||||
|
* conform/data/grp.h-data: New file.
|
||||||
|
* conform/data/iconv.h-data: New file.
|
||||||
|
* conform/data/inttypes.h-data: New file.
|
||||||
|
* conform/data/iso646.h-data: New file.
|
||||||
|
* conform/data/langinfo.h-data: New file.
|
||||||
|
* conform/data/libgen.h-data: New file.
|
||||||
|
* conform/data/locale.h-data: New file.
|
||||||
|
* conform/data/math.h-data: New file.
|
||||||
|
|
||||||
1999-08-23 Ulrich Drepper <drepper@cygnus.com>
|
1999-08-23 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* posix/execvp.c (execvp): Correct copying of file name.
|
* posix/execvp.c (execvp): Correct copying of file name.
|
||||||
|
24
conform/Makefile
Normal file
24
conform/Makefile
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
# This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
# The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Library General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 2 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
|
||||||
|
# The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Library General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU Library General Public
|
||||||
|
# License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||||
|
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
# Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Sub-makefile for conform portion of the library.
|
||||||
|
#
|
||||||
|
subdir := conform
|
||||||
|
|
||||||
|
distribute = conformtest.pl $(wildcard data/*.h-data)
|
407
conform/conformtest.pl
Normal file
407
conform/conformtest.pl
Normal file
@@ -0,0 +1,407 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
|
||||||
|
$CC = "gcc";
|
||||||
|
$CFLAGS = "-I. -D_XOPEN_SOURCE=500";
|
||||||
|
|
||||||
|
# List of the headers we are testing.
|
||||||
|
@headers = ("fmtmsg.h", "float.h", "fcntl.h", "errno.h", "dlfcn.h", "dirent.h",
|
||||||
|
"ctype.h", "cpio.h", "assert.h", "aio.h");
|
||||||
|
|
||||||
|
# These are the ISO C9x keywords.
|
||||||
|
@keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default',
|
||||||
|
'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto',
|
||||||
|
'if', 'inline', 'int', 'long', 'register', 'restrict', 'return',
|
||||||
|
'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
|
||||||
|
'typedef', 'union', 'unsigned', 'void', 'volatile', 'while');
|
||||||
|
|
||||||
|
# Make an hash table from this information.
|
||||||
|
while ($#keywords) {
|
||||||
|
$iskeyword{pop (@keywords)} = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tmpdir = "/tmp";
|
||||||
|
|
||||||
|
$verbose = 1;
|
||||||
|
|
||||||
|
$total = 0;
|
||||||
|
$skipped = 0;
|
||||||
|
$errors = 0;
|
||||||
|
|
||||||
|
#$dialect = "ISO";
|
||||||
|
#$dialect = "POSIX";
|
||||||
|
#$dialect = "XPG3";
|
||||||
|
#$dialect = "XPG4";
|
||||||
|
$dialect = "UNIX98";
|
||||||
|
|
||||||
|
|
||||||
|
sub poorfnmatch {
|
||||||
|
my($pattern, $string) = @_;
|
||||||
|
my($strlen) = length ($string);
|
||||||
|
my($res);
|
||||||
|
|
||||||
|
if (substr ($pattern, 0, 1) eq '*') {
|
||||||
|
my($patlen) = length ($pattern) - 1;
|
||||||
|
$res = ($strlen >= $patlen
|
||||||
|
&& substr ($pattern, -$patlen, $patlen) eq substr ($string, -$patlen, $patlen));
|
||||||
|
} elsif (substr ($pattern, -1, 1) eq '*') {
|
||||||
|
my($patlen) = length ($pattern) - 1;
|
||||||
|
$res = ($strlen >= $patlen
|
||||||
|
&& substr ($pattern, 0, $patlen) eq substr ($string, 0, $patlen));
|
||||||
|
} else {
|
||||||
|
$res = $pattern eq $string;
|
||||||
|
}
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub compiletest
|
||||||
|
{
|
||||||
|
my($fnamebase, $msg, $errmsg, $skip) = @_;
|
||||||
|
my($result) = $skip;
|
||||||
|
my($printlog) = 0;
|
||||||
|
|
||||||
|
++$total;
|
||||||
|
printf (" $msg...");
|
||||||
|
|
||||||
|
if ($skip != 0) {
|
||||||
|
++$skipped;
|
||||||
|
printf (" SKIP\n");
|
||||||
|
} else {
|
||||||
|
$ret = system "$CC $CFLAGS -c $fnamebase.c -o $fnamebase.o > $fnamebase.out 2>&1";
|
||||||
|
if ($ret != 0) {
|
||||||
|
printf (" FAIL\n");
|
||||||
|
if ($verbose != 0) {
|
||||||
|
printf (" $errmsg Compiler message:\n");
|
||||||
|
$printlog = 1;
|
||||||
|
}
|
||||||
|
++$errors;
|
||||||
|
$result = 1;
|
||||||
|
} else {
|
||||||
|
printf (" OK\n");
|
||||||
|
if ($verbose > 1 && -s "$fnamebase.out") {
|
||||||
|
# We print all warnings issued.
|
||||||
|
$printlog = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($printlog != 0) {
|
||||||
|
printf (" " . "-" x 71 . "\n");
|
||||||
|
open (MESSAGE, "< $fnamebase.out");
|
||||||
|
while (<MESSAGE>) {
|
||||||
|
printf (" %s", $_);
|
||||||
|
}
|
||||||
|
close (MESSAGE);
|
||||||
|
printf (" " . "-" x 71 . "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unlink "$fnamebase.c";
|
||||||
|
unlink "$fnamebase.o";
|
||||||
|
unlink "$fnamebase.out";
|
||||||
|
|
||||||
|
$result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub runtest
|
||||||
|
{
|
||||||
|
my($fnamebase, $msg, $errmsg, $skip) = @_;
|
||||||
|
my($result) = $skip;
|
||||||
|
my($printlog) = 0;
|
||||||
|
|
||||||
|
++$total;
|
||||||
|
printf (" $msg...");
|
||||||
|
|
||||||
|
if ($skip != 0) {
|
||||||
|
++$skipped;
|
||||||
|
printf (" SKIP\n");
|
||||||
|
} else {
|
||||||
|
$ret = system "$CC $CFLAGS -o $fnamebase $fnamebase.c > $fnamebase.out 2>&1";
|
||||||
|
if ($ret != 0) {
|
||||||
|
printf (" FAIL\n");
|
||||||
|
if ($verbose != 0) {
|
||||||
|
printf (" $errmsg Compiler message:\n");
|
||||||
|
$printlog = 1;
|
||||||
|
}
|
||||||
|
++$errors;
|
||||||
|
$result = 1;
|
||||||
|
} else {
|
||||||
|
# Now run the program. If the exit code is not zero something is wrong.
|
||||||
|
$result = system "$fnamebase > $fnamebase.out2 2>&1";
|
||||||
|
if ($result == 0) {
|
||||||
|
printf (" OK\n");
|
||||||
|
if ($verbose > 1 && -s "$fnamebase.out") {
|
||||||
|
# We print all warnings issued.
|
||||||
|
$printlog = 1;
|
||||||
|
system "cat $fnamebase.out2 >> $fnamebase.out";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printf (" FAIL\n");
|
||||||
|
$printlog = 1;
|
||||||
|
unlink "$fnamebase.out";
|
||||||
|
rename "$fnamebase.out2", "$fnamebase.out";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($printlog != 0) {
|
||||||
|
printf (" " . "-" x 71 . "\n");
|
||||||
|
open (MESSAGE, "< $fnamebase.out");
|
||||||
|
while (<MESSAGE>) {
|
||||||
|
printf (" %s", $_);
|
||||||
|
}
|
||||||
|
close (MESSAGE);
|
||||||
|
printf (" " . "-" x 71 . "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unlink "$fnamebase";
|
||||||
|
unlink "$fnamebase.c";
|
||||||
|
unlink "$fnamebase.o";
|
||||||
|
unlink "$fnamebase.out";
|
||||||
|
unlink "$fnamebase.out2";
|
||||||
|
|
||||||
|
$result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub newtoken {
|
||||||
|
my($token, $nerrors, @allow) = @_;
|
||||||
|
my($idx);
|
||||||
|
|
||||||
|
for ($idx = 0; $idx <= $#allow; ++$idx) {
|
||||||
|
if ($token =~ /^[0-9_]/ || $iskeyword{$token} || poorfnmatch ($allow[$idx], $token)) {
|
||||||
|
return $nerrors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
++$nerrors;
|
||||||
|
if ($nerrors == 1) {
|
||||||
|
printf ("FAIL\n " . "-" x 72 . "\n");
|
||||||
|
}
|
||||||
|
printf (" Namespace violation: \"%s\"\n", $token);
|
||||||
|
return $nerrors;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub checknamespace {
|
||||||
|
my($h, $fnamebase, @allow) = @_;
|
||||||
|
my($nerrors) = 0;
|
||||||
|
|
||||||
|
++$total;
|
||||||
|
|
||||||
|
# Generate a program to get the contents of this header.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
open (CONTENT, "$CC $CFLAGS -E $fnamebase.c -Wp,-dN | sed -e '/^# [1-9]/d' -e '/^[[:space:]]*\$/d' |");
|
||||||
|
while (<CONTENT>) {
|
||||||
|
chop;
|
||||||
|
if (/^#define (.*)/) {
|
||||||
|
$nerrors = newtoken ($1, $nerrors, @allow);
|
||||||
|
} else {
|
||||||
|
# We have to tokenize the line.
|
||||||
|
my($str) = $_;
|
||||||
|
my($index) = 0;
|
||||||
|
my($len) = length ($str);
|
||||||
|
|
||||||
|
foreach $token (split(/[^a-zA-Z0-9_]/, $str)) {
|
||||||
|
if ($token ne "") {
|
||||||
|
$nerrors = newtoken ($token, $nerrors, @allow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close (CONTENT);
|
||||||
|
unlink "$fnamebase.c";
|
||||||
|
if ($nerrors != 0) {
|
||||||
|
printf (" " . "-" x 72 . "\n");
|
||||||
|
++$errors;
|
||||||
|
} else {
|
||||||
|
printf ("OK\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while ($#headers >= 0) {
|
||||||
|
my($h) = pop (@headers);
|
||||||
|
my($fnamebase) = "$tmpdir/$h-test";
|
||||||
|
my($missing);
|
||||||
|
my(@allow) = ();
|
||||||
|
|
||||||
|
printf ("Testing <$h>\n");
|
||||||
|
printf ("----------" . "-" x length ($h) . "\n");
|
||||||
|
|
||||||
|
# Generate a program to test for the availability of this header.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
$missing = compiletest ($fnamebase, "Checking whether <$h> is available",
|
||||||
|
"Header <$h> not available", 0);
|
||||||
|
|
||||||
|
printf ("\n");
|
||||||
|
|
||||||
|
open (CONTROL, "$CC -E -D$dialect - < data/$h-data |");
|
||||||
|
control: while (<CONTROL>) {
|
||||||
|
chop;
|
||||||
|
next control if (/^#/);
|
||||||
|
next control if (/^[ ]*$/);
|
||||||
|
|
||||||
|
if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
|
||||||
|
my($struct) = "$2$3";
|
||||||
|
my($type) = "$5$6";
|
||||||
|
my($member) = "$7";
|
||||||
|
my($rest) = "$8";
|
||||||
|
my($res) = $missing;
|
||||||
|
|
||||||
|
# Remember that this name is allowed.
|
||||||
|
push @allow, $member;
|
||||||
|
|
||||||
|
# Generate a program to test for the availability of this member.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "$struct a;\n";
|
||||||
|
print TESTFILE "$struct b;\n";
|
||||||
|
print TESTFILE "extern void xyzzy (__typeof__ (&b.$member), __typeof__ (&a.$member), unsigned);\n";
|
||||||
|
print TESTFILE "void foobarbaz (void) {\n";
|
||||||
|
print TESTFILE " xyzzy (&a.$member, &b.$member, sizeof (a.$member));\n";
|
||||||
|
print TESTFILE "}\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
$res = compiletest ($fnamebase, "Testing for member $member",
|
||||||
|
"Member \"$member\" not available.", $res);
|
||||||
|
|
||||||
|
|
||||||
|
# Test the types of the members.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "$struct a;\n";
|
||||||
|
print TESTFILE "extern $type b$rest;\n";
|
||||||
|
print TESTFILE "extern __typeof__ (a.$member) b;\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
compiletest ($fnamebase, "Testing for type of member $member",
|
||||||
|
"Member \"$member\" does not have the correct type.", $res);
|
||||||
|
} elsif (/^constant *([a-zA-Z0-9_]*) *([A-Za-z0-9_]*)?/) {
|
||||||
|
my($const) = $1;
|
||||||
|
my($value) = $2;
|
||||||
|
my($res) = $missing;
|
||||||
|
|
||||||
|
# Remember that this name is allowed.
|
||||||
|
push @allow, $const;
|
||||||
|
|
||||||
|
# Generate a program to test for the availability of this constant.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "__typeof__ ($const) a = $const;\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
$res = compiletest ($fnamebase, "Testing for constant $const",
|
||||||
|
"Constant \"$const\" not available.", $res);
|
||||||
|
|
||||||
|
if ($value ne "") {
|
||||||
|
# Generate a program to test for the value of this constant.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "int main (void) { return $const != $value; }\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
$res = runtest ($fnamebase, "Testing for value of constant $const",
|
||||||
|
"Constant \"$const\" has not the right value.", $res);
|
||||||
|
}
|
||||||
|
} elsif (/^type *({([^}]*)|([a-zA-Z0-9_]*))/) {
|
||||||
|
my($type) = "$2$3";
|
||||||
|
|
||||||
|
# Remember that this name is allowed.
|
||||||
|
if ($type =~ /^struct *(.*)/) {
|
||||||
|
push @allow, $1;
|
||||||
|
} elsif ($type =~ /^union *(.*)/) {
|
||||||
|
push @allow, $1;
|
||||||
|
} else {
|
||||||
|
push @allow, $type;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remember that this name is allowed.
|
||||||
|
push @allow, $type;
|
||||||
|
|
||||||
|
# Generate a program to test for the availability of this constant.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "$type *a;\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
compiletest ($fnamebase, "Testing for type $type",
|
||||||
|
"Type \"$type\" not available.", $missing);
|
||||||
|
} elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(][^)]*[)])/) {
|
||||||
|
my($rettype) = "$2$3";
|
||||||
|
my($fname) = "$4";
|
||||||
|
my($args) = "$5";
|
||||||
|
my($res) = $missing;
|
||||||
|
|
||||||
|
# Remember that this name is allowed.
|
||||||
|
push @allow, $fname;
|
||||||
|
|
||||||
|
# Generate a program to test for availability of this function.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "#undef $fname\n";
|
||||||
|
print TESTFILE "$rettype (*foobarbaz) $args = $fname;\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
$res = compiletest ($fnamebase, "Test availability of function $fname",
|
||||||
|
"Function \"$fname\" is not available.", $res);
|
||||||
|
|
||||||
|
# Generate a program to test for the type of this function.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "#undef $fname\n";
|
||||||
|
print TESTFILE "extern $rettype (*foobarbaz) $args;\n";
|
||||||
|
print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
compiletest ($fnamebase, "Test for type of function $fname",
|
||||||
|
"Function \"$fname\" has incorrect type.", $res);
|
||||||
|
} elsif (/^macro *([^ ]*)/) {
|
||||||
|
my($macro) = "$1";
|
||||||
|
|
||||||
|
# Remember that this name is allowed.
|
||||||
|
push @allow, $macro;
|
||||||
|
|
||||||
|
# Generate a program to test for availability of this macro.
|
||||||
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
print TESTFILE "#include <$h>\n";
|
||||||
|
print TESTFILE "#ifndef $macro\n";
|
||||||
|
print TESTFILE "# error \"Macro $macro not defined\"\n";
|
||||||
|
print TESTFILE "#endif\n";
|
||||||
|
close (TESTFILE);
|
||||||
|
|
||||||
|
compiletest ($fnamebase, "Test availability of macro $macro",
|
||||||
|
"Macro \"$macro\" is not available.", $missing);
|
||||||
|
} elsif (/^allow *(.*)/) {
|
||||||
|
my($pattern) = $1;
|
||||||
|
push @allow, $pattern;
|
||||||
|
next control;
|
||||||
|
} else {
|
||||||
|
# printf ("line is `%s'\n", $_);
|
||||||
|
next control;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf ("\n");
|
||||||
|
}
|
||||||
|
close (CONTROL);
|
||||||
|
|
||||||
|
# Now check the namespace.
|
||||||
|
printf (" Checking the namespace of \"%s\"... ", $h);
|
||||||
|
if ($missing) {
|
||||||
|
++$skipped;
|
||||||
|
printf ("SKIP\n");
|
||||||
|
} else {
|
||||||
|
checknamespace ($h, $fnamebase, @allow);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf ("\n\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
printf "-" x 76 . "\n";
|
||||||
|
printf (" Total number of tests : %4d\n", $total);
|
||||||
|
printf (" Number of failed tests : %4d (%3d%%)\n", $errors, ($errors * 100) / $total);
|
||||||
|
printf (" Number of skipped tests: %4d (%3d%%)\n", $skipped, ($skipped * 100) / $total);
|
||||||
|
|
||||||
|
exit $errors != 0;
|
43
conform/data/aio.h-data
Normal file
43
conform/data/aio.h-data
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#ifndef ISO
|
||||||
|
type {struct aiocb}
|
||||||
|
|
||||||
|
// Test elements of the AIO control struct.
|
||||||
|
element {struct aiocb} int aio_fildes
|
||||||
|
element {struct aiocb} off_t aio_offset
|
||||||
|
element {struct aiocb} {volatile void*} aio_buf
|
||||||
|
element {struct aiocb} size_t aio_nbytes
|
||||||
|
element {struct aiocb} int aio_reqprio
|
||||||
|
element {struct aiocb} {struct sigevent} aio_sigevent
|
||||||
|
element {struct aiocb} int aio_lio_opcode
|
||||||
|
|
||||||
|
constant AIO_CANCELED
|
||||||
|
constant AIO_NOTCANCELED
|
||||||
|
constant AIO_ALLDONE
|
||||||
|
constant LIO_WAIT
|
||||||
|
constant LIO_NOWAIT
|
||||||
|
constant LIO_READ
|
||||||
|
constant LIO_WRITE
|
||||||
|
constant LIO_NOP
|
||||||
|
|
||||||
|
function int aio_cancel (int, struct aiocb*)
|
||||||
|
function int aio_error (const struct aiocb*)
|
||||||
|
function int aio_fsync (int, struct aiocb*)
|
||||||
|
function int aio_read (struct aiocb*)
|
||||||
|
function ssize_t aio_return (struct aiocb*)
|
||||||
|
function int aio_suspend (const struct aiocb* const[], int, const struct timespec*)
|
||||||
|
function int aio_write (struct aiocb*)
|
||||||
|
function int lio_listio (int, struct aiocb *const[], int, struct sigevent*)
|
||||||
|
|
||||||
|
# if !defined POSIX
|
||||||
|
allow-header fcntl.h
|
||||||
|
allow-header signal.h
|
||||||
|
allow-header sys/types.h
|
||||||
|
allow-header time.h
|
||||||
|
# endif
|
||||||
|
|
||||||
|
allow aio_*
|
||||||
|
allow lio_*
|
||||||
|
allow AIO_*
|
||||||
|
allow LIO_*
|
||||||
|
allow *_t
|
||||||
|
#endif
|
1
conform/data/assert.h-data
Normal file
1
conform/data/assert.h-data
Normal file
@@ -0,0 +1 @@
|
|||||||
|
macro assert
|
23
conform/data/cpio.h-data
Normal file
23
conform/data/cpio.h-data
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef ISO
|
||||||
|
constant C_IRUSR 0000400
|
||||||
|
constant C_IWUSR 0000200
|
||||||
|
constant C_IXUSR 0000100
|
||||||
|
constant C_IRGRP 0000040
|
||||||
|
constant C_IWGRP 0000020
|
||||||
|
constant C_IXGRP 0000010
|
||||||
|
constant C_IROTH 0000004
|
||||||
|
constant C_IWOTH 0000002
|
||||||
|
constant C_IXOTH 0000001
|
||||||
|
constant C_ISUID 0004000
|
||||||
|
constant C_ISGID 0002000
|
||||||
|
constant C_ISVTX 0001000
|
||||||
|
constant C_ISDIR 0040000
|
||||||
|
constant C_ISFIFO 0010000
|
||||||
|
constant C_ISREG 0100000
|
||||||
|
constant C_ISBLK 0060000
|
||||||
|
constant C_ISCHR 0020000
|
||||||
|
constant C_ISCTG 0110000
|
||||||
|
constant C_ISLNK 0120000
|
||||||
|
constant C_ISSOCK 0140000
|
||||||
|
constant MAGIC
|
||||||
|
#endif
|
25
conform/data/ctype.h-data
Normal file
25
conform/data/ctype.h-data
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
function int isalnum (int)
|
||||||
|
function int isalpha (int)
|
||||||
|
function int iscntrl (int)
|
||||||
|
function int isdigit (int)
|
||||||
|
function int isgraph (int)
|
||||||
|
function int islower (int)
|
||||||
|
function int isprint (int)
|
||||||
|
function int ispunct (int)
|
||||||
|
function int isspace (int)
|
||||||
|
function int isupper (int)
|
||||||
|
function int isxdigit (int)
|
||||||
|
function int tolower (int)
|
||||||
|
function int toupper (int)
|
||||||
|
|
||||||
|
#ifndef ISO
|
||||||
|
function int isascii (int)
|
||||||
|
function int toascii (int)
|
||||||
|
function int _toupper (int)
|
||||||
|
function int _tolower (int)
|
||||||
|
|
||||||
|
# The following is not entirely correct. It should be is[a-z]* but the
|
||||||
|
# replacement fnmatch implementation doesn't grok it.
|
||||||
|
allow is*
|
||||||
|
allow to*
|
||||||
|
#endif
|
20
conform/data/dirent.h-data
Normal file
20
conform/data/dirent.h-data
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#ifndef ISO
|
||||||
|
type DIR
|
||||||
|
|
||||||
|
type {struct dirent}
|
||||||
|
|
||||||
|
element {struct dirent} ino_t d_ino
|
||||||
|
element {struct dirent} char d_name []
|
||||||
|
|
||||||
|
type ino_t
|
||||||
|
|
||||||
|
function int closedir (DIR*)
|
||||||
|
function DIR* opendir (const char*)
|
||||||
|
function {struct dirent*} readdir (DIR*)
|
||||||
|
function int readdir_r (DIR*, struct dirent*, struct dirent**)
|
||||||
|
function void rewinddir (DIR*)
|
||||||
|
function void seekdir (DIR*, long int)
|
||||||
|
function {long int} telldir (DIR*)
|
||||||
|
|
||||||
|
allow d_*
|
||||||
|
#endif
|
11
conform/data/dlfcn.h-data
Normal file
11
conform/data/dlfcn.h-data
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
macro RTLD_LAZY
|
||||||
|
macro RTLD_NOW
|
||||||
|
macro RTLD_GLOBAL
|
||||||
|
macro RTLD_LOCAL
|
||||||
|
|
||||||
|
function {void*} dlopen (const char*, int)
|
||||||
|
function {void*} dlsym (void *, const char*)
|
||||||
|
function int dlclose (void*)
|
||||||
|
function {char*} dlerror (void)
|
||||||
|
#endif
|
87
conform/data/errno.h-data
Normal file
87
conform/data/errno.h-data
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
constant EDOM
|
||||||
|
constant EILSEQ
|
||||||
|
constant ERANGE
|
||||||
|
|
||||||
|
#ifndef ISO
|
||||||
|
constant E2BIG
|
||||||
|
constant EACCES
|
||||||
|
constant EADDRINUSE
|
||||||
|
constant EADDRNOTAVAIL
|
||||||
|
constant EAFNOSUPPORT
|
||||||
|
constant EAGAIN
|
||||||
|
constant EALREADY
|
||||||
|
constant EBADF
|
||||||
|
constant EBADMSG
|
||||||
|
constant EBUSY
|
||||||
|
constant ECANCELED
|
||||||
|
constant ECHILD
|
||||||
|
constant ECONNABORTED
|
||||||
|
constant ECONNREFUSED
|
||||||
|
constant ECONNRESET
|
||||||
|
constant EDEADLK
|
||||||
|
constant EDESTADDRREQ
|
||||||
|
constant EDQUOT
|
||||||
|
constant EEXIST
|
||||||
|
constant EFAULT
|
||||||
|
constant EFBIG
|
||||||
|
constant EHOSTUNREACH
|
||||||
|
constant EIDRM
|
||||||
|
constant EINPROGRESS
|
||||||
|
constant EINTR
|
||||||
|
constant EINVAL
|
||||||
|
constant EIO
|
||||||
|
constant EISCONN
|
||||||
|
constant EISDIR
|
||||||
|
constant ELOOP
|
||||||
|
constant EMFILE
|
||||||
|
constant EMLINK
|
||||||
|
constant EMSGSIZE
|
||||||
|
constant EMULTIHOP
|
||||||
|
constant ENAMETOOLONG
|
||||||
|
constant ENETDOWN
|
||||||
|
constant ENETUNREACH
|
||||||
|
constant ENFILE
|
||||||
|
constant ENOBUFS
|
||||||
|
constant ENODATA
|
||||||
|
constant ENODEV
|
||||||
|
constant ENOENT
|
||||||
|
constant ENOEXEC
|
||||||
|
constant ENOLCK
|
||||||
|
constant ENOLINK
|
||||||
|
constant ENOMEM
|
||||||
|
constant ENOMSG
|
||||||
|
constant ENOPROTOOPT
|
||||||
|
constant ENOSPC
|
||||||
|
constant ENOSR
|
||||||
|
constant ENOSTR
|
||||||
|
constant ENOSYS
|
||||||
|
constant ENOTCONN
|
||||||
|
constant ENOTDIR
|
||||||
|
constant ENOTEMPTY
|
||||||
|
constant ENOTSOCK
|
||||||
|
constant ENOTSUP
|
||||||
|
constant ENOTTY
|
||||||
|
constant ENXIO
|
||||||
|
constant EOPNOTSUPP
|
||||||
|
constant EOVERFLOW
|
||||||
|
constant EPERM
|
||||||
|
constant EPIPE
|
||||||
|
constant EPROTO
|
||||||
|
constant EPROTONOSUPPORT
|
||||||
|
constant EPROTOTYPE
|
||||||
|
constant EROFS
|
||||||
|
constant ESPIPE
|
||||||
|
constant ESRCH
|
||||||
|
constant ESTALE
|
||||||
|
constant ETIME
|
||||||
|
constant ETIMEDOUT
|
||||||
|
constant ETXTBSY
|
||||||
|
constant EWOULDBLOCK
|
||||||
|
constant EXDEV
|
||||||
|
|
||||||
|
# variable int errno
|
||||||
|
allow errno
|
||||||
|
|
||||||
|
allow E*
|
||||||
|
allow *_t
|
||||||
|
#endif
|
55
conform/data/fcntl.h-data
Normal file
55
conform/data/fcntl.h-data
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
constant F_DUPFD
|
||||||
|
constant F_GETFD
|
||||||
|
constant F_SETFD
|
||||||
|
constant F_GETFL
|
||||||
|
constant F_SETFL
|
||||||
|
constant F_GETLK
|
||||||
|
constant F_SETLK
|
||||||
|
constant F_SETLKW
|
||||||
|
|
||||||
|
constant FD_CLOEXEC
|
||||||
|
|
||||||
|
constant F_RDLCK
|
||||||
|
constant F_UNLCK
|
||||||
|
constant F_WRLCK
|
||||||
|
|
||||||
|
constant O_CREAT
|
||||||
|
constant O_EXCL
|
||||||
|
constant O_NOCTTY
|
||||||
|
constant O_TRUNC
|
||||||
|
|
||||||
|
constant O_APPEND
|
||||||
|
constant O_DSYNC
|
||||||
|
constant O_NONBLOCK
|
||||||
|
constant O_RSYNC
|
||||||
|
constant O_SYNC
|
||||||
|
|
||||||
|
constant O_ACCMODE
|
||||||
|
|
||||||
|
constant O_RDONLY
|
||||||
|
constant O_RDWR
|
||||||
|
constant O_WRONLY
|
||||||
|
|
||||||
|
type {struct flock}
|
||||||
|
|
||||||
|
element {struct flock} short l_type
|
||||||
|
element {struct flock} short l_whence
|
||||||
|
element {struct flock} off_t l_start
|
||||||
|
element {struct flock} off_t l_len
|
||||||
|
element {struct flock} pid_t l_pid
|
||||||
|
|
||||||
|
type mode_t
|
||||||
|
type off_t
|
||||||
|
type pid_t
|
||||||
|
|
||||||
|
function int creat (const char*, mode_t)
|
||||||
|
function int fcntl (int, int, ...)
|
||||||
|
function int open (const char*, int, ...)
|
||||||
|
|
||||||
|
allow-header sys/stat.h
|
||||||
|
allow-header unistd.h
|
||||||
|
|
||||||
|
allow *_t
|
||||||
|
allow l_*
|
||||||
|
#endif
|
39
conform/data/float.h-data
Normal file
39
conform/data/float.h-data
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
macro FLT_RADIX
|
||||||
|
|
||||||
|
constant FLT_ROUNDS
|
||||||
|
|
||||||
|
macro FLT_MANT_DIG
|
||||||
|
macro DBL_MANT_DIG
|
||||||
|
macro LDBL_MANT_DIG
|
||||||
|
|
||||||
|
macro FLT_DIG
|
||||||
|
macro DBL_DIG
|
||||||
|
macro LDBL_DIG
|
||||||
|
|
||||||
|
macro FLT_MIN_EXP
|
||||||
|
macro DBL_MIN_EXP
|
||||||
|
macro LDBL_MIN_EXP
|
||||||
|
|
||||||
|
macro FLT_MIN_10_EXP
|
||||||
|
macro DBL_MIN_10_EXP
|
||||||
|
macro LDBL_MIN_10_EXP
|
||||||
|
|
||||||
|
macro FLT_MAX_EXP
|
||||||
|
macro DBL_MAX_EXP
|
||||||
|
macro LDBL_MAX_EXP
|
||||||
|
|
||||||
|
macro FLT_MAX_10_EXP
|
||||||
|
macro DBL_MAX_10_EXP
|
||||||
|
macro LDBL_MAX_10_EXP
|
||||||
|
|
||||||
|
macro FLT_MAX
|
||||||
|
macro DBL_MAX
|
||||||
|
macro LDBL_MAX
|
||||||
|
|
||||||
|
macro FLT_EPSILON
|
||||||
|
macro DBL_EPSILON
|
||||||
|
macro LDBL_EPSILON
|
||||||
|
|
||||||
|
macro FLT_MIN
|
||||||
|
macro DBL_MIN
|
||||||
|
macro LDBL_MIN
|
60
conform/data/fmtmsg.h-data
Normal file
60
conform/data/fmtmsg.h-data
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
macro MM_HARD
|
||||||
|
constant MM_HARD
|
||||||
|
|
||||||
|
macro MM_SOFT
|
||||||
|
constant MM_SOFT
|
||||||
|
|
||||||
|
macro MM_FIRM
|
||||||
|
constant MM_FIRM
|
||||||
|
|
||||||
|
macro MM_APPL
|
||||||
|
constant MM_APPL
|
||||||
|
|
||||||
|
macro MM_UTIL
|
||||||
|
constant MM_UTIL
|
||||||
|
|
||||||
|
macro MM_OPSYS
|
||||||
|
constant MM_OPSYS
|
||||||
|
|
||||||
|
macro MM_RECOVER
|
||||||
|
constant MM_RECOVER
|
||||||
|
|
||||||
|
macro MM_NRECOV
|
||||||
|
constant MM_NRECOV
|
||||||
|
|
||||||
|
macro MM_HALT
|
||||||
|
constant MM_HALT
|
||||||
|
|
||||||
|
macro MM_ERROR
|
||||||
|
constant MM_ERROR
|
||||||
|
|
||||||
|
macro MM_WARNING
|
||||||
|
constant MM_WARNING
|
||||||
|
|
||||||
|
macro MM_INFO
|
||||||
|
constant MM_INFO
|
||||||
|
|
||||||
|
macro MM_NOSEV
|
||||||
|
constant MM_NOSEV
|
||||||
|
|
||||||
|
macro MM_PRINT
|
||||||
|
constant MM_PRINT
|
||||||
|
|
||||||
|
macro MM_CONSOLE
|
||||||
|
constant MM_CONSOLE
|
||||||
|
|
||||||
|
constant MM_NULLLBL 0
|
||||||
|
constant MM_NULLSEV 0
|
||||||
|
constant MM_NULLMC 0
|
||||||
|
constant MM_NULLTXT 0
|
||||||
|
constant MM_NULLACT 0
|
||||||
|
constant MM_NULLTAG 0
|
||||||
|
|
||||||
|
macro MM_OK
|
||||||
|
macro MM_NOTOK
|
||||||
|
macro MM_NOMSG
|
||||||
|
macro MM_NOCON
|
||||||
|
|
||||||
|
function int fmtmsg (long, const char*, int, const char*, const char*, const char*)
|
||||||
|
#endif
|
9
conform/data/fnmatch.h-data
Normal file
9
conform/data/fnmatch.h-data
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#ifndef ISO
|
||||||
|
constant FNM_NOMATCH
|
||||||
|
constant FNM_PATHNAME
|
||||||
|
constant FNM_PERIOD
|
||||||
|
constant FNM_NOESCAPE
|
||||||
|
constant FNM_NOSYS
|
||||||
|
|
||||||
|
function int fnmatch (const char*, const char*, int)
|
||||||
|
#endif
|
21
conform/data/ftw.h-data
Normal file
21
conform/data/ftw.h-data
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
type {struct FTW}
|
||||||
|
element {struct FTW} int base
|
||||||
|
element {struct FTW} int level
|
||||||
|
|
||||||
|
macro FTW_F
|
||||||
|
macro FTW_D
|
||||||
|
macro FTW_DNR
|
||||||
|
macro FTW_DP
|
||||||
|
macro FTW_NS
|
||||||
|
macro FTW_SL
|
||||||
|
macro FTW_SLN
|
||||||
|
|
||||||
|
macro FTW_PHYS
|
||||||
|
macro FTW_MOUNT
|
||||||
|
macro FTW_DEPTH
|
||||||
|
macro FTW_CHDIR
|
||||||
|
|
||||||
|
function int ftw (const char*, int (*) (const char *, const struct stat*, int), int)
|
||||||
|
function int nftw (const char*, int (*) (const char *, const struct stat*, int, FTW *), int, int)
|
||||||
|
#endif
|
25
conform/data/glob.h-data
Normal file
25
conform/data/glob.h-data
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#ifndef ISO
|
||||||
|
type glob_t
|
||||||
|
element glob_t size_t gl_pathc
|
||||||
|
element glob_t {char**} gl_pathv
|
||||||
|
element glob_t size_t gl_offs
|
||||||
|
|
||||||
|
constant GLOB_APPEND
|
||||||
|
constant GLOB_DOOFS
|
||||||
|
constant GLOB_ERR
|
||||||
|
constant GLOB_MARK
|
||||||
|
constant GLOB_NOCHECK
|
||||||
|
constant GLOB_NOESCAPE
|
||||||
|
constant GLOB_NOSORT
|
||||||
|
|
||||||
|
constant GLOB_ABORTED
|
||||||
|
constant GLOB_NOMATCH
|
||||||
|
constant GLOB_NOSPACE
|
||||||
|
constant GLOB_NOSYS
|
||||||
|
|
||||||
|
function int glob (const char*, int, int (*) (const char*, int), glob_t*)
|
||||||
|
function void globfree (glob_t)
|
||||||
|
|
||||||
|
allow gl_*
|
||||||
|
allow GLOB_*
|
||||||
|
#endif
|
22
conform/data/grp.h-data
Normal file
22
conform/data/grp.h-data
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#ifndef ISO
|
||||||
|
type {struct group}
|
||||||
|
element {struct group} {char*} gr_name
|
||||||
|
element {struct group} gid_t gr_gid
|
||||||
|
element {struct group} {char**} gr_mem
|
||||||
|
|
||||||
|
# ifndef POSIX
|
||||||
|
type gid_t
|
||||||
|
# endif
|
||||||
|
|
||||||
|
function {struct group*} getgrgid (gid_t)
|
||||||
|
function {struct group*} getgrnam (const char*)
|
||||||
|
# ifndef POSIX
|
||||||
|
function int getgrgid_r (gid_t, struct group*, char *, size_t, struct group**)
|
||||||
|
function int getgrnam_r (const char *, struct group *, char *, size_t, struct group**)
|
||||||
|
function {struct group*} getgrent (void)
|
||||||
|
function void endgrent (void)
|
||||||
|
function void setgrent (void)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
allow gr_
|
||||||
|
#endif
|
7
conform/data/iconv.h-data
Normal file
7
conform/data/iconv.h-data
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
type iconv_t
|
||||||
|
|
||||||
|
function iconv_t iconv_open (const char*, const char*)
|
||||||
|
function size_t iconv (iconv_t, char**, size_t*, char**, size_t*)
|
||||||
|
function int iconv_close (iconv_t)
|
||||||
|
#endif
|
13
conform/data/inttypes.h-data
Normal file
13
conform/data/inttypes.h-data
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
type int8_t
|
||||||
|
type int16_t
|
||||||
|
type int32_t
|
||||||
|
type int64_t
|
||||||
|
type uint8_t
|
||||||
|
type uint16_t
|
||||||
|
type uint32_t
|
||||||
|
type uint64_t
|
||||||
|
type intptr_t
|
||||||
|
type uintptr_t
|
||||||
|
|
||||||
|
allow PRI*
|
||||||
|
allow SCN*
|
11
conform/data/iso646.h-data
Normal file
11
conform/data/iso646.h-data
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
macro and
|
||||||
|
macro and_eq
|
||||||
|
macro bitand
|
||||||
|
macro bitor
|
||||||
|
macro compl
|
||||||
|
macro not
|
||||||
|
macro not_eq
|
||||||
|
macro or
|
||||||
|
macro or_eq
|
||||||
|
macro xor
|
||||||
|
macro xor_eq
|
61
conform/data/langinfo.h-data
Normal file
61
conform/data/langinfo.h-data
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
constant CODESET
|
||||||
|
constant D_T_FMT
|
||||||
|
constant D_FMT
|
||||||
|
constant T_FMT
|
||||||
|
constant T_FMT_AMPM
|
||||||
|
constant AM_STR
|
||||||
|
constant PM_STR
|
||||||
|
constant DAY_1
|
||||||
|
constant DAY_2
|
||||||
|
constant DAY_3
|
||||||
|
constant DAY_4
|
||||||
|
constant DAY_5
|
||||||
|
constant DAY_6
|
||||||
|
constant DAY_7
|
||||||
|
constant ABDAY_1
|
||||||
|
constant ABDAY_2
|
||||||
|
constant ABDAY_3
|
||||||
|
constant ABDAY_4
|
||||||
|
constant ABDAY_5
|
||||||
|
constant ABDAY_6
|
||||||
|
constant ABDAY_7
|
||||||
|
constant MON_1
|
||||||
|
constant MON_2
|
||||||
|
constant MON_3
|
||||||
|
constant MON_4
|
||||||
|
constant MON_5
|
||||||
|
constant MON_6
|
||||||
|
constant MON_7
|
||||||
|
constant MON_8
|
||||||
|
constant MON_9
|
||||||
|
constant MON_10
|
||||||
|
constant MON_11
|
||||||
|
constant MON_12
|
||||||
|
constant ABMON_1
|
||||||
|
constant ABMON_2
|
||||||
|
constant ABMON_3
|
||||||
|
constant ABMON_4
|
||||||
|
constant ABMON_5
|
||||||
|
constant ABMON_6
|
||||||
|
constant ABMON_7
|
||||||
|
constant ABMON_8
|
||||||
|
constant ABMON_9
|
||||||
|
constant ABMON_10
|
||||||
|
constant ABMON_11
|
||||||
|
constant ABMON_12
|
||||||
|
constant ERA
|
||||||
|
constant ERA_D_FMT
|
||||||
|
constant ERA_D_T_FMT
|
||||||
|
constant ERA_T_FMT
|
||||||
|
constant ALT_DIGITS
|
||||||
|
constant RADIXCHAR
|
||||||
|
constant THOUSEP
|
||||||
|
constant YESEXPR
|
||||||
|
constant NOEXPR
|
||||||
|
constant CRNCYSTR
|
||||||
|
|
||||||
|
function {char*} nl_langinfo (nl_item)
|
||||||
|
|
||||||
|
allow-header nl_types.h
|
||||||
|
#endif
|
4
conform/data/libgen.h-data
Normal file
4
conform/data/libgen.h-data
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
function {char*} basename (char*)
|
||||||
|
function {char*} dirname (char*)
|
||||||
|
#endif
|
34
conform/data/locale.h-data
Normal file
34
conform/data/locale.h-data
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
type {struct lconv}
|
||||||
|
element {struct lconv} {char*} currency_symbol
|
||||||
|
element {struct lconv} {char*} decimal_point
|
||||||
|
element {struct lconv} char frac_digits
|
||||||
|
element {struct lconv} {char*} grouping
|
||||||
|
element {struct lconv} {char*} int_curr_symbol
|
||||||
|
element {struct lconv} char int_frac_digits
|
||||||
|
element {struct lconv} {char*} mon_decimal_point
|
||||||
|
element {struct lconv} {char*} mon_thousands_sep
|
||||||
|
element {struct lconv} {char*} mon_grouping
|
||||||
|
element {struct lconv} {char*} negative_sign
|
||||||
|
element {struct lconv} char n_cs_precedes
|
||||||
|
element {struct lconv} char n_sep_by_space
|
||||||
|
element {struct lconv} char n_sign_posn
|
||||||
|
element {struct lconv} {char*} positive_sign
|
||||||
|
element {struct lconv} char p_cs_precedes
|
||||||
|
element {struct lconv} char p_sep_by_space
|
||||||
|
element {struct lconv} char p_sign_pos
|
||||||
|
element {struct lconv} {char*} thousands_sep
|
||||||
|
|
||||||
|
constant NULL
|
||||||
|
|
||||||
|
macro LC_ALL
|
||||||
|
macro LC_COLLATE
|
||||||
|
macro LC_CTYPE
|
||||||
|
macro LC_MESSAGES
|
||||||
|
macro LC_MONETARY
|
||||||
|
macro LC_NUMERIC
|
||||||
|
macro LC_TIME
|
||||||
|
|
||||||
|
function {struct lconv*) localeconv (void)
|
||||||
|
function {char*} setlocale (int, const char*)
|
||||||
|
|
||||||
|
allow LC_*
|
158
conform/data/math.h-data
Normal file
158
conform/data/math.h-data
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
#if !defined ISO && !defined POSIX
|
||||||
|
constant M_E
|
||||||
|
constant M_LOG2E
|
||||||
|
constant M_LOG10E
|
||||||
|
constant M_LN2
|
||||||
|
constant M_LN10
|
||||||
|
constant M_PI
|
||||||
|
constant M_PI_2
|
||||||
|
constant M_PI_4
|
||||||
|
constant M_1_PI
|
||||||
|
constant M_2_PI
|
||||||
|
constant M_2_SQRTPI
|
||||||
|
constant M_SQRT2
|
||||||
|
constant M_SQRT1_2
|
||||||
|
|
||||||
|
constant MAXFLOAT
|
||||||
|
constant HUGE_VAL
|
||||||
|
|
||||||
|
function double acos (double)
|
||||||
|
function double asin (double)
|
||||||
|
function double atan (double)
|
||||||
|
function double atan2 (double, double)
|
||||||
|
function double ceil (double)
|
||||||
|
function double cos (double)
|
||||||
|
function double cosh (double)
|
||||||
|
function double exp (double)
|
||||||
|
function double fabs (double)
|
||||||
|
function double floor (double)
|
||||||
|
function double fmod (double, double)
|
||||||
|
function double frexp (double, int*)
|
||||||
|
function double ldexp (double, int)
|
||||||
|
function double log (double)
|
||||||
|
function double log10 (double)
|
||||||
|
function double pow (double, double)
|
||||||
|
function double sin (double)
|
||||||
|
function double sinh (double)
|
||||||
|
function double sqrt (double)
|
||||||
|
function double tan (double)
|
||||||
|
function double tanh (double)
|
||||||
|
function double erf (double)
|
||||||
|
function double erfc (double)
|
||||||
|
function double gamma (double)
|
||||||
|
function double hypot (double, double)
|
||||||
|
function double j0 (double)
|
||||||
|
function double j1 (double)
|
||||||
|
function double jn (double)
|
||||||
|
function double lgamma (double)
|
||||||
|
function double y0 (double)
|
||||||
|
function double y1 (double)
|
||||||
|
function double yn (double)
|
||||||
|
function int isnan (double)
|
||||||
|
function double acosh (double)
|
||||||
|
function double asinh (double)
|
||||||
|
function double atanh (double)
|
||||||
|
function double cbrt (double)
|
||||||
|
function double expm1 (double)
|
||||||
|
function int ilogb (double)
|
||||||
|
function double log1p (double)
|
||||||
|
function double logb (double)
|
||||||
|
function double nextafter (double, double)
|
||||||
|
function double remainder (double, double)
|
||||||
|
function double rint (double)
|
||||||
|
function double scalb (double, double)
|
||||||
|
|
||||||
|
# variable signgam
|
||||||
|
allow signgam
|
||||||
|
|
||||||
|
allow acosf
|
||||||
|
allow asinf
|
||||||
|
allow atanf
|
||||||
|
allow atan2f
|
||||||
|
allow ceilf
|
||||||
|
allow cosf
|
||||||
|
allow coshf
|
||||||
|
allow expf
|
||||||
|
allow fabsf
|
||||||
|
allow floorf
|
||||||
|
allow fmodf
|
||||||
|
allow frexpf
|
||||||
|
allow ldexpf
|
||||||
|
allow logf
|
||||||
|
allow log10f
|
||||||
|
allow powf
|
||||||
|
allow sinf
|
||||||
|
allow sinhf
|
||||||
|
allow sqrtf
|
||||||
|
allow tanf
|
||||||
|
allow tanhf
|
||||||
|
allow erff
|
||||||
|
allow erfcf
|
||||||
|
allow gammaf
|
||||||
|
allow hypotf
|
||||||
|
allow j0f
|
||||||
|
allow j1f
|
||||||
|
allow jnf
|
||||||
|
allow lgammaf
|
||||||
|
allow y0f
|
||||||
|
allow y1f
|
||||||
|
allow ynf
|
||||||
|
allow isnanf
|
||||||
|
allow acoshf
|
||||||
|
allow asinhf
|
||||||
|
allow atanhf
|
||||||
|
allow cbrtf
|
||||||
|
allow expm1f
|
||||||
|
allow ilogbf
|
||||||
|
allow log1pf
|
||||||
|
allow logbf
|
||||||
|
allow nextafterf
|
||||||
|
allow remainderf
|
||||||
|
allow rintf
|
||||||
|
allow scalbf
|
||||||
|
|
||||||
|
allow acosl
|
||||||
|
allow asinl
|
||||||
|
allow atanl
|
||||||
|
allow atan2l
|
||||||
|
allow ceill
|
||||||
|
allow cosl
|
||||||
|
allow coshl
|
||||||
|
allow expl
|
||||||
|
allow fabsl
|
||||||
|
allow floorl
|
||||||
|
allow fmodl
|
||||||
|
allow frexpl
|
||||||
|
allow ldexpl
|
||||||
|
allow logl
|
||||||
|
allow log10l
|
||||||
|
allow powl
|
||||||
|
allow sinl
|
||||||
|
allow sinhl
|
||||||
|
allow sqrtl
|
||||||
|
allow tanl
|
||||||
|
allow tanhl
|
||||||
|
allow erfl
|
||||||
|
allow erfcl
|
||||||
|
allow gammal
|
||||||
|
allow hypotl
|
||||||
|
allow j0l
|
||||||
|
allow j1l
|
||||||
|
allow jnl
|
||||||
|
allow lgammal
|
||||||
|
allow y0l
|
||||||
|
allow y1l
|
||||||
|
allow ynl
|
||||||
|
allow isnanl
|
||||||
|
allow acoshl
|
||||||
|
allow asinhl
|
||||||
|
allow atanhl
|
||||||
|
allow cbrtl
|
||||||
|
allow expm1l
|
||||||
|
allow ilogbl
|
||||||
|
allow log1pl
|
||||||
|
allow logbl
|
||||||
|
allow nextafterl
|
||||||
|
allow remainderl
|
||||||
|
allow rintl
|
||||||
|
allow scalbl
|
Reference in New Issue
Block a user