1 |
27 |
unneback |
# ====================================================================
|
2 |
|
|
#
|
3 |
|
|
# stdlib.cdl
|
4 |
|
|
#
|
5 |
|
|
# C library stdlib 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): jlarmour
|
44 |
|
|
# Contributors:
|
45 |
|
|
# Date: 2000-04-14
|
46 |
|
|
#
|
47 |
|
|
#####DESCRIPTIONEND####
|
48 |
|
|
#
|
49 |
|
|
# ====================================================================
|
50 |
|
|
|
51 |
|
|
cdl_package CYGPKG_LIBC_STDLIB {
|
52 |
|
|
display "ISO C library general utility functions"
|
53 |
|
|
description "
|
54 |
|
|
This package provides general utility functions in
|
55 |
|
|
as specified by the ISO C standard - ISO/IEC 9899:1990."
|
56 |
|
|
doc ref/libc.html
|
57 |
|
|
include_dir cyg/libc/stdlib
|
58 |
|
|
parent CYGPKG_LIBC
|
59 |
|
|
requires CYGPKG_ISOINFRA
|
60 |
|
|
implements CYGINT_ISO_STDLIB_STRCONV
|
61 |
|
|
implements CYGINT_ISO_STDLIB_ENVIRON
|
62 |
|
|
implements CYGINT_ISO_STDLIB_SYSTEM
|
63 |
|
|
implements CYGINT_ISO_BSEARCH
|
64 |
|
|
implements CYGINT_ISO_QSORT
|
65 |
|
|
implements CYGINT_ISO_ABS
|
66 |
|
|
implements CYGINT_ISO_DIV
|
67 |
|
|
requires CYGINT_ISO_CTYPE
|
68 |
|
|
requires CYGINT_ISO_STRING_STRFUNCS
|
69 |
|
|
|
70 |
|
|
compile abs.cxx atox.cxx bsearch.cxx \
|
71 |
|
|
div.cxx getenv.cxx qsort.cxx \
|
72 |
|
|
rand.cxx strtod.cxx strtol.cxx \
|
73 |
|
|
strtoul.cxx system.cxx
|
74 |
|
|
|
75 |
|
|
# ====================================================================
|
76 |
|
|
|
77 |
|
|
cdl_component CYGIMP_LIBC_STDLIB_INLINES {
|
78 |
|
|
display "Inline versions of functions"
|
79 |
|
|
flavor none
|
80 |
|
|
no_define
|
81 |
|
|
description "
|
82 |
|
|
This option chooses whether some of the
|
83 |
|
|
particularly simple standard utility functions
|
84 |
|
|
from are available as inline
|
85 |
|
|
functions. This may improve performance, and as
|
86 |
|
|
the functions are small, may even improve code
|
87 |
|
|
size."
|
88 |
|
|
|
89 |
|
|
cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
|
90 |
|
|
display "abs() / labs()"
|
91 |
|
|
default_value 1
|
92 |
|
|
no_define
|
93 |
|
|
requires { CYGBLD_ISO_STDLIB_ABS_HEADER == \
|
94 |
|
|
"" }
|
95 |
|
|
}
|
96 |
|
|
|
97 |
|
|
cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
|
98 |
|
|
display "div() / ldiv()"
|
99 |
|
|
default_value 1
|
100 |
|
|
no_define
|
101 |
|
|
requires { CYGBLD_ISO_STDLIB_DIV_HEADER == \
|
102 |
|
|
"" }
|
103 |
|
|
}
|
104 |
|
|
|
105 |
|
|
cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
|
106 |
|
|
display "atof() / atoi() / atol()"
|
107 |
|
|
default_value 1
|
108 |
|
|
no_define
|
109 |
|
|
requires { CYGBLD_ISO_STDLIB_STRCONV_HEADER == \
|
110 |
|
|
"" }
|
111 |
|
|
}
|
112 |
|
|
}
|
113 |
|
|
|
114 |
|
|
cdl_component CYGPKG_LIBC_RAND {
|
115 |
|
|
display "Random number generation"
|
116 |
|
|
flavor none
|
117 |
|
|
description "
|
118 |
|
|
These options control the behaviour of the
|
119 |
|
|
functions rand(), srand() and rand_r()"
|
120 |
|
|
|
121 |
|
|
cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
|
122 |
|
|
display "Per-thread random seed"
|
123 |
|
|
doc ref/libc-thread-safety.html
|
124 |
|
|
requires CYGVAR_KERNEL_THREADS_DATA
|
125 |
|
|
default_value 0
|
126 |
|
|
description "
|
127 |
|
|
This option controls whether the pseudo-random
|
128 |
|
|
number generation functions rand() and srand()
|
129 |
|
|
have their state recorded on a per-thread
|
130 |
|
|
basis rather than global. If this option is
|
131 |
|
|
disabled, some per-thread space can be saved.
|
132 |
|
|
Note there is also a POSIX-standard rand_r()
|
133 |
|
|
function to achieve a similar effect with user
|
134 |
|
|
support. Enabling this option will use one slot
|
135 |
|
|
of kernel per-thread data. You should ensure you
|
136 |
|
|
have enough slots configured for all your
|
137 |
|
|
per-thread data."
|
138 |
|
|
}
|
139 |
|
|
|
140 |
|
|
cdl_option CYGNUM_LIBC_RAND_SEED {
|
141 |
|
|
display "Random number seed"
|
142 |
|
|
flavor data
|
143 |
|
|
legal_values 0 to 0x7fffffff
|
144 |
|
|
default_value 1
|
145 |
|
|
description "
|
146 |
|
|
This selects the initial random number seed for
|
147 |
|
|
rand()'s pseudo-random number generator. For
|
148 |
|
|
strict ISO standard compliance, this should be 1,
|
149 |
|
|
as per section 7.10.2.2 of the standard."
|
150 |
|
|
}
|
151 |
|
|
|
152 |
|
|
cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
|
153 |
|
|
display "Tracing level"
|
154 |
|
|
flavor data
|
155 |
|
|
legal_values 0 to 1
|
156 |
|
|
default_value 0
|
157 |
|
|
description "
|
158 |
|
|
Trace verbosity level for debugging the rand(),
|
159 |
|
|
srand() and rand_r() functions. Increase this
|
160 |
|
|
value to get additional trace output."
|
161 |
|
|
}
|
162 |
|
|
|
163 |
|
|
cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
|
164 |
|
|
display "Simplest implementation"
|
165 |
|
|
flavor bool
|
166 |
|
|
default_value 0
|
167 |
|
|
implements CYGINT_ISO_RAND
|
168 |
|
|
description "
|
169 |
|
|
This provides a very simple implementation of rand()
|
170 |
|
|
that does not perform well with randomness in the
|
171 |
|
|
lower significant bits. However it is exceptionally
|
172 |
|
|
fast. It uses the sample algorithm from the ISO C
|
173 |
|
|
standard itself."
|
174 |
|
|
}
|
175 |
|
|
|
176 |
|
|
cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
|
177 |
|
|
display "Simple implementation #1"
|
178 |
|
|
flavor bool
|
179 |
|
|
default_value 1
|
180 |
|
|
implements CYGINT_ISO_RAND
|
181 |
|
|
description "
|
182 |
|
|
This provides a very simple implementation of rand()
|
183 |
|
|
based on the simplest implementation above. However
|
184 |
|
|
it does try to work around the lack of randomness
|
185 |
|
|
in the lower significant bits, at the expense of a
|
186 |
|
|
little speed."
|
187 |
|
|
}
|
188 |
|
|
|
189 |
|
|
cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
|
190 |
|
|
display "Knuth implementation #1"
|
191 |
|
|
flavor bool
|
192 |
|
|
default_value 0
|
193 |
|
|
implements CYGINT_ISO_RAND
|
194 |
|
|
description "
|
195 |
|
|
This implements a slightly more complex algorithm
|
196 |
|
|
published in Donald E. Knuth's Art of Computer
|
197 |
|
|
Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
|
198 |
|
|
This produces better random numbers than the
|
199 |
|
|
simplest approach but is slower."
|
200 |
|
|
}
|
201 |
|
|
}
|
202 |
|
|
|
203 |
|
|
cdl_option CYGFUN_LIBC_strtod {
|
204 |
|
|
display "Provides strtod()"
|
205 |
|
|
requires CYGPKG_LIBM
|
206 |
|
|
default_value { 0 != CYGPKG_LIBM }
|
207 |
|
|
implements CYGINT_ISO_STDLIB_STRCONV_FLOAT
|
208 |
|
|
description "
|
209 |
|
|
This option allows use of the utility function
|
210 |
|
|
strtod() (and consequently atof()) to convert
|
211 |
|
|
from string to double precision floating point
|
212 |
|
|
numbers. Disabling this option removes the
|
213 |
|
|
dependency on the math library package."
|
214 |
|
|
}
|
215 |
|
|
|
216 |
|
|
cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
|
217 |
|
|
display "bsearch() tracing level"
|
218 |
|
|
flavor data
|
219 |
|
|
legal_values 0 to 1
|
220 |
|
|
default_value 0
|
221 |
|
|
description "
|
222 |
|
|
Trace verbosity level for debugging the
|
223 |
|
|
binary search function bsearch(). Increase this
|
224 |
|
|
value to get additional trace output."
|
225 |
|
|
}
|
226 |
|
|
|
227 |
|
|
cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
|
228 |
|
|
display "qsort() tracing level"
|
229 |
|
|
flavor data
|
230 |
|
|
legal_values 0 to 1
|
231 |
|
|
default_value 0
|
232 |
|
|
description "
|
233 |
|
|
Trace verbosity level for debugging the
|
234 |
|
|
quicksort function qsort(). Increase this value
|
235 |
|
|
to get additional trace output."
|
236 |
|
|
}
|
237 |
|
|
|
238 |
|
|
|
239 |
|
|
# ====================================================================
|
240 |
|
|
|
241 |
|
|
cdl_component CYGPKG_LIBC_STDLIB_OPTIONS {
|
242 |
|
|
display "C library stdlib build options"
|
243 |
|
|
flavor none
|
244 |
|
|
no_define
|
245 |
|
|
description "
|
246 |
|
|
Package specific build options including control over
|
247 |
|
|
compiler flags used only in building this package,
|
248 |
|
|
and details of which tests are built."
|
249 |
|
|
|
250 |
|
|
|
251 |
|
|
cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_ADD {
|
252 |
|
|
display "Additional 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 used in addition
|
259 |
|
|
to the set of global flags."
|
260 |
|
|
}
|
261 |
|
|
|
262 |
|
|
cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_REMOVE {
|
263 |
|
|
display "Suppressed compiler flags"
|
264 |
|
|
flavor data
|
265 |
|
|
no_define
|
266 |
|
|
default_value { "" }
|
267 |
|
|
description "
|
268 |
|
|
This option modifies the set of compiler flags for
|
269 |
|
|
building this package. These flags are removed from
|
270 |
|
|
the set of global flags if present."
|
271 |
|
|
}
|
272 |
|
|
|
273 |
|
|
cdl_option CYGPKG_LIBC_STDLIB_TESTS {
|
274 |
|
|
display "C library stdlib tests"
|
275 |
|
|
flavor data
|
276 |
|
|
no_define
|
277 |
|
|
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" }
|
278 |
|
|
description "
|
279 |
|
|
This option specifies the set of tests for this package."
|
280 |
|
|
}
|
281 |
|
|
}
|
282 |
|
|
}
|
283 |
|
|
|
284 |
|
|
# ====================================================================
|
285 |
|
|
# EOF stdlib.cdl
|