mirror of git://gcc.gnu.org/git/gcc.git
*: Move header files up a level.
2002-06-24 Phil Edwards <pme@gcc.gnu.org> * config/cpu/*/bits/*: Move header files up a level. Remove bits. * config/os/*/bits/*: Likewise. * configure.in: Update. * configure: Regenerate. * configure.target: Update. * docs/html/17_intro/porting.texi: Update. From-SVN: r54943
This commit is contained in:
parent
2c088b53f9
commit
d32e25dffa
|
@ -1,3 +1,12 @@
|
||||||
|
2002-06-24 Phil Edwards <pme@gcc.gnu.org>
|
||||||
|
|
||||||
|
* config/cpu/*/bits/*: Move header files up a level. Remove bits.
|
||||||
|
* config/os/*/bits/*: Likewise.
|
||||||
|
* configure.in: Update.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* configure.target: Update.
|
||||||
|
* docs/html/17_intro/porting.texi: Update.
|
||||||
|
|
||||||
2002-06-21 Phil Edwards <pme@gcc.gnu.org>
|
2002-06-21 Phil Edwards <pme@gcc.gnu.org>
|
||||||
|
|
||||||
* include/bits/stl_map.h, include/bits/stl_multimap.h,
|
* include/bits/stl_map.h, include/bits/stl_multimap.h,
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -357,9 +357,9 @@ GLIBCPP_ENABLE_SYMVERS([yes])
|
||||||
# Propagate the target-specific source directories through the build chain.
|
# Propagate the target-specific source directories through the build chain.
|
||||||
# (Nothing currently uses cpu_include_dir directly; only ATOMICITYH and
|
# (Nothing currently uses cpu_include_dir directly; only ATOMICITYH and
|
||||||
# CPULIMITSH [might] use it, and they only get used here.)
|
# CPULIMITSH [might] use it, and they only get used here.)
|
||||||
OS_INC_SRCDIR=config/${os_include_dir}/bits
|
OS_INC_SRCDIR=config/${os_include_dir}
|
||||||
ATOMICITY_INC_SRCDIR=config/${ATOMICITYH}/bits
|
ATOMICITY_INC_SRCDIR=config/${ATOMICITYH}
|
||||||
CPU_LIMITS_INC_SRCDIR=config/${CPULIMITSH}/bits
|
CPU_LIMITS_INC_SRCDIR=config/${CPULIMITSH}
|
||||||
AC_SUBST(OS_INC_SRCDIR)
|
AC_SUBST(OS_INC_SRCDIR)
|
||||||
AC_SUBST(ATOMICITY_INC_SRCDIR)
|
AC_SUBST(ATOMICITY_INC_SRCDIR)
|
||||||
AC_SUBST(CPU_LIMITS_INC_SRCDIR)
|
AC_SUBST(CPU_LIMITS_INC_SRCDIR)
|
||||||
|
|
|
@ -19,9 +19,9 @@
|
||||||
# cpu_include_dir CPU-specific directory, defaults to cpu/generic
|
# cpu_include_dir CPU-specific directory, defaults to cpu/generic
|
||||||
# if cpu/target_cpu doesn't exist. This is
|
# if cpu/target_cpu doesn't exist. This is
|
||||||
# used to set the next two:
|
# used to set the next two:
|
||||||
# ATOMICITYH location of bits/atomicity.h,
|
# ATOMICITYH location of atomicity.h,
|
||||||
# defaults to cpu_include_dir
|
# defaults to cpu_include_dir
|
||||||
# CPULIMITSH location of bits/cpu_limits.h,
|
# CPULIMITSH location of cpu_limits.h,
|
||||||
# defaults to cpu_include_dir
|
# defaults to cpu_include_dir
|
||||||
#
|
#
|
||||||
# os_include_dir OS-specific directory, defaults to os/generic.
|
# os_include_dir OS-specific directory, defaults to os/generic.
|
||||||
|
@ -106,14 +106,14 @@ esac
|
||||||
# choices for those if they haven't been explicitly set already.
|
# choices for those if they haven't been explicitly set already.
|
||||||
_cpu_incdir_fullpath=${glibcpp_srcdir}/config/${cpu_include_dir}
|
_cpu_incdir_fullpath=${glibcpp_srcdir}/config/${cpu_include_dir}
|
||||||
if test x${ATOMICITYH+set} != xset; then
|
if test x${ATOMICITYH+set} != xset; then
|
||||||
if test -f ${_cpu_incdir_fullpath}/bits/atomicity.h; then
|
if test -f ${_cpu_incdir_fullpath}/atomicity.h; then
|
||||||
ATOMICITYH=$cpu_include_dir
|
ATOMICITYH=$cpu_include_dir
|
||||||
else
|
else
|
||||||
ATOMICITYH="cpu/generic"
|
ATOMICITYH="cpu/generic"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test x${CPULIMITSH+set} != xset; then
|
if test x${CPULIMITSH+set} != xset; then
|
||||||
if test -f ${_cpu_incdir_fullpath}/bits/cpu_limits.h; then
|
if test -f ${_cpu_incdir_fullpath}/cpu_limits.h; then
|
||||||
CPULIMITSH=$cpu_include_dir
|
CPULIMITSH=$cpu_include_dir
|
||||||
else
|
else
|
||||||
CPULIMITSH="cpu/generic"
|
CPULIMITSH="cpu/generic"
|
||||||
|
@ -131,7 +131,7 @@ unset _cpu_incdir_fullpath
|
||||||
case "${target_os}" in
|
case "${target_os}" in
|
||||||
aix4.[3456789]* | aix[56789]*)
|
aix4.[3456789]* | aix[56789]*)
|
||||||
# We set os_include_dir to os/aix only on AIX 4.3 and newer, but
|
# We set os_include_dir to os/aix only on AIX 4.3 and newer, but
|
||||||
# os/aix/bits/atomicity.h works on earlier versions of AIX 4.*, so we
|
# os/aix/atomicity.h works on earlier versions of AIX 4.*, so we
|
||||||
# explicitly duplicate the directory for 4.[<3].
|
# explicitly duplicate the directory for 4.[<3].
|
||||||
os_include_dir="os/aix"
|
os_include_dir="os/aix"
|
||||||
ATOMICITYH="os/aix"
|
ATOMICITYH="os/aix"
|
||||||
|
|
|
@ -110,7 +110,7 @@ standard target triplet; e.g., the @code{solaris2.8} in
|
||||||
@code{sparc-sun-solaris2.8}.
|
@code{sparc-sun-solaris2.8}.
|
||||||
|
|
||||||
The first file to create in this directory, should be called
|
The first file to create in this directory, should be called
|
||||||
@file{bits/os_defines.h}. This file contains basic macro definitions
|
@file{os_defines.h}. This file contains basic macro definitions
|
||||||
that are required to allow the C++ library to work with your C library.
|
that are required to allow the C++ library to work with your C library.
|
||||||
This file should provide macro definitions for @code{__off_t},
|
This file should provide macro definitions for @code{__off_t},
|
||||||
@code{__off64_t}, and @code{__ssize_t}. Typically, this just looks
|
@code{__off64_t}, and @code{__ssize_t}. Typically, this just looks
|
||||||
|
@ -161,7 +161,7 @@ this:
|
||||||
#endif
|
#endif
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
We recommend copying an existing @file{bits/os_defines.h} to use as a
|
We recommend copying an existing @file{os_defines.h} to use as a
|
||||||
starting point.
|
starting point.
|
||||||
|
|
||||||
@c ---------------------------------------------------------------------
|
@c ---------------------------------------------------------------------
|
||||||
|
@ -204,20 +204,20 @@ appropriate for your chip.
|
||||||
The library requires that you provide three header files to implement
|
The library requires that you provide three header files to implement
|
||||||
character classification, analogous to that provided by the C libraries
|
character classification, analogous to that provided by the C libraries
|
||||||
@file{<ctype.h>} header. You can model these on the files provided in
|
@file{<ctype.h>} header. You can model these on the files provided in
|
||||||
@file{config/os/generic/bits}. However, these files will almost
|
@file{config/os/generic}. However, these files will almost
|
||||||
certainly need some modification.
|
certainly need some modification.
|
||||||
|
|
||||||
The first file to write is @file{bits/ctype_base.h}. This file provides
|
The first file to write is @file{ctype_base.h}. This file provides
|
||||||
some very basic information about character classification. The libstdc++-v3
|
some very basic information about character classification. The libstdc++-v3
|
||||||
library assumes that your C library implements @file{<ctype.h>} by using
|
library assumes that your C library implements @file{<ctype.h>} by using
|
||||||
a table (indexed by character code) containing integers, where each of
|
a table (indexed by character code) containing integers, where each of
|
||||||
these integers is a bit-mask indicating whether the character is
|
these integers is a bit-mask indicating whether the character is
|
||||||
upper-case, lower-case, alphabetic, etc. The @file{bits/ctype_base.h}
|
upper-case, lower-case, alphabetic, etc. The @file{ctype_base.h}
|
||||||
file gives the type of the integer, and the values of the various bit
|
file gives the type of the integer, and the values of the various bit
|
||||||
masks. You will have to peer at your own @file{<ctype.h>} to figure out
|
masks. You will have to peer at your own @file{<ctype.h>} to figure out
|
||||||
how to define the values required by this file.
|
how to define the values required by this file.
|
||||||
|
|
||||||
The @file{bits/ctype_base.h} header file does not need include guards.
|
The @file{ctype_base.h} header file does not need include guards.
|
||||||
It should contain a single @code{struct} definition called
|
It should contain a single @code{struct} definition called
|
||||||
@code{ctype_base}. This @code{struct} should contain two type
|
@code{ctype_base}. This @code{struct} should contain two type
|
||||||
declarations, and one enumeration declaration, like this example, taken
|
declarations, and one enumeration declaration, like this example, taken
|
||||||
|
@ -259,9 +259,9 @@ The enumeration should give definitions for all the values in the above
|
||||||
example, using the values from your native @file{<ctype.h>}. They can
|
example, using the values from your native @file{<ctype.h>}. They can
|
||||||
be given symbolically (as above), or numerically, if you prefer. You do
|
be given symbolically (as above), or numerically, if you prefer. You do
|
||||||
not have to include @file{<ctype.h>} in this header; it will always be
|
not have to include @file{<ctype.h>} in this header; it will always be
|
||||||
included before @file{bits/ctype_base.h} is included.
|
included before @file{ctype_base.h} is included.
|
||||||
|
|
||||||
The next file to write is @file{bits/ctype_noninline.h}, which also does
|
The next file to write is @file{ctype_noninline.h}, which also does
|
||||||
not require include guards. This file defines a few member functions
|
not require include guards. This file defines a few member functions
|
||||||
that will be included in @file{include/bits/locale_facets.h}. The first
|
that will be included in @file{include/bits/locale_facets.h}. The first
|
||||||
function that must be written is the @code{ctype<char>::ctype}
|
function that must be written is the @code{ctype<char>::ctype}
|
||||||
|
@ -337,7 +337,7 @@ ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||||
@}
|
@}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
You must also provide the @file{bits/ctype_inline.h} file, which
|
You must also provide the @file{ctype_inline.h} file, which
|
||||||
contains a few more functions. On most systems, you can just copy
|
contains a few more functions. On most systems, you can just copy
|
||||||
@file{config/os/generic/ctype_inline.h} and use it on your system.
|
@file{config/os/generic/ctype_inline.h} and use it on your system.
|
||||||
|
|
||||||
|
@ -416,11 +416,11 @@ If you want to provide custom, safe, versions of these functions, there
|
||||||
are two distinct approaches. One is to provide a version for your CPU,
|
are two distinct approaches. One is to provide a version for your CPU,
|
||||||
using assembly language constructs. The other is to use the
|
using assembly language constructs. The other is to use the
|
||||||
thread-safety primitives in your operating system. In either case, you
|
thread-safety primitives in your operating system. In either case, you
|
||||||
make a file called @file{bits/atomicity.h}, and the variable
|
make a file called @file{atomicity.h}, and the variable
|
||||||
@code{ATOMICITYH} must point to this file.
|
@code{ATOMICITYH} must point to this file.
|
||||||
|
|
||||||
If you are using the assembly-language approach, put this code in
|
If you are using the assembly-language approach, put this code in
|
||||||
@file{config/cpu/<chip>/bits/atomicity.h}, where chip is the name of
|
@file{config/cpu/<chip>/atomicity.h}, where chip is the name of
|
||||||
your processor (@pxref{CPU}). No additional changes are necessary to
|
your processor (@pxref{CPU}). No additional changes are necessary to
|
||||||
locate the file in this case; @code{ATOMICITYH} will be set by default.
|
locate the file in this case; @code{ATOMICITYH} will be set by default.
|
||||||
|
|
||||||
|
@ -438,7 +438,7 @@ the appropriate @code{os_include_dir}. For examples of this approach,
|
||||||
see the @file{atomicity.h} file for AIX.
|
see the @file{atomicity.h} file for AIX.
|
||||||
|
|
||||||
With those bits out of the way, you have to actually write
|
With those bits out of the way, you have to actually write
|
||||||
@file{bits/atomicity.h} itself. This file should be wrapped in an
|
@file{atomicity.h} itself. This file should be wrapped in an
|
||||||
include guard named @code{_BITS_ATOMICITY_H}. It should define one
|
include guard named @code{_BITS_ATOMICITY_H}. It should define one
|
||||||
type, and two functions.
|
type, and two functions.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue