]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/language/c/libm/v2_0/cdl/compat.cdl
Initial revision
[karo-tx-redboot.git] / packages / language / c / libm / v2_0 / cdl / compat.cdl
1 # ====================================================================
2 #
3 #      compat.cdl
4 #
5 #      Maths library compatibility related configuration data
6 #
7 # ====================================================================
8 #####ECOSGPLCOPYRIGHTBEGIN####
9 ## -------------------------------------------
10 ## This file is part of eCos, the Embedded Configurable Operating System.
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12 ##
13 ## eCos is free software; you can redistribute it and/or modify it under
14 ## the terms of the GNU General Public License as published by the Free
15 ## Software Foundation; either version 2 or (at your option) any later version.
16 ##
17 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20 ## for more details.
21 ##
22 ## You should have received a copy of the GNU General Public License along
23 ## with eCos; if not, write to the Free Software Foundation, Inc.,
24 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25 ##
26 ## As a special exception, if other files instantiate templates or use macros
27 ## or inline functions from this file, or you compile this file and link it
28 ## with other works to produce a work based on this file, this file does not
29 ## by itself cause the resulting work to be covered by the GNU General Public
30 ## License. However the source code for this file must still be made available
31 ## in accordance with section (3) of the GNU General Public License.
32 ##
33 ## This exception does not invalidate any other reasons why a work based on
34 ## this file might be covered by the GNU General Public License.
35 ##
36 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37 ## at http://sources.redhat.com/ecos/ecos-license/
38 ## -------------------------------------------
39 #####ECOSGPLCOPYRIGHTEND####
40 # ====================================================================
41 ######DESCRIPTIONBEGIN####
42 #
43 # Author(s):      jskov
44 # Original data:  jlarmour
45 # Contributors:
46 # Date:           1999-07-07
47 #
48 #####DESCRIPTIONEND####
49 #
50 # ====================================================================
51
52 cdl_interface CYGINT_LIBM_COMPAT {
53     requires 1 == CYGINT_LIBM_COMPAT
54 }
55
56 cdl_option CYGSEM_LIBM_COMPAT_IEEE_ONLY {
57     display       "IEEE-only"
58     default_value 0
59     implements    CYGINT_LIBM_COMPAT
60     description   "
61         The math library can be hard-coded to only
62         behave in one compatibility mode - IEEE. This
63         cannot be changed at run-time. IEEE mode is the
64         most minimal of the compatibility modes, and so
65         this will best help code size and speed, as well
66         as omitting the code for other compatibility
67         modes. If not defined, the math library can be
68         set at run-time to any of the supported
69         compatibility modes."
70 }
71
72 cdl_component CYGNUM_LIBM_COMPATIBILITY {
73     display       "Default mode"
74     flavor        booldata
75     requires      CYGPKG_LIBC
76     implements    CYGINT_LIBM_COMPAT
77     legal_values  { "POSIX" "IEEE" "XOPEN" "SVID" }
78     default_value { "POSIX" }
79     define        CYGPKG_LIBM_COMPATIBILITY_DEFAULT
80     description   "
81         If you want to have support for more than one
82         compatibility mode settable at run-time, rather
83         than hard-coded IEEE mode, this component lets
84         you choose which mode should be the default."
85
86     cdl_option CYGNUM_LIBM_COMPAT_DEFAULT {
87         display       "Numeric representation"
88         flavor        data
89         calculated   { \
90             CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" :\
91             CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" :\
92             CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" :\
93             CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" :\
94             "<undefined>" \
95         }
96         description     "
97             This option automatically defines the default compatibility
98             mode for numeric representation in terms of the values used
99             to set that mode at run-time."
100     }
101 }
102
103 cdl_option CYGFUN_LIBM_SVID3_scalb {
104     display       "SVID3-style scalb()"
105     default_value 1
106     description   "
107         SVID3 defined the scalb() function as double
108         scalb(double, double) rather than double
109         scalb(double, int) which is used by IBM, DEC, and
110         probably others. Enabling this option chooses
111         the (double, double) version. Note there is a
112         function double scalbn(double, int) which is
113         unaffected by this choice."
114 }
115
116 cdl_option CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION {
117     display       "Reduce namespace pollution"
118     default_value 0
119     description   "
120         If you do not want to use either the X/Open or
121         SVID3 compatibility modes, you may want to define
122         this option to reduce the chance of namespace
123         pollution. This is particularly likely to occur
124         here as these standards define symbols with
125         names that often appear in applications, such as
126         exception, DOMAIN, OVERFLOW, etc. If your
127         application also used these names, it may cause
128         problems."
129 }
130
131 cdl_option CYGSEM_LIBM_USE_STDERR {
132     display       "Output to stderr for math errors"
133     requires      !CYGSEM_LIBM_COMPAT_IEEE_ONLY
134     requires      CYGPKG_LIBC_STDIO
135     default_value 0
136     description   "
137         The SVID3 standard says that error
138         messages should be output on the stderr console
139         output stream. This option allows this ability
140         to be explicitly controlled. However, this still
141         only has an effect in SVID3 compatibility mode."
142 }