OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/rtos/ecos-2.0/packages/language/c/libm/v2_0/cdl
    from Rev 27 to Rev 174
    Reverse comparison

Rev 27 → Rev 174

/compat.cdl
0,0 → 1,142
# ====================================================================
#
# compat.cdl
#
# Maths library compatibility related configuration data
#
# ====================================================================
#####ECOSGPLCOPYRIGHTBEGIN####
## -------------------------------------------
## This file is part of eCos, the Embedded Configurable Operating System.
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
##
## eCos is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free
## Software Foundation; either version 2 or (at your option) any later version.
##
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
## for more details.
##
## You should have received a copy of the GNU General Public License along
## with eCos; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
##
## As a special exception, if other files instantiate templates or use macros
## or inline functions from this file, or you compile this file and link it
## with other works to produce a work based on this file, this file does not
## by itself cause the resulting work to be covered by the GNU General Public
## License. However the source code for this file must still be made available
## in accordance with section (3) of the GNU General Public License.
##
## This exception does not invalidate any other reasons why a work based on
## this file might be covered by the GNU General Public License.
##
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
## at http://sources.redhat.com/ecos/ecos-license/
## -------------------------------------------
#####ECOSGPLCOPYRIGHTEND####
# ====================================================================
######DESCRIPTIONBEGIN####
#
# Author(s): jskov
# Original data: jlarmour
# Contributors:
# Date: 1999-07-07
#
#####DESCRIPTIONEND####
#
# ====================================================================
 
cdl_interface CYGINT_LIBM_COMPAT {
requires 1 == CYGINT_LIBM_COMPAT
}
 
cdl_option CYGSEM_LIBM_COMPAT_IEEE_ONLY {
display "IEEE-only"
default_value 0
implements CYGINT_LIBM_COMPAT
description "
The math library can be hard-coded to only
behave in one compatibility mode - IEEE. This
cannot be changed at run-time. IEEE mode is the
most minimal of the compatibility modes, and so
this will best help code size and speed, as well
as omitting the code for other compatibility
modes. If not defined, the math library can be
set at run-time to any of the supported
compatibility modes."
}
 
cdl_component CYGNUM_LIBM_COMPATIBILITY {
display "Default mode"
flavor booldata
requires CYGPKG_LIBC
implements CYGINT_LIBM_COMPAT
legal_values { "POSIX" "IEEE" "XOPEN" "SVID" }
default_value { "POSIX" }
define CYGPKG_LIBM_COMPATIBILITY_DEFAULT
description "
If you want to have support for more than one
compatibility mode settable at run-time, rather
than hard-coded IEEE mode, this component lets
you choose which mode should be the default."
 
cdl_option CYGNUM_LIBM_COMPAT_DEFAULT {
display "Numeric representation"
flavor data
calculated { \
CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" :\
CYGNUM_LIBM_COMPATIBILITY == "IEEE" ? "CYGNUM_LIBM_COMPAT_IEEE" :\
CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" :\
CYGNUM_LIBM_COMPATIBILITY == "SVID" ? "CYGNUM_LIBM_COMPAT_SVID" :\
"<undefined>" \
}
description "
This option automatically defines the default compatibility
mode for numeric representation in terms of the values used
to set that mode at run-time."
}
}
 
cdl_option CYGFUN_LIBM_SVID3_scalb {
display "SVID3-style scalb()"
default_value 1
description "
SVID3 defined the scalb() function as double
scalb(double, double) rather than double
scalb(double, int) which is used by IBM, DEC, and
probably others. Enabling this option chooses
the (double, double) version. Note there is a
function double scalbn(double, int) which is
unaffected by this choice."
}
 
cdl_option CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION {
display "Reduce namespace pollution"
default_value 0
description "
If you do not want to use either the X/Open or
SVID3 compatibility modes, you may want to define
this option to reduce the chance of namespace
pollution. This is particularly likely to occur
here as these standards define symbols with
names that often appear in applications, such as
exception, DOMAIN, OVERFLOW, etc. If your
application also used these names, it may cause
problems."
}
 
