xref: /titanic_41/usr/src/test/libc-tests/cfg/symbols/README (revision 910382af3c2cf00ecf6a497238e49b4af0d12e0b)
1*910382afSGarrett D'Amore#
2*910382afSGarrett D'Amore# This file and its contents are supplied under the terms of the
3*910382afSGarrett D'Amore# Common Development and Distribution License ("CDDL"), version 1.0.
4*910382afSGarrett D'Amore# You may only use this file in accordance with the terms of version
5*910382afSGarrett D'Amore# 1.0 of the CDDL.
6*910382afSGarrett D'Amore#
7*910382afSGarrett D'Amore# A full copy of the text of the CDDL should have accompanied this
8*910382afSGarrett D'Amore# source.  A copy of the CDDL is also available via the Internet at
9*910382afSGarrett D'Amore# http://www.illumos.org/license/CDDL.
10*910382afSGarrett D'Amore#
11*910382afSGarrett D'Amore
12*910382afSGarrett D'Amore#
13*910382afSGarrett D'Amore# Copyright 2015 Garrett D'Amore <garrett@damore.org>
14*910382afSGarrett D'Amore#
15*910382afSGarrett D'Amore
16*910382afSGarrett D'AmoreThe configuration files in this directory are structured using the
17*910382afSGarrett D'Amoresyntax defined in the ../README file.  They make use of the compilation
18*910382afSGarrett D'Amoreenvironments declared in ../compilation.cfg, and are processed by the
19*910382afSGarrett D'Amoresymbols test.
20*910382afSGarrett D'Amore
21*910382afSGarrett D'AmoreWe have organized the files by header file, that is the tests for symbols
22*910382afSGarrett D'Amoredeclared in a header file (e.g. <unistd.h> appear in a file based on that
23*910382afSGarrett D'Amoreheader file's name (e.g. unistd_h.cfg.)  This is purely for convenience.
24*910382afSGarrett D'Amore
25*910382afSGarrett D'AmoreWithin these various declarations, we have the following field types:
26*910382afSGarrett D'Amore
27*910382afSGarrett D'Amore<envs>    This is a list of compilation environments where the symbol
28*910382afSGarrett D'Amore          should be legal.  To indicate that the symbol must not be legal
29*910382afSGarrett D'Amore          an environment group can be prefixed with "-".  For example,
30*910382afSGarrett D'Amore          "SUS+ -SUSv4+" indicates a symbol that is legal in all SUS
31*910382afSGarrett D'Amore	  environments up to SUSv3, and was removed in SUSv4 and subsequent
32*910382afSGarrett D'Amore          versions of SUS.  As you can see, we can list multiple environments
33*910382afSGarrett D'Amore          or environment groups, and we can add or remove to previous groups
34*910382afSGarrett D'Amore          with subsequent ones.
35*910382afSGarrett D'Amore
36*910382afSGarrett D'Amore<name>    This is a symbol name.  It follows the rules for C symbol names.
37*910382afSGarrett D'Amore
38*910382afSGarrett D'Amore<header>  This is a header file, for example, unistd.h.  Conventionally,
39*910382afSGarrett D'Amore          the header files used should match the file where the test is
40*910382afSGarrett D'Amore          declared.
41*910382afSGarrett D'Amore
42*910382afSGarrett D'Amore<type>    This is a C type.  Function types can be declared without their
43*910382afSGarrett D'Amore          names, e.g. "void (*)(int)".  Structures (e.g. "struct stat") and
44*910382afSGarrett D'Amore          pointer types (e.g. "pthead_t *") are legal as well.
45*910382afSGarrett D'Amore
46*910382afSGarrett D'AmoreHere are the types of declarations in these files:
47*910382afSGarrett D'Amore
48*910382afSGarrett D'Amoretype | <name> | <header> | <envs>
49*910382afSGarrett D'Amore
50*910382afSGarrett D'Amore    Tests for a C type with <name>.  The test verifies that a variable with
51*910382afSGarrett D'Amore    this type can be declared when the <header> is included.
52*910382afSGarrett D'Amore
53*910382afSGarrett D'Amorevalue | <name> | <type> | <header> | <envs>
54*910382afSGarrett D'Amore
55*910382afSGarrett D'Amore    Tests for a value named <name>, of type <type>.  The test attempts to
56*910382afSGarrett D'Amore    assign the given value to a scratch variable declared with the given
57*910382afSGarrett D'Amore    type.  The value can be a macro or other C symbol.
58*910382afSGarrett D'Amore
59*910382afSGarrett D'Amorefunc | <name> | <type> | <type> [; <type> ]... | <header> | <envs>
60*910382afSGarrett D'Amore
61*910382afSGarrett D'Amore    Tests whether a function <name>, returning the first <type>, and
62*910382afSGarrett D'Amore    taking arguments of following <type> values, is declared.  Note that
63*910382afSGarrett D'Amore    the argument types are separated by semicolons.  For varargs style
64*910382afSGarrett D'Amore    functions, leave out the ... part.  For function declarations
65*910382afSGarrett D'Amore    that have no declared arguments, either void can specified, or
66*910382afSGarrett D'Amore    the type list can be omitted.
67*910382afSGarrett D'Amore
68*910382afSGarrett D'AmoreExamples:
69*910382afSGarrett D'Amore
70*910382afSGarrett D'Amore    type | size_t | sys/types.h | ALL
71*910382afSGarrett D'Amore    value | NULL | void * | stdlib.h | ALL
72*910382afSGarrett D'Amore    func strnlen | int | const char *; int | string.h | ALL
73