comparison packages/language/c/libc/signals/current/cdl/signals.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 ac086aa3217e
comparison
equal deleted inserted replaced
114:5ad2b71d525e 115:6ed91473a1cd
1 # ====================================================================
2 #
3 # signals.cdl
4 #
5 # C library signal 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_SIGNALS {
43 display "ISO C library signal functions"
44 description "
45 This component controls signal functionality,
46 as implemented in ISO/IEC 9899:1990 chapter 7.7 with
47 the signal() and raise() functions. As well as
48 allowing a program to send itself signals, it is
49 also possible to cause hardware exceptions to
50 be signalled to the program in a similar way."
51 doc redirect/the-iso-standard-c-and-math-libraries.html
52 include_dir cyg/libc/signals
53 parent CYGPKG_LIBC
54 implements CYGINT_ISO_SIGNAL_NUMBERS
55 implements CYGINT_ISO_SIGNAL_IMPL
56 requires { CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == \
57 "<cyg/libc/signals/signal.h>" }
58 requires { CYGBLD_ISO_SIGNAL_IMPL_HEADER == \
59 "<cyg/libc/signals/signal.h>" }
60 requires CYGPKG_ISOINFRA
61 compile raise.cxx siginit.cxx signal.cxx
62
63 # ====================================================================
64
65 cdl_option CYGSEM_LIBC_SIGNALS_THREAD_SAFE {
66 display "Thread safe signals"
67 requires CYGPKG_KERNEL
68 default_value 1
69 description "
70 Because signal handlers are global, and not
71 thread-specific (as mandated by POSIX 1003.1)
72 it is possible for multiple threads to clash
73 and corrupt data if setting the same signal
74 handler at the same time. With this option
75 enabled, a kernel mutex will be used to protect
76 the shared data."
77 }
78
79 cdl_component CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS {
80 display "Hardware exceptions cause signals"
81 flavor bool
82 requires CYGSEM_KERNEL_EXCEPTIONS_GLOBAL
83 requires CYGSEM_KERNEL_EXCEPTIONS_DECODE
84 default_value 0
85 description "
86 This causes hardware exceptions like
87 arithmetic exceptions (e.g. divide by zero)
88 or bad memory accesses to be passed through as
89 signals. It is thus possible for a program to
90 handle these exceptions in a generic way using
91 the appropriate signal handlers. The details of
92 exactly which exceptions are passed through
93 under what circumstances depend on the
94 underlying HAL implementation. Consequently it
95 must be remembered that signal handlers cannot
96 be guaranteed to be invoked in the expected
97 circumstances if you do not know about the
98 underlying HAL implementation - it is possible
99 that the architecture is unable to detect that
100 exception."
101
102 cdl_option CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS {
103 display "Chain old exception handlers"
104 requires !CYGPKG_HAL_I386_LINUX
105 default_value 1
106 description "
107 When hardware exceptions are generated, it
108 is possible to chain into the old kernel exception
109 handler before calling any registered signal
110 handler. If this is not required, disable this
111 option and only the signal handler will be
112 called when this exception occurs. Disabling
113 this option will also save some space and code
114 usage."
115 }
116 }
117
118 cdl_component CYGPKG_LIBC_SIGNALS_INLINE {
119 display "Inline versions of functions"
120 flavor none
121 description "
122 Some functions can be made inline instead of
123 being function calls. These can be set here."
124
125 cdl_option CYGIMP_LIBC_SIGNALS_RAISE_INLINE {
126 display "raise()"
127 default_value 1
128 description "
129 Enabling this option makes raise() an inline function."
130 }
131
132 cdl_option CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE {
133 display "signal()"
134 default_value 1
135 description "
136 Enabling this option makes signal() an inline function."
137 }
138 }
139
140 cdl_component CYGPKG_LIBC_SIGNALS_ERROR_HANDLING {
141 display "Error handling"
142 flavor none
143 description "
144 You may or may not want errno to be set by
145 certain functions. Not using errno could save
146 both space, code, and avoid worrying about
147 interactions between multiple threads when
148 setting it."
149
150 cdl_option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL {
151 display "Bad signal fatal"
152 requires CYGDBG_USE_ASSERTS
153 default_value 0
154 description "
155 Enabling this option will cause an assertion
156 failure if the signal handling code is
157 passed a bad signal. Otherwise an error will
158 be returned, or in the case of a
159 hardware-generated exception it will be silently
160 ignored."
161 }
162
163 cdl_option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO {
164 display "raise() sets errno"
165 requires CYGINT_ISO_ERRNO
166 requires CYGINT_ISO_ERRNO_CODES
167 default_value 1
168 description "
169 You may or may not want errno to be set by
170 raise() on error conditions. Not using errno
171 could save both space, code, and avoid worrying
172 about interactions between multiple threads when
173 setting it. Strictly ISO C does not mandate
174 that errno be set by raise()."
175 }
176
177 cdl_option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO {
178 display "signal() sets errno"
179 requires CYGINT_ISO_ERRNO
180 requires CYGINT_ISO_ERRNO_CODES
181 default_value 1
182 description "
183 You may or may not want errno to be set by
184 signal() on error conditions. Not using errno
185 could save both space, code, and avoid worrying
186 about interactions between multiple threads when
187 setting it. Strictly ISO C mandates
188 that errno be set by signal()."
189 }
190 }
191
192 cdl_component CYGPKG_LIBC_SIGNALS_TRACING {
193 display "Tracing"
194 flavor none
195 description "
196 These options control the trace output for the C
197 library internal signal implementation."
198
199 cdl_option CYGNUM_LIBC_SIGNALS_RAISE_TRACE_LEVEL {
200 display "Default trace level for raise()"
201 flavor data
202 legal_values 0 to 1
203 default_value 0
204 description "
205 This gives the default tracing level for the
206 raise() function. Higher numbers are more
207 verbose."
208 }
209
210 cdl_option CYGNUM_LIBC_SIGNALS_HWHANDLER_TRACE_LEVEL {
211 display "Default hardware exception handler trace level"
212 flavor data
213 legal_values 0 to 1
214 default_value 0
215 description "
216 This gives the default tracing level for the
217 hardware exception handler function (if enabled).
218 Higher numbers are more verbose."
219 }
220 }
221
222 # ====================================================================
223
224 cdl_component CYGPKG_LIBC_SIGNALS_OPTIONS {
225 display "C library signal functions build options"
226 flavor none
227 no_define
228 description "
229 Package specific build options including control over
230 compiler flags used only in building this package,
231 and details of which tests are built."
232
233
234 cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_ADD {
235 display "Additional compiler flags"
236 flavor data
237 no_define
238 default_value { "" }
239 description "
240 This option modifies the set of compiler flags for
241 building the C library. These flags are used in addition
242 to the set of global flags."
243 }
244
245 cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_REMOVE {
246 display "Suppressed compiler flags"
247 flavor data
248 no_define
249 default_value { "" }
250 description "
251 This option modifies the set of compiler flags for
252 building the C library. These flags are removed from
253 the set of global flags if present."
254 }
255
256 cdl_option CYGPKG_LIBC_SIGNALS_TESTS {
257 display "C library signal function tests"
258 flavor data
259 no_define
260 calculated { "tests/signal1 tests/signal2" }
261 description "
262 This option specifies the set of tests for the C library
263 signal functions."
264 }
265 }
266 }
267
268 # ====================================================================
269 # EOF signals.cdl