cdl_option CYGSEM_LIBM_USE_STDERR {
display "Output to stderr for math errors"
requires !CYGSEM_LIBM_COMPAT_IEEE_ONLY
requires CYGPKG_LIBC_STDIO
default_value 0
description "
The SVID3 standard says that error
messages should be output on the stderr console
output stream. This option allows this ability
to be explicitly controlled. However, this still
only has an effect in SVID3 compatibility mode."
}
/libm.cdl
0,0 → 1,259
# ====================================================================
#
# libm.cdl
#
# Maths library configuration data
#
# ====================================================================
#####ECOSGPLCOPYRIGHTBEGIN####
## -------------------------------------------
## This file is part of eCos, the Embedded Configurable Operating System.
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
##
## eCos is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free
## Software Foundation; either version 2 or (at your option) any later version.
##
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
## for more details.
##
## You should have received a copy of the GNU General Public License along
## with eCos; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
##
## As a special exception, if other files instantiate templates or use macros
## or inline functions from this file, or you compile this file and link it
## with other works to produce a work based on this file, this file does not
## by itself cause the resulting work to be covered by the GNU General Public
## License. However the source code for this file must still be made available
## in accordance with section (3) of the GNU General Public License.
##
## This exception does not invalidate any other reasons why a work based on
## this file might be covered by the GNU General Public License.
##
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
## at http://sources.redhat.com/ecos/ecos-license/
## -------------------------------------------
#####ECOSGPLCOPYRIGHTEND####
# ====================================================================
######DESCRIPTIONBEGIN####
#
# Author(s): bartv
# Original data: jlarmour
# Contributors:
# Date: 1999-06-13
#
#####DESCRIPTIONEND####
#
# ====================================================================
 
