annotate packages/language/c/libm/current/include/pkgconf/libm.h @ 64:c38311975d4f ecos-sw-2000-01-28

Merge from eCos master repository on 2000-01-28-04:28:11-GMT
author jlarmour
date Fri, 28 Jan 2000 04:59:39 +0000
parents 755351606154
children bf00f99aec69
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_PKGCONF_LIBM_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 #define CYGONCE_PKGCONF_LIBM_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
5 // libm.h
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
6 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 // Configuration header for mathematical function library
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
8 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
9 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
10 //####COPYRIGHTBEGIN####
64
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
11 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
12 // -------------------------------------------
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
13 // The contents of this file are subject to the Red Hat eCos Public License
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
14 // Version 1.0 (the "License"); you may not use this file except in
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
15 // compliance with the License. You may obtain a copy of the License at
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
16 // http://sourceware.cygnus.com/ecos
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
17 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
18 // Software distributed under the License is distributed on an
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
19 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
20 // License for the specific language governing rights and limitations under
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
21 // the License.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
22 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
23 // The Original Code is eCos - Embedded Configurable Operating System,
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
24 // released September 30, 1998.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
25 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
26 // The Initial Developer of the Original Code is Red Hat.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
27 // Portions created by Red Hat are
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
28 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
29 // All Rights Reserved.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
30 // -------------------------------------------
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 56
diff changeset
31 //
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
32 //####COPYRIGHTEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
33 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
34 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
35 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
36 // Author(s): jlarmour
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
37 // Contributors: jlarmour
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
38 // Date: 1998-02-13
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
39 // Purpose: Configuration of the standard mathematical function library
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 // Description: Configuration header for mathematical function library
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 // Usage: #include <pkgconf/libm.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50 // A NOTE ON COMPATIBILITY MODES
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52 // This math library is capable of being operated in several different
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53 // compatibility modes. These options deal solely with how errors are
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 // handled.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
56 // There are 4 compatibility modes: ANSI/POSIX 1003.1; IEEE-754; X/Open
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57 // Portability Guide issue 3 (XPG3); and System V Interface Definition
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58 // Edition 3.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60 // In IEEE mode, the matherr() function (see below) is never called, no
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61 // warning messages are printed on the stderr output stream, and errno is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 // never set.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64 // In ANSI/POSIX mode, errno is set correctly, but matherr() is never
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65 // called and no warning messages are printed on the stderr output stream.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 // In X/Open mode, errno is set correctly, matherr() is called, but no
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68 // warning messages are printed on the stderr output stream.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 // In SVID mode, functions which overflow return a value "HUGE" (defined in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71 // math.h), which is the maximum single precision floating point value
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 // (as opposed to HUGE_VAL which is meant to stand for infinity). errno is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73 // set correctly and matherr() is called. If matherr() returns 0, warning
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74 // messages are printed on the stderr output stream for some errors.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 // The mode can be compiled-in as IEEE-only, or any one of the above
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77 // methods settable at run-time. See the configuration options below for
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78 // more.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82 // MATHERR()
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 // As said, in X/Open or SVID modes, the user can supply a function
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 // matherr() of the form:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 // int matherr( struct exception * );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 // where:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90 // struct exception {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 // int type;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92 // char *name;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 // double arg1, arg2, retval;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94 // };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96 // - type is the exception type and is one of:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 // DOMAIN - argument domain exception
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 // SING - argument singularity
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99 // OVERFLOW - overflow range exception
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100 // UNDERFLOW - underflow range exception
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101 // TLOSS - total loss of significance
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102 // PLOSS - partial loss of significance
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104 // - name is a string containing the name of the function
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105 // - arg1 and arg2 are the arguments passed to the function
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106 // - retval is the default value that will be returned by the function, and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 // can be changed by matherr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109 // matherr must have "C" linkage, not C++
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111 // If matherr returns zero, or the user doesn't supply their own matherr,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 // then the following _usually_ happens in SVID mode:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 // If type is:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115 // DOMAIN - 0.0 returned, errno=EDOM, and a message printed on stderr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116 // SING - HUGE of appropriate sign is returned, errno=EDOM, and a
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117 // message is printed on stderr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 // OVERFLOW - HUGE of appropriate sign is returned, and errno=ERANGE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 // UNDERFLOW - 0.0 is returned and errno=ERANGE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 // TLOSS - 0.0 is returned, errno=ERANGE, and a message is printed on
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121 // stderr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122 // PLOSS - The current implementation doesn't return this type
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 // X/Open mode is similar except that the message is not printed on stderr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 // and HUGE_VAL is used in place of HUGE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
127 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
129 // THREAD-SAFETY AND RE-ENTRANCY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 // With the appropriate configuration options set below, the math library
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 // is fully thread-safe if:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 // - Depending on the compatibility mode, the setting of the errno variable
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135 // from the C library is thread-safe
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 // - Depending on the compatibility mode, sending error messages to the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138 // stderr output stream using the C library fputs() function is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 // thread-safe
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 // - Depending on the compatibility mode, the user-supplied matherr()
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142 // function and anything it depends on are thread-safe
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 // In addition, with the exception of the gamma*() and lgamma*() functions,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145 // the math library is re-entrant (and thus safe to use from interrupt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 // handlers) if the Math library is always in IEEE mode
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150 // Also note that this math library assumes the hardware (or software
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 // floating point emulation) supports IEEE-754 style arithmetic, 32-bit
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152 // 2's complement integer arithmetic, doubles are in 64-bit
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153 // IEEE-754 format.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 // INCLUDES
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160 // Include system configuration file to work out whether the Math library
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 // is to be included at all
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162 #include <pkgconf/system.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 // We want to check if the kernel supports per-thread data
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165 #ifdef CYGPKG_KERNEL
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 # include <pkgconf/kernel.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 {{CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 cdl_package CYGPKG_LIBM {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
173 display "Math library"
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
174 description "ISO standard floating point mathematical library
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175 containing many useful functions for mathematical
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 calculations."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177 type boolean
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 requires CYGPKG_ERROR
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
179 doc ref/ecos-ref/the-iso-standard-c-and-math-libraries.html
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181 }}CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
183 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 // TYPE DEFINITIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187 // Compatibility mode selector - required for default below
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 typedef enum {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 CYGNUM_LIBM_COMPAT_UNINIT= 0, // Default state. DO NOT set it to this
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 CYGNUM_LIBM_COMPAT_POSIX = 1, // ANSI/POSIX 1003.1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 CYGNUM_LIBM_COMPAT_IEEE = 2, // IEEE-754
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 CYGNUM_LIBM_COMPAT_XOPEN = 3, // X/OPEN Portability guide issue 3
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194 // (XPG3)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
195 CYGNUM_LIBM_COMPAT_SVID = 4 // System V Interface Definition 3rd
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196 // edition
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 } Cyg_libm_compat_t;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202 // COMPATIBILITY-MODE RELATED CONFIGURATION OPTIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 {{CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
207 cdl_component CYGPKG_LIBM_COMPATIBILITY {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 display "Compatibility mode"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209 description "These options deal with behaviour related to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210 the various compatibility modes - POSIX, IEEE,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 X/OPEN and SVID."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212 doc ref/ecos-ref/math-library-compatibility-modes.html
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 type dummy
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214 parent CYGPKG_LIBM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
217 cdl_option CYGSEM_LIBM_COMPAT_IEEE_ONLY {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
218 display "IEEE-only"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219 description "The math library can be hard-coded to only
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220 behave in one compatibility mode - IEEE. This
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 cannot be changed at run-time. IEEE mode is the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 most minimal of the compatibility modes, and so
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 this will best help code size and speed, as well
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 as omitting the code for other compatibility
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225 modes. If not defined, the math library can be
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 set at run-time to any of the supported
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227 compatibility modes."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 type radio
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229 parent CYGPKG_LIBM_COMPATIBILITY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
230 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 cdl_component CYGPKG_LIBM_COMPATIBILITY_DEFAULT {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233 display "Default mode"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 description "If you want to have support for more than one
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235 compatibility mode settable at run-time, rather
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 than hard-coded IEEE mode, this component lets
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237 you choose which mode should be the default."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
238 type radio
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
239 parent CYGPKG_LIBM_COMPATIBILITY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
240 requires CYGPKG_LIBC
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
241 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
243 cdl_option CYGNUM_LIBM_COMPATIBILITY_POSIX {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
244 display "POSIX"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
245 description "This sets the default compatibility mode to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246 POSIX"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
247 type radio
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
248 parent CYGPKG_LIBM_COMPATIBILITY_DEFAULT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 cdl_option CYGNUM_LIBM_COMPATIBILITY_IEEE {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 display "IEEE"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 description "This sets the default compatibility mode to IEEE"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254 type radio
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255 parent CYGPKG_LIBM_COMPATIBILITY_DEFAULT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 cdl_option CYGNUM_LIBM_COMPATIBILITY_XOPEN {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 display "X/OPEN"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 description "This sets the default compatibility mode to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 X/OPEN"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 type radio
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263 parent CYGPKG_LIBM_COMPATIBILITY_DEFAULT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266 cdl_option CYGNUM_LIBM_COMPATIBILITY_SVID {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 display "SVID"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268 description "This sets the default compatibility mode to SVID"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269 type radio
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270 parent CYGPKG_LIBM_COMPATIBILITY_DEFAULT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
273 cdl_option CYGFUN_LIBM_SVID3_scalb {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
274 display "SVID3-style scalb()"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
275 description "SVID3 defined the scalb() function as double
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
276 scalb(double, double) rather than double
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
277 scalb(double, int) which is used by IBM, DEC, and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
278 probably others. Enabling this option chooses
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
279 the (double, double) version. Note there is a
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280 function double scalbn(double, int) which is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
281 unaffected by this choice."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
282 type boolean
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283 parent CYGPKG_LIBM_COMPATIBILITY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
284 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
285
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
286 cdl_option CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
287 display "Reduce namespace pollution"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
288 description "If you do not want to use either the X/Open or
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
289 SVID3 compatibility modes, you may want to define
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
290 this option to reduce the chance of namespace
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
291 pollution. This is particularly likely to occur
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
292 here as these standards define symbols with
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
293 names that often appear in applications, such as
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
294 exception, DOMAIN, OVERFLOW, etc. If your
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295 application also used these names, it may cause
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 problems."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297 type boolean
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
298 parent CYGPKG_LIBM_COMPATIBILITY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
299 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
300
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
301 cdl_option CYGSEM_LIBM_USE_STDERR {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 display "Output to stderr for math errors"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303 description "The SVID3 standard says that error
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304 messages should be output on the stderr console
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305 output stream. This option allows this ability
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 to be explicitly controlled. However, this still
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307 only has an effect in SVID3 compatibility mode."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
308 type boolean
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
309 requires !CYGSEM_LIBM_COMPAT_IEEE_ONLY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310 requires CYGPKG_LIBC_STDIO
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311 parent CYGPKG_LIBM_COMPATIBILITY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
314 }}CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
315 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
316
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
317 #undef CYGSEM_LIBM_COMPAT_IEEE_ONLY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
318 #define CYGPKG_LIBM_COMPATIBILITY_DEFAULT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
319
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
320 #ifdef CYGPKG_LIBM_COMPATIBILITY_DEFAULT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321 # ifndef CYGPKG_LIBC
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
322 # error You must include the libc package if enabling \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
323 CYGPKG_LIBM_COMPATIBILITY_DEFAULT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324 # endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
326
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
327 #define CYGNUM_LIBM_COMPATIBILITY_POSIX
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
328 #undef CYGNUM_LIBM_COMPATIBILITY_IEEE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
329 #undef CYGNUM_LIBM_COMPATIBILITY_XOPEN
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
330 #undef CYGNUM_LIBM_COMPATIBILITY_SVID
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
331
56
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
332 #undef CYGNUM_LIBM_COMPAT_DEFAULT /* this is for permtest to find! */
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
333
56
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
334 #ifndef CYGNUM_LIBM_COMPAT_DEFAULT
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
335 # if defined(CYGPKG_LIBM_COMPATIBILITY_DEFAULT)
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
336 # if defined(CYGNUM_LIBM_COMPATIBILITY_POSIX)
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
337 # define CYGNUM_LIBM_COMPAT_DEFAULT CYGNUM_LIBM_COMPAT_POSIX
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
338 # elif defined(CYGNUM_LIBM_COMPATIBILITY_IEEE)
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
339 # define CYGNUM_LIBM_COMPAT_DEFAULT CYGNUM_LIBM_COMPAT_IEEE
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
340 # elif defined(CYGNUM_LIBM_COMPATIBILITY_XOPEN)
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
341 # define CYGNUM_LIBM_COMPAT_DEFAULT CYGNUM_LIBM_COMPAT_XOPEN
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
342 # elif defined(CYGNUM_LIBM_COMPATIBILITY_SVID)
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
343 # define CYGNUM_LIBM_COMPAT_DEFAULT CYGNUM_LIBM_COMPAT_SVID
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
344 # else
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
345 # error Configuration broken - no default mode set
755351606154 Merge from eCos master repository on 1999-12-01-18:03:05-GMT
jlarmour
parents: 2
diff changeset
346 # endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
347 # endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
348 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
349
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
350 #define CYGFUN_LIBM_SVID3_scalb
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
351
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
352 #undef CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
353
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
354 #undef CYGSEM_LIBM_USE_STDERR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
355
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
356 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
358 // THREAD-SAFETY CONFIGURATION OPTIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361 {{CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
362
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 cdl_component CYGPKG_LIBM_THREAD_SAFETY {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
364 display "Thread safety"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
365 description "This option controls whether the C library has
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
366 support for thread safe operation in general.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367 This requires eCos kernel support for per-thread
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
368 data, and adjustment of the stack limit."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
369 type dummy
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
370 parent CYGPKG_LIBM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
371 doc ref/ecos-ref/c-and-math-library-overview-thread-safety.html
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
372 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
373
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
374 cdl_option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
375 display "Compatibility mode setting"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
376 description "This option makes the setting of the compatiblity
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
377 mode be a per-thread property. This directly
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
378 implies that it also becomes thread-safe."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379 requires !CYGSEM_LIBM_COMPAT_IEEE_ONLY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
380 requires CYGVAR_KERNEL_THREADS_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
381 parent CYGPKG_LIBM_THREAD_SAFETY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
382 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
383 }}CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
384
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
385 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
386
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
387
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
388 #ifndef CYGSEM_LIBM_COMPAT_IEEE_ONLY // irrelevant if mode is constant
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
389 #undef CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
390 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
391
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
392
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
393 #if ( defined(CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE) && \
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
394 !defined(CYGVAR_KERNEL_THREADS_DATA) )
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
395 # error The kernel must have thread-specific data \
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
396 (CYGVAR_KERNEL_THREADS_DATA) turned on for a thread-safe math library
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
397 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
398
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
399 //========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
400 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
401 // TRACING OPTIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
402
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
403 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
404 {{CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
405
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
406 cdl_component CYGPKG_LIBM_TRACE {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
407 display "Tracing output levels in Math library"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
408 description "Tracing support is useful for debugging. Some
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
409 Math library modules can be configured with
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
410 different levels of tracing verbosity. These
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
411 levels can be configured here."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
412 type boolean
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
413 requires CYGDBG_USE_TRACING
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
414 parent CYGPKG_LIBM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
415 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
416
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
417 cdl_option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
418 display "Compatibility mode get/set"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
419 description "Trace level for debugging the getting and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
420 setting of the compatibility mode when it is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
421 configured to be thread-safe."
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
422 type count
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
423 legal_values 0 to 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
424 requires CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
425 parent CYGPKG_LIBM_TRACE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
426 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
427 }}CFG_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
428
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
429 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
430
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
431 #undef CYGPKG_LIBM_TRACE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
432
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
433 #ifdef CYGPKG_LIBM_TRACE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
434
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
435 #define CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
436
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
437
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
438 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
439
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
440
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
441 #endif // CYGONCE_PKGCONF_LIBM_H multiple inclusion protection
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
442
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
443 // EOF libm.h