Mercurial > ecos
diff 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 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/language/c/libc/stdlib/current/cdl/stdlib.cdl @@ -0,0 +1,274 @@ +# ==================================================================== +# +# stdlib.cdl +# +# C library stdlib related configuration data +# +# ==================================================================== +#####COPYRIGHTBEGIN#### +# +# ------------------------------------------- +# The contents of this file are subject to the Red Hat eCos Public License +# Version 1.1 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.redhat.com/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +# License for the specific language governing rights and limitations under +# the License. +# +# The Original Code is eCos - Embedded Configurable Operating System, +# released September 30, 1998. +# +# The Initial Developer of the Original Code is Red Hat. +# Portions created by Red Hat are +# Copyright (C) 1998, 1999, 2000 Red Hat, Inc. +# All Rights Reserved. +# ------------------------------------------- +# +#####COPYRIGHTEND#### +# ==================================================================== +######DESCRIPTIONBEGIN#### +# +# Author(s): jlarmour +# Contributors: +# Date: 2000-04-14 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + +cdl_package CYGPKG_LIBC_STDLIB { + display "ISO C library general utility functions" + description " + This package provides general utility functions in <stdlib.h> + as specified by the ISO C standard - ISO/IEC 9899:1990." + doc redirect/the-iso-standard-c-and-math-libraries.html + include_dir cyg/libc/stdlib + parent CYGPKG_LIBC + requires CYGPKG_ISOINFRA + implements CYGINT_ISO_STDLIB_STRCONV + implements CYGINT_ISO_STDLIB_ENVIRON + implements CYGINT_ISO_STDLIB_SYSTEM + implements CYGINT_ISO_BSEARCH + implements CYGINT_ISO_QSORT + implements CYGINT_ISO_ABS + implements CYGINT_ISO_DIV + requires CYGINT_ISO_CTYPE + + compile abs.cxx atox.cxx bsearch.cxx \ + div.cxx getenv.cxx qsort.cxx \ + rand.cxx strtod.cxx strtol.cxx \ + strtoul.cxx system.cxx + +# ==================================================================== + + cdl_component CYGIMP_LIBC_STDLIB_INLINES { + display "Inline versions of <stdlib.h> functions" + flavor none + no_define + description " + This option chooses whether some of the + particularly simple standard utility functions + from <stdlib.h> are available as inline + functions. This may improve performance, and as + the functions are small, may even improve code + size." + + cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS { + display "abs() / labs()" + default_value 1 + no_define + requires { CYGBLD_ISO_STDLIB_ABS_HEADER == \ + "<cyg/libc/stdlib/abs.inl>" } + } + + cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV { + display "div() / ldiv()" + default_value 1 + no_define + requires { CYGBLD_ISO_STDLIB_DIV_HEADER == \ + "<cyg/libc/stdlib/div.inl>" } + } + + cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX { + display "atof() / atoi() / atol()" + default_value 1 + no_define + requires { CYGBLD_ISO_STDLIB_STRCONV_HEADER == \ + "<cyg/libc/stdlib/atox.inl>" } + } + } + + cdl_component CYGPKG_LIBC_RAND { + display "Random number generation" + flavor none + description " + These options control the behaviour of the + functions rand(), srand() and rand_r()" + + cdl_option CYGSEM_LIBC_PER_THREAD_RAND { + display "Per-thread random seed" + requires CYGVAR_KERNEL_THREADS_DATA + default_value 0 + description " + This option controls whether the pseudo-random + number generation functions rand() and srand() + have their state recorded on a per-thread + basis rather than global. If this option is + disabled, some per-thread space can be saved. + Note there is also a POSIX-standard rand_r() + function to achieve a similar effect with user + support. Enabling this option will use one slot + of kernel per-thread data. You should ensure you + have enough slots configured for all your + per-thread data." + } + + cdl_option CYGNUM_LIBC_RAND_SEED { + display "Random number seed" + flavor data + legal_values 0 to 0x7fffffff + default_value 1 + description " + This selects the initial random number seed for + rand()'s pseudo-random number generator. For + strict ISO standard compliance, this should be 1, + as per section 7.10.2.2 of the standard." + } + + cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL { + display "Tracing level" + flavor data + legal_values 0 to 1 + default_value 0 + description " + Trace verbosity level for debugging the rand(), + srand() and rand_r() functions. Increase this + value to get additional trace output." + } + + cdl_option CYGIMP_LIBC_RAND_SIMPLEST { + display "Simplest implementation" + flavor bool + default_value 0 + implements CYGINT_ISO_RAND + description " + This provides a very simple implementation of rand() + that does not perform well with randomness in the + lower significant bits. However it is exceptionally + fast. It uses the sample algorithm from the ISO C + standard itself." + } + + cdl_option CYGIMP_LIBC_RAND_SIMPLE1 { + display "Simple implementation #1" + flavor bool + default_value 1 + implements CYGINT_ISO_RAND + description " + This provides a very simple implementation of rand() + based on the simplest implementation above. However + it does try to work around the lack of randomness + in the lower significant bits, at the expense of a + little speed." + } + + cdl_option CYGIMP_LIBC_RAND_KNUTH1 { + display "Knuth implementation #1" + flavor bool + default_value 0 + implements CYGINT_ISO_RAND + description " + This implements a slightly more complex algorithm + published in Donald E. Knuth's Art of Computer + Programming Vol.2 section 3.6 (p.185 in the 3rd ed.). + This produces better random numbers than the + simplest approach but is slower." + } + } + + cdl_option CYGFUN_LIBC_strtod { + display "Provides strtod()" + requires CYGPKG_LIBM + default_value { 0 != CYGPKG_LIBM } + implements CYGINT_ISO_STDLIB_STRCONV_FLOAT + description " + This option allows use of the utility function + strtod() (and consequently atof()) to convert + from string to double precision floating point + numbers. Disabling this option removes the + dependency on the math library package." + } + + cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL { + display "bsearch() tracing level" + flavor data + legal_values 0 to 1 + default_value 0 + description " + Trace verbosity level for debugging the <stdlib.h> + binary search function bsearch(). Increase this + value to get additional trace output." + } + + cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL { + display "qsort() tracing level" + flavor data + legal_values 0 to 1 + default_value 0 + description " + Trace verbosity level for debugging the <stdlib.h> + quicksort function qsort(). Increase this value + to get additional trace output." + } + + +# ==================================================================== + + cdl_component CYGPKG_LIBC_STDLIB_OPTIONS { + display "C library stdlib build options" + flavor none + no_define + description " + Package specific build options including control over + compiler flags used only in building this package, + and details of which tests are built." + + + cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_ADD { + display "Additional compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building this package. These flags are used in addition + to the set of global flags." + } + + cdl_option CYGPKG_LIBC_STDLIB_CFLAGS_REMOVE { + display "Suppressed compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building this package. These flags are removed from + the set of global flags if present." + } + + cdl_option CYGPKG_LIBC_STDLIB_TESTS { + display "C library stdlib tests" + flavor data + no_define + 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" } + description " + This option specifies the set of tests for this package." + } + } +} + +# ==================================================================== +# EOF stdlib.cdl