cdl_package CYGPKG_LIBM {
display "Math library"
doc ref/libc.html
description "
ISO standard floating point mathematical library
containing many useful functions for mathematical
calculations."
 
compile misc/matherr.c misc/standard.c misc/compatmode.cxx \
misc/infconst.c \
\
double/ieee754-core/e_acos.c double/ieee754-core/e_asin.c \
double/ieee754-core/e_atan2.c double/ieee754-core/e_cosh.c \
double/ieee754-core/e_exp.c double/ieee754-core/e_fmod.c \
double/ieee754-core/e_log.c double/ieee754-core/e_log10.c \
double/ieee754-core/e_pow.c \
double/ieee754-core/e_rem_pio2.c \
double/ieee754-core/e_scalb.c double/ieee754-core/e_sinh.c \
double/ieee754-core/e_sqrt.c \
\
double/ieee754-api/w_acos.c double/ieee754-api/w_asin.c \
double/ieee754-api/w_atan2.c double/ieee754-api/w_cosh.c \
double/ieee754-api/w_exp.c double/ieee754-api/w_fmod.c \
double/ieee754-api/w_log.c double/ieee754-api/w_log10.c \
double/ieee754-api/w_pow.c double/ieee754-api/w_scalb.c \
double/ieee754-api/w_sinh.c double/ieee754-api/w_sqrt.c \
\
double/internal/k_cos.c double/internal/k_rem_pio2.c \
double/internal/k_sin.c double/internal/k_tan.c \
\
double/portable-api/s_atan.c double/portable-api/s_ceil.c \
double/portable-api/s_copysign.c \
double/portable-api/s_cos.c double/portable-api/s_expm1.c \
double/portable-api/s_fabs.c double/portable-api/s_finite.c \
double/portable-api/s_floor.c double/portable-api/s_frexp.c \
double/portable-api/s_isnan.c double/portable-api/s_ldexp.c \
double/portable-api/s_rint.c double/portable-api/s_scalbn.c \
double/portable-api/s_sin.c double/portable-api/s_tan.c \
double/portable-api/s_modf.c double/portable-api/s_tanh.c
 
 
# COMPATIBILITY-MODE RELATED CONFIGURATION OPTIONS
cdl_component CYGPKG_LIBM_COMPATIBILITY {
display "Compatibility mode"
flavor none
description "
These options deal with behaviour related to
the various compatibility modes - POSIX, IEEE,
X/OPEN and SVID."
 
script compat.cdl
}
 
# THREAD-SAFETY CONFIGURATION OPTIONS
cdl_component CYGPKG_LIBM_THREAD_SAFETY {
display "Thread safety"
flavor none
description "
This option controls whether the C library has
support for thread safe operation in general.
This requires eCos kernel support for per-thread
data, and adjustment of the stack limit."
 
cdl_option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE {
display "Compatibility mode setting"
requires !CYGSEM_LIBM_COMPAT_IEEE_ONLY
requires CYGVAR_KERNEL_THREADS_DATA
default_value 0
description "
This option makes the setting of the compatiblity
mode be a per-thread property. This directly
implies that it also becomes thread-safe."
}
 
cdl_option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS {
display "gamma() and lgamma()"
requires CYGVAR_KERNEL_THREADS_DATA
default_value 0
description "
This option makes the gamma() and lgamma()
functions be thread-safe. Note that these
functions are identical - they take the log of
the absolute value of their argument. The sign
of the argument is stored in a variable called
signgam. Enabling this option makes signgam
a per-thread variable. Note there are also
gamma_r() and lgamma_r() alternatives that
allow signgam to be passed in by reference as
an argument."
}
}
 
# TRACING OPTIONS
cdl_component CYGPKG_LIBM_TRACE {
display "Tracing output levels in math library"
flavor bool
requires CYGDBG_USE_TRACING
default_value 0
description "
Tracing support is useful for debugging. Some
Math library modules can be configured with
different levels of tracing verbosity. These
levels can be configured here."
 
 
cdl_option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL {
display "Compatibility mode get/set"
requires CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
flavor data
legal_values 0 to 1
default_value 0
description "
Trace level for debugging the getting and
setting of the compatibility mode when it is
configured to be thread-safe."
}
 
cdl_option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL {
display "signgam variable access"
requires CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
flavor data
legal_values 0 to 1
default_value 0
description "
Trace level for debugging all accesses to the
signgam variable in thread-safe mode."
}
}
 
# OTHER CONFIGURATION SETTINGS
cdl_option X_TLOSS {
display "Bessel function limit of significance"
flavor data
default_value 1.41484755040568800000e+16; # pi*(2**52)
legal_values 1 to 1e308; # FIXME
description "
For the Bessel functions (j0(), j1(), jn(),
y0(), y1(), yn()) this option defines the
maximum absolute value of the ordinate
before we assume total loss of significance.
This number must be a floating-point number (e.g.
contains a decimal point), and should be
large."
}
 
define_proc {
puts $::cdl_header "/***** proc output start *****/"
 
puts $::cdl_header "#include <pkgconf/system.h>"
 
# TYPE DEFINITIONS
# Compatibility mode selector - required for default below
 
puts $::cdl_header "typedef enum {"
puts $::cdl_header " CYGNUM_LIBM_COMPAT_UNINIT= 0, // Default state. DO NOT set it to this"
puts $::cdl_header " CYGNUM_LIBM_COMPAT_POSIX = 1, // ANSI/POSIX 1003.1"
puts $::cdl_header " CYGNUM_LIBM_COMPAT_IEEE = 2, // IEEE-754"
puts $::cdl_header " CYGNUM_LIBM_COMPAT_XOPEN = 3, // X/OPEN Portability guide issue 3"
puts $::cdl_header " // (XPG3)"
puts $::cdl_header " CYGNUM_LIBM_COMPAT_SVID = 4 // System V Interface Definition 3rd"
puts $::cdl_header " // edition"
puts $::cdl_header "} Cyg_libm_compat_t;"
puts $::cdl_header ""
 
puts $::cdl_header "/****** proc output end ******/"
}
 
cdl_component CYGPKG_LIBM_OPTIONS {
display "Math library build options"
flavor none
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_LIBM_CFLAGS_ADD {
display "Additional compiler flags"
flavor data
no_define
default_value { ((0 == CYGPKG_HAL_I386) && (0 == CYGPKG_HAL_SYNTH_I386)) ? "" : "-ffloat-store" }
description "
This option modifies the set of compiler flags for
building the math library. These flags are used in addition
to the set of global flags."
}
 
cdl_option CYGPKG_LIBM_CFLAGS_REMOVE {
display "Suppressed compiler flags"
flavor data
no_define
default_value { "" }
description "
This option modifies the set of compiler flags for
building the math library. These flags are removed from
the set of global flags if present."
}
 
cdl_option CYGPKG_LIBM_TESTS {
display "Math library tests"
flavor data
no_define
calculated { "tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh" }
description "
This option specifies the set of tests for the math library."
}
}
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.