comparison packages/language/c/libc/current/cdl/libc.cdl @ 76:435cced73e2f ecos-v1_3_1-release

eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
author jlarmour
date Tue, 28 Mar 2000 14:10:45 +0000
parents
children 6736c52df507
comparison
equal deleted inserted replaced
75:41bf073c0c32 76:435cced73e2f
1 # ====================================================================
2 #
3 # libc.cdl
4 #
5 # C library 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): bartv
35 # Original data: jlarmour
36 # Contributors:
37 # Date: 1999-06-13
38 #
39 #####DESCRIPTIONEND####
40 #
41 # ====================================================================
42
43 cdl_package CYGPKG_LIBC {
44 display "C library"
45 description "
46 This package enables compatibility with the ISO
47 C standard - ISO/IEC 9899:1990. This allows the
48 user application to use well known standard
49 C library functions, and in eCos starts a
50 thread to invoke the user function main()"
51 doc redirect/the-iso-standard-c-and-math-libraries.html
52 compile ctype/isalnum.cxx ctype/isalpha.cxx ctype/iscntrl.cxx \
53 ctype/isdigit.cxx ctype/isgraph.cxx ctype/islower.cxx \
54 ctype/isprint.cxx ctype/ispunct.cxx ctype/isspace.cxx \
55 ctype/isupper.cxx ctype/isxdigit.cxx ctype/tolower.cxx \
56 ctype/toupper.cxx \
57 \
58 errno/errno.cxx \
59 \
60 i18n/locale.cxx \
61 \
62 setjmp/longjmp.cxx \
63 \
64 signal/raise.cxx signal/siginit.cxx \
65 signal/signal.cxx \
66 \
67 stdio/common/fclose.cxx stdio/common/fflush.cxx \
68 stdio/common/fopen.cxx stdio/common/freopen.cxx \
69 stdio/common/setvbuf.cxx stdio/common/snprintf.cxx \
70 stdio/common/sprintf.cxx stdio/common/sscanf.cxx \
71 stdio/common/stderr.cxx stdio/common/stdin.cxx \
72 stdio/common/stdiofiles.cxx \
73 stdio/common/stdioinlines.cxx stdio/common/stdiosupp.cxx \
74 stdio/common/stdout.cxx stdio/common/stream.cxx \
75 stdio/common/streambuf.cxx stdio/common/ungetc.cxx \
76 stdio/common/vsnprintf.cxx stdio/common/vsscanf.cxx \
77 stdio/input/fgetc.cxx stdio/input/fgets.cxx \
78 stdio/input/fread.cxx stdio/input/fscanf.cxx \
79 stdio/input/gets.cxx stdio/input/scanf.cxx \
80 stdio/input/vfscanf.cxx stdio/output/fnprintf.cxx \
81 stdio/output/fprintf.cxx stdio/output/fputc.cxx \
82 stdio/output/fputs.cxx stdio/output/fwrite.cxx \
83 stdio/output/printf.cxx stdio/output/vfnprintf.cxx \
84 \
85 stdlib/_exit.cxx stdlib/abort.cxx stdlib/abs.cxx \
86 stdlib/atexit.cxx stdlib/atof.cxx stdlib/atoi.cxx \
87 stdlib/atol.cxx stdlib/bsearch.cxx stdlib/div.cxx \
88 stdlib/exit.cxx stdlib/getenv.cxx stdlib/itoa.cxx \
89 stdlib/labs.cxx stdlib/ldiv.cxx stdlib/malloc.cxx \
90 stdlib/qsort.cxx stdlib/rand.cxx stdlib/strtod.cxx \
91 stdlib/strtol.cxx stdlib/strtoul.cxx stdlib/system.cxx \
92 \
93 string/memchr.cxx string/memcmp.cxx string/memmove.cxx \
94 string/strcat.cxx string/strchr.cxx string/strcmp.cxx \
95 string/strcoll.cxx string/strcpy.cxx string/strcspn.cxx \
96 string/strlen.cxx string/strncat.cxx string/strncmp.cxx \
97 string/strncpy.cxx string/strpbrk.cxx string/strrchr.cxx \
98 string/strspn.cxx string/strstr.cxx string/strsuppt.cxx \
99 string/strtok.cxx string/strxfrm.cxx \
100 \
101 support/cstartup.cxx support/environ.cxx \
102 support/invokemain.cxx support/main.cxx \
103 support/mainthread.cxx \
104 \
105 time/asctime.cxx time/asctime_r.cxx time/clock.cxx \
106 time/ctime.cxx time/ctime_r.cxx time/difftime.cxx \
107 time/gmtime.cxx time/gmtime_r.cxx time/localtime.cxx \
108 time/localtime_r.cxx time/mktime.cxx time/settime.cxx \
109 time/strftime.cxx time/time.cxx time/timeutil.cxx
110
111
112 cdl_option CYGIMP_LIBC_CTYPE_INLINES {
113 display "Inline versions of <ctype.h> functions"
114 default_value 1
115 description "
116 This option chooses whether the simple character
117 classification and conversion functions (e.g.
118 isupper(), isalpha(), toupper(), etc.)
119 from <ctype.h> are available as inline
120 functions. This may improve performance and as
121 the functions are small, may even improve code
122 size."
123 }
124
125 # STRING CONFIGURATION OPTIONS
126 cdl_component CYGPKG_LIBC_STRING {
127 display "String functions"
128 flavor none
129 description "
130 Options associated with the standard string functions"
131
132 script string.cdl
133 }
134
135 # SETJMP CONFIGURATION OPTIONS
136 cdl_option CYGIMP_LIBC_SETJMP_INLINES {
137 display "Inline version of the longjmp() function"
138 default_value 1
139 description "
140 This option chooses whether the longjmp() function
141 is available as an inline function. This may
142 improve performance, and as the function is small
143 may even improve code size. "
144 }
145
146 # STDLIB CONFIGURATION OPTIONS
147 cdl_component CYGPKG_LIBC_STDLIB {
148 display "Standard utility functions"
149 flavor none
150 description "
151 Options associated with the standard utility functions in <stdlib.h>"
152
153 script stdlib.cdl
154 }
155
156 # STDIO CONFIGURATION OPTIONS
157 cdl_component CYGPKG_LIBC_STDIO {
158 display "Standard input/output functions"
159 flavor bool
160 requires CYGPKG_IO
161 requires CYGPKG_IO_SERIAL_HALDIAG
162 default_value 1
163 description "
164 This enables support for standard I/O functions from <stdio.h>."
165
166 script stdio.cdl
167 }
168
169
170 # INTERNATIONALIZATION AND LOCALIZATION OPTIONS
171 cdl_option CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE {
172 display "Size of locale name strings"
173 flavor data
174 legal_values 2 to 0x7fffffff
175 default_value 16
176 description "
177 This option controls the maximum size of
178 locale names and is used, among other things
179 to instantiate a static string used
180 as a return value from the
181 setlocale() function. When requesting the
182 current locale settings with LC_ALL, a string
183 must be constructed to contain this data, rather
184 than just returning a constant string. This
185 string data is stored in the static string.
186 This depends on the length of locale names,
187 hence this option. If just the C locale is
188 present, this option can be set as low as 2."
189 }
190
191 # SIGNAL CONFIGURATION OPTIONS
192 cdl_component CYGPKG_LIBC_SIGNALS {
193 display "Signals"
194 flavor bool
195 default_value 1
196 description "
197 This component controls signal functionality,
198 as implemented in ISO C chapter 7.7 with the
199 signal() and raise() functions. As well as
200 allowing a program to send itself signals, it is
201 also possible to cause hardware exceptions to
202 be signalled to the program in a similar way."
203
204 script signals.cdl
205 }
206
207
208 # STARTUP OPTIONS
209 cdl_component CYGPKG_LIBC_STARTUP {
210 display "ISO C startup/termination"
211 flavor none
212 doc redirect/c-library-startup.html
213 description "
214 This component manages the control of the
215 environment (in the general sense) that the
216 C library provides for use for full ISO C
217 compatibility, including a main() entry point
218 supplied with arguments and an environment
219 (as retrievable by the getenv() function).
220 It also includes at the other end of things,
221 what happens when main() returns or exit() is
222 called."
223
224 script startup.cdl
225 }
226
227 # ERRNO OPTIONS
228 cdl_component CYGPKG_LIBC_ERRNO {
229 display "errno"
230 flavor none
231 description "
232 This package controls the behaviour of the
233 errno variable (or more strictly, expression)
234 from <errno.h>."
235
236 cdl_option CYGSEM_LIBC_PER_THREAD_ERRNO {
237 display "Per-thread errno"
238 requires CYGVAR_KERNEL_THREADS_DATA
239 default_value 1
240 description "
241 This option controls whether the standard error
242 code reporting variable errno is a per-thread
243 variable, rather than global. Enabling this
244 option will use one slot of kernel per-thread data.
245 You should ensure you have enough slots configured
246 for all your per-thread data."
247 }
248
249 cdl_option CYGNUM_LIBC_ERRNO_TRACE_LEVEL {
250 display "Tracing level"
251 flavor data
252 legal_values 0 to 1
253 default_value 0
254 description "
255 Trace verbosity level for debugging the errno
256 retrieval mechanism in errno.cxx. Increase this
257 value to get additional trace output."
258 }
259 }
260
261 # TIME OPTIONS
262 cdl_component CYGPKG_LIBC_TIME {
263 display "Date/time"
264 flavor none
265 description "
266 Options for date and time related functions from <time.h>"
267
268 script time.cdl
269 }
270
271 define_proc {
272 puts $::cdl_header "/***** proc output start *****/"
273 puts $::cdl_header "#include <pkgconf/system.h>"
274
275 # MISCELLANEOUS DEFINES
276 # These are not really adjustable by the user. Do not change these unless
277 # you know what you are doing!
278
279 # How to define inline functions
280 puts $::cdl_header "#define CYGPRI_LIBC_INLINE extern __inline__"
281
282 # The following isn't supported yet - I'm leaving it for now
283 puts $::cdl_header "#ifdef __GNUC__xxxxxx"
284 puts $::cdl_header "# define CYGPRI_LIBC_ATTRIB_FORMAT_STRFTIME __attribute__ ((format (strftime, 3)))"
285 puts $::cdl_header "#else"
286 puts $::cdl_header "# define CYGPRI_LIBC_ATTRIB_FORMAT_STRFTIME"
287 puts $::cdl_header "#endif"
288
289 # The following are only for compatibility, and will
290 # eventually be removed once they are eliminated entirely from
291 # the code base
292 puts $::cdl_header "#define CYGPRI_LIBC_WEAK CYGBLD_ATTRIB_WEAK"
293
294 # How to define aliases
295 puts $::cdl_header "#define CYGPRI_LIBC_ALIAS(__symbol__) __attribute__ ((alias (__symbol__)))"
296
297 puts $::cdl_header "# define CYGPRI_LIBC_WEAK_ALIAS(__symbol__) CYGBLD_ATTRIB_WEAK CYGPRI_LIBC_ALIAS(__symbol__)"
298
299 # How to define functions that don't return
300 puts $::cdl_header "#define CYGPRI_LIBC_NORETURN CYGBLD_ATTRIB_NORET"
301 puts $::cdl_header "/****** proc output end ******/"
302 }
303
304 cdl_component CYGPKG_LIBC_OPTIONS {
305 display "C library build options"
306 flavor none
307 description "
308 Package specific build options including control over
309 compiler flags used only in building this package,
310 and details of which tests are built."
311
312
313 cdl_option CYGPKG_LIBC_CFLAGS_ADD {
314 display "Additional compiler flags"
315 flavor data
316 no_define
317 default_value { "" }
318 description "
319 This option modifies the set of compiler flags for
320 building the C library. These flags are used in addition
321 to the set of global flags."
322 }
323
324 cdl_option CYGPKG_LIBC_CFLAGS_REMOVE {
325 display "Supressed compiler flags"
326 flavor data
327 no_define
328 default_value { "" }
329 description "
330 This option modifies the set of compiler flags for
331 building the C library. These flags are removed from
332 the set of global flags if present."
333 }
334
335 cdl_option CYGPKG_LIBC_TESTS {
336 display "C library tests"
337 flavor data
338 no_define
339 calculated { "tests/ctype/ctype tests/i18n/setlocale tests/setjmp/setjmp tests/signal/signal1 tests/signal/signal2 tests/stdio/sprintf1 tests/stdio/sprintf2 tests/stdio/sscanf tests/stdio/stdiooutput tests/stdlib/abs tests/stdlib/atexit tests/stdlib/atoi tests/stdlib/atol tests/stdlib/bsearch tests/stdlib/div tests/stdlib/getenv tests/stdlib/labs tests/stdlib/ldiv tests/stdlib/qsort tests/stdlib/malloc1 tests/stdlib/malloc2 tests/stdlib/malloc3 tests/stdlib/rand1 tests/stdlib/rand2 tests/stdlib/rand3 tests/stdlib/rand4 tests/stdlib/realloc tests/stdlib/srand tests/stdlib/strtol tests/stdlib/strtoul tests/string/memchr tests/string/memcmp1 tests/string/memcmp2 tests/string/memcpy1 tests/string/memcpy2 tests/string/memmove1 tests/string/memmove2 tests/string/memset tests/string/strcat1 tests/string/strcat2 tests/string/strchr tests/string/strcmp1 tests/string/strcmp2 tests/string/strcoll1 tests/string/strcoll2 tests/string/strcpy1 tests/string/strcpy2 tests/string/strcspn tests/string/strcspn tests/string/strlen tests/string/strncat1 tests/string/strncat2 tests/string/strncpy1 tests/string/strncpy2 tests/string/strpbrk tests/string/strrchr tests/string/strspn tests/string/strstr tests/string/strtok tests/string/strxfrm1 tests/string/strxfrm2 tests/time/asctime tests/time/clock tests/time/ctime tests/time/gmtime tests/time/localtime tests/time/mktime tests/time/strftime tests/time/time" }
340 description "
341 This option specifies the set of tests for the C library."
342 }
343 }
344 }