comparison packages/language/c/libc/stdlib/current/cdl/stdlib.cdl @ 115:6ed91473a1cd ecos-sw-2000-08-21

Merge from eCos master repository on 2000-08-21-22:40:54-BST
author jlarmour
date Fri, 25 Aug 2000 17:32:38 +0000
parents
children 0d2b193a635f
comparison
equal deleted inserted replaced
114:5ad2b71d525e 115:6ed91473a1cd
1 # ====================================================================
2 #
3 # stdlib.cdl
4 #
5 # C library stdlib related configuration data
6 #
7 # ====================================================================
8 #####COPYRIGHTBEGIN####
9 #
10 # -------------------------------------------
11 # The contents of this file are subject to the Red Hat eCos Public License
12 # Version 1.1 (the "License"); you may not use this file except in
13 # compliance with the License. You may obtain a copy of the License at
14 # http://www.redhat.com/
15 #
16 # Software distributed under the License is distributed on an "AS IS"
17 # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
18 # License for the specific language governing rights and limitations under
19 # the License.
20 #
21 # The Original Code is eCos - Embedded Configurable Operating System,
22 # released September 30, 1998.
23 #
24 # The Initial Developer of the Original Code is Red Hat.
25 # Portions created by Red Hat are
26 # Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
27 # All Rights Reserved.
28 # -------------------------------------------
29 #
30 #####COPYRIGHTEND####
31 # ====================================================================
32 ######DESCRIPTIONBEGIN####
33 #
34 # Author(s): jlarmour
35 # Contributors:
36 # Date: 2000-04-14
37 #
38 #####DESCRIPTIONEND####
39 #
40 # ====================================================================
41
42 cdl_package CYGPKG_LIBC_STDLIB {
43 display "ISO C library general utility functions"
44 description "
45 This package provides general utility functions in <stdlib.h>
46 as specified by the ISO C standard - ISO/IEC 9899:1990."
47 doc redirect/the-iso-standard-c-and-math-libraries.html
48 include_dir cyg/libc/stdlib
49 parent CYGPKG_LIBC
50 requires CYGPKG_ISOINFRA
51 implements CYGINT_ISO_STDLIB_STRCONV
52 implements CYGINT_ISO_STDLIB_ENVIRON
53 implements CYGINT_ISO_STDLIB_SYSTEM
54 implements CYGINT_ISO_BSEARCH
55 implements CYGINT_ISO_QSORT
56 implements CYGINT_ISO_ABS
57 implements CYGINT_ISO_DIV
58 requires CYGINT_ISO_CTYPE
59
60 compile abs.cxx atox.cxx bsearch.cxx \
61 div.cxx getenv.cxx qsort.cxx \
62 rand.cxx strtod.cxx strtol.cxx \
63 strtoul.cxx system.cxx
64
65 # ====================================================================
66
67 cdl_component CYGIMP_LIBC_STDLIB_INLINES {
68 display "Inline versions of <stdlib.h> functions"
69 flavor none
70 no_define
71 description "
72 This option chooses whether some of the
73 particularly simple standard utility functions
74 from <stdlib.h> are available as inline
75 functions. This may improve performance, and as
76 the functions are small, may even improve code
77 size."
78
79 cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
80 display "abs() / labs()"
81 default_value 1
82 no_define
83 requires { CYGBLD_ISO_STDLIB_ABS_HEADER == \
84 "<cyg/libc/stdlib/abs.inl>" }
85 }
86
87 cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
88 display "div() / ldiv()"
89 default_value 1
90 no_define
91 requires { CYGBLD_ISO_STDLIB_DIV_HEADER == \
92 "<cyg/libc/stdlib/div.inl>" }
93 }
94
95 cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
96 display "atof() / atoi() / atol()"
97 default_value 1
98 no_define
99 requires { CYGBLD_ISO_STDLIB_STRCONV_HEADER == \
100 "<cyg/libc/stdlib/atox.inl>" }
101 }
102 }
103
104 cdl_component CYGPKG_LIBC_RAND {
105 display "Random number generation"
106 flavor none
107 description "
108 These options control the behaviour of the
109 functions rand(), srand() and rand_r()"
110
111 cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
112 display "Per-thread random seed"
113 requires CYGVAR_KERNEL_THREADS_DATA
114 default_value 0
115 description "
116 This option controls whether the pseudo-random
117 number generation functions rand() and srand()
118 have their state recorded on a per-thread
119 basis rather than global. If this option is
120 disabled, some per-thread space can be saved.
121 Note there is also a POSIX-standard rand_r()
122 function to achieve a similar effect with user
123 support. Enabling this option will use one slot
124 of kernel per-thread data. You should ensure you
125 have enough slots configured for all your
126 per-thread data."
127 }
128
129 cdl_option CYGNUM_LIBC_RAND_SEED {
130 display "Random number seed"
131 flavor data
132 legal_values 0 to 0x7fffffff
133 default_value 1
134 description "
135 This selects the initial random number seed for
136 rand()'s pseudo-random number generator. For
137 strict ISO standard compliance, this should be 1,
138 as per section 7.10.2.2 of the standard."
139 }
140
141 cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
142 display "Tracing level"
143 flavor data
144 legal_values 0 to 1
145 default_value 0
146 description "
147 Trace verbosity level for debugging the rand(),
148 srand() and rand_r() functions. Increase this
149 value to get additional trace output."
150 }
151
152 cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
153 display "Simplest implementation"
154 flavor bool
155 default_value 0
156 implements CYGINT_ISO_RAND
157 description "
158 This provides a very simple implementation of rand()
159 that does not perform well with randomness in the
160 lower significant bits. However it is exceptionally
161 fast. It uses the sample algorithm from the ISO C
162 standard itself."
163 }
164
165 cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
166 display "Simple implementation #1"
167 flavor bool
168 default_value 1
169 implements CYGINT_ISO_RAND
170 description "
171 This provides a very simple implementation of rand()
172 based on the simplest implementation above. However
173 it does try to work around the lack of randomness
174 in the lower significant bits, at the expense of a
175 little speed."
176 }
177
178 cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
179 display "Knuth implementation #1"
180 flavor bool
181 default_value 0
182 implements CYGINT_ISO_RAND
183 description "
184 This implements a slightly more complex algorithm
185 published in Donald E. Knuth's Art of Computer
186 Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
187 This produces better random numbers than the
188 simplest approach but is slower."
189 }
190 }
191
192 cdl_option CYGFUN_LIBC_strtod {
193 display "Provides strtod()"
194 requires CYGPKG_LIBM
195 default_value { 0 != CYGPKG_LIBM }
196 implements CYGINT_ISO_STDLIB_STRCONV_FLOAT
197 description "
198 This option allows use of the utility function
199 strtod() (and consequently atof()) to convert
200 from string to double precision floating point
201 numbers. Disabling this option removes the
202 dependency on the math library package."
203 }
204
205 cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
206 display "bsearch() tracing level"
207 flavor data
208 legal_values 0 to 1
209 default_value 0
210 description "
211 Trace verbosity level for debugging the <stdlib.h>
212 binary search function bsearch(). Increase this
213 value to get additional trace output."
214 }
215
216 cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
217 display "qsort() tracing level"
218 flavor data
219 legal_values 0 to 1
220 default_value 0
221 description "
222 Trace verbosity level for debugging the <stdlib.h>
223 quicksort function qsort(). Increase this value
224 to get additional trace output."
225 }
226
227
228 # ====================================================================
229
230 cdl_component CYGPKG_LIBC_STDLIB_OPTIONS {
231 display "C library stdlib build options"
232 flavor none
233 no_define
234 description "
235 Package specific build options including control over
236 compiler flags used only in building this package,
237 and details of which tests are built."
238
239
240 cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_ADD {
241 display "Additional compiler flags"
242 flavor data
243 no_define
244 default_value { "" }
245 description "
246 This option modifies the set of compiler flags for
247 building this package. These flags are used in addition
248 to the set of global flags."
249 }
250
251 cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_REMOVE {
252 display "Suppressed compiler flags"
253 flavor data
254 no_define
255 default_value { "" }
256 description "
257 This option modifies the set of compiler flags for
258 building this package. These flags are removed from
259 the set of global flags if present."
260 }
261
262 cdl_option CYGPKG_LIBC_STDLIB_TESTS {
263 display "C library stdlib tests"
264 flavor data
265 no_define
266 calculated { "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" }
267 description "
268 This option specifies the set of tests for this package."
269 }
270 }
271 }
272
273 # ====================================================================
274 # EOF stdlib.cdl