Commit e6b7a69a by Phil Edwards

acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Bump minimal version requirement.

2003-07-05  Phil Edwards  <pme@gcc.gnu.org>

	* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS):  Bump minimal version
	requirement.  Add port_specific_symbol_file variable.
	* configure.host:  Add docs for port_specific_symbol_file.
	Clean up try_cpu block for x86.
	* config/linker-map.gnu:  No more "last symbol can't have a
	semicolon" kaka.  Add hook for port-specific symbols.
	* src/Makefile.am:  Remove trailing whitespace.
	(libstdc++-symbol.ver):  Detect the presence of port-specific
	symbols, and add them accordingly.

	* docs/html/17_intro/porting.texi:  Bring up to date.

	* src/Makefile.in, aclocal.m4, configure,
	docs/html/17_intro/porting.html:  Regenerated.

From-SVN: r68992
parent 0a72704b
2003-07-05 Phil Edwards <pme@gcc.gnu.org> 2003-07-05 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Bump minimal version
requirement. Add port_specific_symbol_file variable.
* configure.host: Add docs for port_specific_symbol_file.
Clean up try_cpu block for x86.
* config/linker-map.gnu: No more "last symbol can't have a
semicolon" kaka. Add hook for port-specific symbols.
* src/Makefile.am: Remove trailing whitespace.
(libstdc++-symbol.ver): Detect the presence of port-specific
symbols, and add them accordingly.
* docs/html/17_intro/porting.texi: Bring up to date.
* src/Makefile.in, aclocal.m4, configure,
docs/html/17_intro/porting.html: Regenerated.
2003-07-05 Phil Edwards <pme@gcc.gnu.org>
* scripts/create_testsuite_files: New file. * scripts/create_testsuite_files: New file.
* testsuite/Makefile.am (all-local, check-performance): Use it. * testsuite/Makefile.am (all-local, check-performance): Use it.
* testsuite/lib/libstdc++-v3-dg.exp (v3-computer-tests): Remove. * testsuite/lib/libstdc++-v3-dg.exp (v3-computer-tests): Remove.
......
...@@ -2258,9 +2258,9 @@ if test $enable_symvers != no; then ...@@ -2258,9 +2258,9 @@ if test $enable_symvers != no; then
AC_MSG_RESULT($glibcxx_shared_libgcc) AC_MSG_RESULT($glibcxx_shared_libgcc)
fi fi
# For GNU ld, we need at least this version. It's 2.12 in the same format # For GNU ld, we need at least this version. It's 2.14 in the same format
# as the tested-for version. See GLIBCXX_CHECK_LINKER_FEATURES for more. # as the tested-for version. See GLIBCXX_CHECK_LINKER_FEATURES for more.
glibcxx_min_gnu_ld_version=21200 glibcxx_min_gnu_ld_version=21400
# Check to see if unspecified "yes" value can win, given results # Check to see if unspecified "yes" value can win, given results
# above. # above.
...@@ -2305,6 +2305,7 @@ case $enable_symvers in ...@@ -2305,6 +2305,7 @@ case $enable_symvers in
esac esac
AC_SUBST(SYMVER_MAP) AC_SUBST(SYMVER_MAP)
AC_SUBST(port_specific_symbol_file)
AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_CHECKING([versioning on shared library symbols]) AC_MSG_CHECKING([versioning on shared library symbols])
AC_MSG_RESULT($enable_symvers) AC_MSG_RESULT($enable_symvers)
......
...@@ -2270,9 +2270,9 @@ if test $enable_symvers != no; then ...@@ -2270,9 +2270,9 @@ if test $enable_symvers != no; then
AC_MSG_RESULT($glibcxx_shared_libgcc) AC_MSG_RESULT($glibcxx_shared_libgcc)
fi fi
# For GNU ld, we need at least this version. It's 2.12 in the same format # For GNU ld, we need at least this version. It's 2.14 in the same format
# as the tested-for version. See GLIBCXX_CHECK_LINKER_FEATURES for more. # as the tested-for version. See GLIBCXX_CHECK_LINKER_FEATURES for more.
glibcxx_min_gnu_ld_version=21200 glibcxx_min_gnu_ld_version=21400
# Check to see if unspecified "yes" value can win, given results # Check to see if unspecified "yes" value can win, given results
# above. # above.
...@@ -2317,6 +2317,7 @@ case $enable_symvers in ...@@ -2317,6 +2317,7 @@ case $enable_symvers in
esac esac
AC_SUBST(SYMVER_MAP) AC_SUBST(SYMVER_MAP)
AC_SUBST(port_specific_symbol_file)
AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_CHECKING([versioning on shared library symbols]) AC_MSG_CHECKING([versioning on shared library symbols])
AC_MSG_RESULT($enable_symvers) AC_MSG_RESULT($enable_symvers)
......
## Linker script for GNU ld 2.11.94+ only. ## Linker script for GNU ld 2.13.91+ only.
## ##
## Copyright (C) 2002, 2003 Free Software Foundation, Inc. ## Copyright (C) 2002, 2003 Free Software Foundation, Inc.
## ##
...@@ -25,7 +25,6 @@ GLIBCXX_3.4 { ...@@ -25,7 +25,6 @@ GLIBCXX_3.4 {
global: global:
# Names inside the 'extern' block are demangled names. # Names inside the 'extern' block are demangled names.
# All but the last are terminated with a semicolon.
extern "C++" extern "C++"
{ {
std::[A-Za-k]*; std::[A-Za-k]*;
...@@ -56,7 +55,7 @@ GLIBCXX_3.4 { ...@@ -56,7 +55,7 @@ GLIBCXX_3.4 {
std::__num_base::_S_format_int*; std::__num_base::_S_format_int*;
std::__num_base::_S_atoms_in; std::__num_base::_S_atoms_in;
std::__num_base::_S_atoms_out; std::__num_base::_S_atoms_out;
std::__numpunct_cache* std::__numpunct_cache*;
}; };
# Names not in an 'extern' block are mangled names. # Names not in an 'extern' block are mangled names.
...@@ -169,6 +168,8 @@ GLIBCXX_3.4 { ...@@ -169,6 +168,8 @@ GLIBCXX_3.4 {
_ZN9__gnu_cxx22_Atomic_add_mutex_onceE; _ZN9__gnu_cxx22_Atomic_add_mutex_onceE;
_ZN9__gnu_cxx31__gthread_atomic_add_mutex_onceEv; _ZN9__gnu_cxx31__gthread_atomic_add_mutex_onceEv;
# DO NOT DELETE THIS LINE. Port-specific symbols, if any, will be here.
local: local:
*; *;
}; };
......
...@@ -41,6 +41,11 @@ ...@@ -41,6 +41,11 @@
# the form '-Wl,blah' # the form '-Wl,blah'
# (defaults to empty in acinclude.m4) # (defaults to empty in acinclude.m4)
# #
# port_specific_symbol_file
# whitespace-seperated list of files containing
# additional symbols to export from the shared
# library, when symbol versioning is in use
#
# #
# If the defaults will not work for your platform, you need only change the # If the defaults will not work for your platform, you need only change the
# variables that won't work, i.e., you do not need to explicitly set a # variables that won't work, i.e., you do not need to explicitly set a
...@@ -66,7 +71,7 @@ case "${host_cpu}" in ...@@ -66,7 +71,7 @@ case "${host_cpu}" in
alpha*) alpha*)
try_cpu=alpha try_cpu=alpha
;; ;;
athlon* | i586 | i686 | i786 | x86_64) i[567]86 | x86_64)
try_cpu=i486 try_cpu=i486
;; ;;
hppa*) hppa*)
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<meta name="generator" content="makeinfo 4.3"> <meta name="generator" content="makeinfo 4.3">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
<!-- <!--
Copyright &copy; 2000, 2001, 2002 Free Software Foundation, Inc. Copyright &copy; 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
<p>Permission is granted to copy, distribute and/or modify this document <p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or under the terms of the GNU Free Documentation License, Version 1.2 or
...@@ -56,6 +56,9 @@ imposed by the ANSI/ISO standard. ...@@ -56,6 +56,9 @@ imposed by the ANSI/ISO standard.
works. It is difficult to test the C++ compiler without a working works. It is difficult to test the C++ compiler without a working
library, but you should at least try some minimal test cases. library, but you should at least try some minimal test cases.
<p>(Note that what we think of as a "target," the library refers to as
a "host." The comment at the top of <code>configure.in</code> explains why.)
<p>Here are the primary steps required to port the library: <p>Here are the primary steps required to port the library:
<ul class="menu"> <ul class="menu">
...@@ -92,7 +95,7 @@ directory. The important information is that there needs to be a ...@@ -92,7 +95,7 @@ directory. The important information is that there needs to be a
directory under <code>config/os</code> to store the files for your operating directory under <code>config/os</code> to store the files for your operating
system. system.
<p>You might have to change the <code>configure.target</code> file to ensure that <p>You might have to change the <code>configure.host</code> file to ensure that
your new directory is activated. Look for the switch statement that sets your new directory is activated. Look for the switch statement that sets
<code>os_include_dir</code>, and add a pattern to handle your operating system <code>os_include_dir</code>, and add a pattern to handle your operating system
if the default will not suffice. The switch statement switches on only if the default will not suffice. The switch statement switches on only
...@@ -134,45 +137,42 @@ need to define. You will need to add them to the ...@@ -134,45 +137,42 @@ need to define. You will need to add them to the
target. It will not work to simply define these macros in target. It will not work to simply define these macros in
<code>os_defines.h</code>. <code>os_defines.h</code>.
<p>At this time, there are a few libstdc++-v3-specific macro which may be <p>At this time, there are a few libstdc++-v3-specific macros which may be
defined. <code>_G_USING_THUNKS</code> may be defined to 0 to express that the defined:
port doesn't use thunks (although it is unclear that this is still
useful since libio support isn't currently working and the g++ v3 ABI
invalidates the assumption that some ports don't use thunks).
<p><code>_GLIBCPP_USE_C99_CHECK</code> may be defined to 1 to check C99 <p><code>_GLIBCXX_USE_C99_CHECK</code> may be defined to 1 to check C99
function declarations (which are not covered by specialization below) function declarations (which are not covered by specialization below)
found in system headers against versions found in the library headers found in system headers against versions found in the library headers
derived from the standard. derived from the standard.
<p><code>_GLIBCPP_USE_C99_DYNAMIC</code> may be defined to an expression that <p><code>_GLIBCXX_USE_C99_DYNAMIC</code> may be defined to an expression that
yields 0 if and only if the system headers are exposing proper support yields 0 if and only if the system headers are exposing proper support
for C99 functions (which are not covered by specialization below). If for C99 functions (which are not covered by specialization below). If
defined, it must be 0 while bootstrapping the compiler/rebuilding the defined, it must be 0 while bootstrapping the compiler/rebuilding the
library. library.
<p><code>_GLIBCPP_USE_C99_LONG_LONG_CHECK</code> may be defined to 1 to check <p><code>_GLIBCXX_USE_C99_LONG_LONG_CHECK</code> may be defined to 1 to check
the set of C99 long long function declarations found in system headers the set of C99 long long function declarations found in system headers
against versions found in the library headers derived from the against versions found in the library headers derived from the
standard. standard.
<p><code>_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC</code> may be defined to an <p><code>_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC</code> may be defined to an
expression that yields 0 if and only if the system headers are expression that yields 0 if and only if the system headers are
exposing proper support for the set of C99 long long functions. If exposing proper support for the set of C99 long long functions. If
defined, it must be 0 while bootstrapping the compiler/rebuilding the defined, it must be 0 while bootstrapping the compiler/rebuilding the
library. library.
<p><code>_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC</code> may be defined to an <p><code>_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC</code> may be defined to an
expression that yields 0 if and only if the system headers expression that yields 0 if and only if the system headers
are exposing proper support for the related set of macros. If defined, are exposing proper support for the related set of macros. If defined,
it must be 0 while bootstrapping the compiler/rebuilding the library. it must be 0 while bootstrapping the compiler/rebuilding the library.
<p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK</code> may be defined <p><code>_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK</code> may be defined
to 1 to check the related set of function declarations found in system to 1 to check the related set of function declarations found in system
headers against versions found in the library headers derived from headers against versions found in the library headers derived from
the standard. the standard.
<p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC</code> may be defined <p><code>_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC</code> may be defined
to an expression that yields 0 if and only if the system headers to an expression that yields 0 if and only if the system headers
are exposing proper support for the related set of functions. If defined, are exposing proper support for the related set of functions. If defined,
it must be 0 while bootstrapping the compiler/rebuilding the library. it must be 0 while bootstrapping the compiler/rebuilding the library.
...@@ -180,8 +180,8 @@ it must be 0 while bootstrapping the compiler/rebuilding the library. ...@@ -180,8 +180,8 @@ it must be 0 while bootstrapping the compiler/rebuilding the library.
<p>Finally, you should bracket the entire file in an include-guard, like <p>Finally, you should bracket the entire file in an include-guard, like
this: this:
<pre class="example"> #ifndef _GLIBCPP_OS_DEFINES <pre class="example"> #ifndef _GLIBCXX_OS_DEFINES
#define _GLIBCPP_OS_DEFINES #define _GLIBCXX_OS_DEFINES
... ...
#endif #endif
</pre> </pre>
...@@ -209,14 +209,14 @@ setup files without explicit help. ...@@ -209,14 +209,14 @@ setup files without explicit help.
<p>We recommend that for a target triplet <code>&lt;CPU&gt;-&lt;vendor&gt;-&lt;OS&gt;</code>, you <p>We recommend that for a target triplet <code>&lt;CPU&gt;-&lt;vendor&gt;-&lt;OS&gt;</code>, you
name your configuration directory <code>config/cpu/&lt;CPU&gt;</code>. If you do this, name your configuration directory <code>config/cpu/&lt;CPU&gt;</code>. If you do this,
the configury will find the directory itself. Otherwise you will need to the configury will find the directory by itself. Otherwise you will need to
edit the <code>configure.target</code> file and, in the switch statement that sets edit the <code>configure.host</code> file and, in the switch statement that sets
<code>cpu_include_dir</code>, add a pattern to handle your chip. <code>cpu_include_dir</code>, add a pattern to handle your chip.
<p>Note that some chip families share a single configuration directory, for <p>Note that some chip families share a single configuration directory, for
example, <code>alpha</code>, <code>alphaev5</code>, and <code>alphaev6</code> all use the example, <code>alpha</code>, <code>alphaev5</code>, and <code>alphaev6</code> all use the
<code>config/cpu/alpha</code> directory, and there is an entry in the <code>config/cpu/alpha</code> directory, and there is an entry in the
<code>configure.target</code> switch statement to handle this. <code>configure.host</code> switch statement to handle this.
<p>The <code>cpu_include_dir</code> sets default locations for the files controlling <p>The <code>cpu_include_dir</code> sets default locations for the files controlling
<a href="#Thread%20safety">Thread safety</a> and <a href="#Numeric%20limits">Numeric limits</a>, if the defaults are not <a href="#Thread%20safety">Thread safety</a> and <a href="#Numeric%20limits">Numeric limits</a>, if the defaults are not
...@@ -456,14 +456,14 @@ see the <code>atomicity.h</code> file for IRIX or IA64. ...@@ -456,14 +456,14 @@ see the <code>atomicity.h</code> file for IRIX or IA64.
<p>Alternatively, if the primitives are more closely related to the OS <p>Alternatively, if the primitives are more closely related to the OS
than they are to the CPU, you can put the <code>atomicity.h</code> file in than they are to the CPU, you can put the <code>atomicity.h</code> file in
the <a href="#Operating%20system">Operating system</a> directory instead. In this case, you must the <a href="#Operating%20system">Operating system</a> directory instead. In this case, you must
edit <code>configure.target</code>, and in the switch statement that handles edit <code>configure.host</code>, and in the switch statement that handles
operating systems, override the <code>ATOMICITYH</code> variable to point to operating systems, override the <code>ATOMICITYH</code> variable to point to
the appropriate <code>os_include_dir</code>. For examples of this approach, the appropriate <code>os_include_dir</code>. For examples of this approach,
see the <code>atomicity.h</code> file for AIX. see the <code>atomicity.h</code> file for AIX.
<p>With those bits out of the way, you have to actually write <p>With those bits out of the way, you have to actually write
<code>atomicity.h</code> itself. This file should be wrapped in an <code>atomicity.h</code> itself. This file should be wrapped in an
include guard named <code>_BITS_ATOMICITY_H</code>. It should define one include guard named <code>_GLIBCXX_ATOMICITY_H</code>. It should define one
type, and two functions. type, and two functions.
<p>The type is <code>_Atomic_word</code>. Here is the version used on IRIX: <p>The type is <code>_Atomic_word</code>. Here is the version used on IRIX:
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
@setchapternewpage odd @setchapternewpage odd
@copying @copying
Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc. Copyright @copyright{} 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or under the terms of the GNU Free Documentation License, Version 1.2 or
...@@ -74,6 +74,9 @@ In addition, you should try to verify that the C++ compiler generally ...@@ -74,6 +74,9 @@ In addition, you should try to verify that the C++ compiler generally
works. It is difficult to test the C++ compiler without a working works. It is difficult to test the C++ compiler without a working
library, but you should at least try some minimal test cases. library, but you should at least try some minimal test cases.
(Note that what we think of as a ``target,'' the library refers to as
a ``host.'' The comment at the top of @file{configure.in} explains why.)
Here are the primary steps required to port the library: Here are the primary steps required to port the library:
@menu @menu
...@@ -106,7 +109,7 @@ directory. The important information is that there needs to be a ...@@ -106,7 +109,7 @@ directory. The important information is that there needs to be a
directory under @file{config/os} to store the files for your operating directory under @file{config/os} to store the files for your operating
system. system.
You might have to change the @file{configure.target} file to ensure that You might have to change the @file{configure.host} file to ensure that
your new directory is activated. Look for the switch statement that sets your new directory is activated. Look for the switch statement that sets
@code{os_include_dir}, and add a pattern to handle your operating system @code{os_include_dir}, and add a pattern to handle your operating system
if the default will not suffice. The switch statement switches on only if the default will not suffice. The switch statement switches on only
...@@ -150,45 +153,42 @@ need to define. You will need to add them to the ...@@ -150,45 +153,42 @@ need to define. You will need to add them to the
target. It will not work to simply define these macros in target. It will not work to simply define these macros in
@file{os_defines.h}. @file{os_defines.h}.
At this time, there are a few libstdc++-v3-specific macro which may be At this time, there are a few libstdc++-v3-specific macros which may be
defined. @code{_G_USING_THUNKS} may be defined to 0 to express that the defined:
port doesn't use thunks (although it is unclear that this is still
useful since libio support isn't currently working and the g++ v3 ABI
invalidates the assumption that some ports don't use thunks).
@code{_GLIBCPP_USE_C99_CHECK} may be defined to 1 to check C99 @code{_GLIBCXX_USE_C99_CHECK} may be defined to 1 to check C99
function declarations (which are not covered by specialization below) function declarations (which are not covered by specialization below)
found in system headers against versions found in the library headers found in system headers against versions found in the library headers
derived from the standard. derived from the standard.
@code{_GLIBCPP_USE_C99_DYNAMIC} may be defined to an expression that @code{_GLIBCXX_USE_C99_DYNAMIC} may be defined to an expression that
yields 0 if and only if the system headers are exposing proper support yields 0 if and only if the system headers are exposing proper support
for C99 functions (which are not covered by specialization below). If for C99 functions (which are not covered by specialization below). If
defined, it must be 0 while bootstrapping the compiler/rebuilding the defined, it must be 0 while bootstrapping the compiler/rebuilding the
library. library.
@code{_GLIBCPP_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check @code{_GLIBCXX_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check
the set of C99 long long function declarations found in system headers the set of C99 long long function declarations found in system headers
against versions found in the library headers derived from the against versions found in the library headers derived from the
standard. standard.
@code{_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC} may be defined to an @code{_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC} may be defined to an
expression that yields 0 if and only if the system headers are expression that yields 0 if and only if the system headers are
exposing proper support for the set of C99 long long functions. If exposing proper support for the set of C99 long long functions. If
defined, it must be 0 while bootstrapping the compiler/rebuilding the defined, it must be 0 while bootstrapping the compiler/rebuilding the
library. library.
@code{_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC} may be defined to an @code{_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC} may be defined to an
expression that yields 0 if and only if the system headers expression that yields 0 if and only if the system headers
are exposing proper support for the related set of macros. If defined, are exposing proper support for the related set of macros. If defined,
it must be 0 while bootstrapping the compiler/rebuilding the library. it must be 0 while bootstrapping the compiler/rebuilding the library.
@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be defined @code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be defined
to 1 to check the related set of function declarations found in system to 1 to check the related set of function declarations found in system
headers against versions found in the library headers derived from headers against versions found in the library headers derived from
the standard. the standard.
@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be defined @code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be defined
to an expression that yields 0 if and only if the system headers to an expression that yields 0 if and only if the system headers
are exposing proper support for the related set of functions. If defined, are exposing proper support for the related set of functions. If defined,
it must be 0 while bootstrapping the compiler/rebuilding the library. it must be 0 while bootstrapping the compiler/rebuilding the library.
...@@ -197,8 +197,8 @@ Finally, you should bracket the entire file in an include-guard, like ...@@ -197,8 +197,8 @@ Finally, you should bracket the entire file in an include-guard, like
this: this:
@example @example
#ifndef _GLIBCPP_OS_DEFINES #ifndef _GLIBCXX_OS_DEFINES
#define _GLIBCPP_OS_DEFINES #define _GLIBCXX_OS_DEFINES
... ...
#endif #endif
@end example @end example
...@@ -222,14 +222,14 @@ setup files without explicit help. ...@@ -222,14 +222,14 @@ setup files without explicit help.
We recommend that for a target triplet @code{<CPU>-<vendor>-<OS>}, you We recommend that for a target triplet @code{<CPU>-<vendor>-<OS>}, you
name your configuration directory @file{config/cpu/<CPU>}. If you do this, name your configuration directory @file{config/cpu/<CPU>}. If you do this,
the configury will find the directory itself. Otherwise you will need to the configury will find the directory by itself. Otherwise you will need to
edit the @file{configure.target} file and, in the switch statement that sets edit the @file{configure.host} file and, in the switch statement that sets
@code{cpu_include_dir}, add a pattern to handle your chip. @code{cpu_include_dir}, add a pattern to handle your chip.
Note that some chip families share a single configuration directory, for Note that some chip families share a single configuration directory, for
example, @code{alpha}, @code{alphaev5}, and @code{alphaev6} all use the example, @code{alpha}, @code{alphaev5}, and @code{alphaev6} all use the
@file{config/cpu/alpha} directory, and there is an entry in the @file{config/cpu/alpha} directory, and there is an entry in the
@file{configure.target} switch statement to handle this. @file{configure.host} switch statement to handle this.
The @code{cpu_include_dir} sets default locations for the files controlling The @code{cpu_include_dir} sets default locations for the files controlling
@ref{Thread safety} and @ref{Numeric limits}, if the defaults are not @ref{Thread safety} and @ref{Numeric limits}, if the defaults are not
...@@ -474,14 +474,14 @@ see the @file{atomicity.h} file for IRIX or IA64. ...@@ -474,14 +474,14 @@ see the @file{atomicity.h} file for IRIX or IA64.
Alternatively, if the primitives are more closely related to the OS Alternatively, if the primitives are more closely related to the OS
than they are to the CPU, you can put the @file{atomicity.h} file in than they are to the CPU, you can put the @file{atomicity.h} file in
the @ref{Operating system} directory instead. In this case, you must the @ref{Operating system} directory instead. In this case, you must
edit @file{configure.target}, and in the switch statement that handles edit @file{configure.host}, and in the switch statement that handles
operating systems, override the @code{ATOMICITYH} variable to point to operating systems, override the @code{ATOMICITYH} variable to point to
the appropriate @code{os_include_dir}. For examples of this approach, 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{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{_GLIBCXX_ATOMICITY_H}. It should define one
type, and two functions. type, and two functions.
The type is @code{_Atomic_word}. Here is the version used on IRIX: The type is @code{_Atomic_word}. Here is the version used on IRIX:
......
...@@ -37,9 +37,16 @@ toolexeclib_LTLIBRARIES = libstdc++.la ...@@ -37,9 +37,16 @@ toolexeclib_LTLIBRARIES = libstdc++.la
# Symbol versioning for shared libraries. # Symbol versioning for shared libraries.
if GLIBCXX_BUILD_VERSIONED_SHLIB if GLIBCXX_BUILD_VERSIONED_SHLIB
port_specific_symbol_file = @port_specific_symbol_file@
version_arg = -Wl,--version-script=libstdc++-symbol.ver version_arg = -Wl,--version-script=libstdc++-symbol.ver
libstdc++-symbol.ver: ${glibcxx_srcdir}/@SYMVER_MAP@ libstdc++-symbol.ver: ${glibcxx_srcdir}/@SYMVER_MAP@
@LN_S@ ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true cp ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver
if test "x${port_specific_symbol_file}" != x; then \
sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
cat tmp.top $(port_specific_symbol_file) tmp.bottom > $@; \
rm tmp.top tmp.bottom; \
fi
else else
version_arg = version_arg =
libstdc++-symbol.ver: libstdc++-symbol.ver:
...@@ -106,7 +113,7 @@ time_members.cc: ${glibcxx_srcdir}/@CTIME_CC@ ...@@ -106,7 +113,7 @@ time_members.cc: ${glibcxx_srcdir}/@CTIME_CC@
# particular host, but with ad hoc naming rules. # particular host, but with ad hoc naming rules.
host_sources_extra = \ host_sources_extra = \
basic_file.cc \ basic_file.cc \
c++locale.cc c++locale.cc
c++locale.cc: ${glibcxx_srcdir}/@CLOCALE_CC@ c++locale.cc: ${glibcxx_srcdir}/@CLOCALE_CC@
@LN_S@ ${glibcxx_srcdir}/@CLOCALE_CC@ ./$@ || true @LN_S@ ${glibcxx_srcdir}/@CLOCALE_CC@ ./$@ || true
...@@ -157,7 +164,7 @@ libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD) ...@@ -157,7 +164,7 @@ libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \ libstdc___la_LDFLAGS = \
-version-info @libtool_VERSION@ ${version_arg} \ -version-info @libtool_VERSION@ ${version_arg} \
-lm @LIBUNWIND_FLAG@ -lm @LIBUNWIND_FLAG@
# Use special rules for the deprecated source files so that they find # Use special rules for the deprecated source files so that they find
...@@ -188,13 +195,13 @@ demangle.o: demangle.cc ...@@ -188,13 +195,13 @@ demangle.o: demangle.cc
# modified in a per-library or per-sub-library way. Need to manually # modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after # set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion call for it. # as the occasion calls for it.
AM_CXXFLAGS = \ AM_CXXFLAGS = \
-fno-implicit-templates \ -fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \ $(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \ $(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \ $(OPTIMIZE_CXXFLAGS) \
$(CONFIG_CXXFLAGS) $(CONFIG_CXXFLAGS)
# libstdc++ libtool notes # libstdc++ libtool notes
...@@ -216,7 +223,7 @@ AM_CXXFLAGS = \ ...@@ -216,7 +223,7 @@ AM_CXXFLAGS = \
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use # attempt to infer which configuration to use
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
# 3) We'd have a problem when building the shared libstdc++ object if # 3) We'd have a problem when building the shared libstdc++ object if
# the rules automake generates would be used. We cannot allow g++ to # the rules automake generates would be used. We cannot allow g++ to
...@@ -234,13 +241,13 @@ all-local: build_debug ...@@ -234,13 +241,13 @@ all-local: build_debug
install-data-local: install_debug install-data-local: install_debug
else else
all-local: all-local:
install-data-local: install-data-local:
endif endif
debugdir = debug debugdir = debug
# Build parallel set of debug objects here. # Build parallel set of debug objects here.
stamp-debug: stamp-debug:
if test ! -d ${debugdir}; then \ if test ! -d ${debugdir}; then \
mkdir -p ${debugdir}; \ mkdir -p ${debugdir}; \
(cd ${debugdir}; \ (cd ${debugdir}; \
...@@ -251,12 +258,12 @@ stamp-debug: ...@@ -251,12 +258,12 @@ stamp-debug:
-e 's/install-data-local: install_debug/install-data-local:/' \ -e 's/install-data-local: install_debug/install-data-local:/' \
< ../Makefile > Makefile) ; \ < ../Makefile > Makefile) ; \
fi; \ fi; \
echo `date` > stamp-debug; echo `date` > stamp-debug;
build_debug: stamp-debug build_debug: stamp-debug
(cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all) (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
# Install debug library here. # Install debug library here.
install_debug: install_debug:
(cd ${debugdir} && $(MAKE) \ (cd ${debugdir} && $(MAKE) \
toolexeclibdir=@glibcxx_toolexeclibdir@/debug install) toolexeclibdir=@glibcxx_toolexeclibdir@/debug install)
...@@ -147,7 +147,10 @@ glibcxx_builddir = @glibcxx_builddir@ ...@@ -147,7 +147,10 @@ glibcxx_builddir = @glibcxx_builddir@
toolexecdir = @glibcxx_toolexecdir@ toolexecdir = @glibcxx_toolexecdir@
toolexeclibdir = @glibcxx_toolexeclibdir@ toolexeclibdir = @glibcxx_toolexeclibdir@
toolexeclib_LTLIBRARIES = libstdc++.la toolexeclib_LTLIBRARIES = libstdc++.la
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@-Wl,--version-script=libstdc++-symbol.ver
# Symbol versioning for shared libraries.
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@port_specific_symbol_file = @port_specific_symbol_file@
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = -Wl,--version-script=libstdc++-symbol.ver
@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg = @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
# Compile flags that should be constant throughout the build, both for # Compile flags that should be constant throughout the build, both for
...@@ -156,13 +159,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ...@@ -156,13 +159,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4 # These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCXX_EXPORT_FLAGS # or configure.in to see how they are set. See GLIBCXX_EXPORT_FLAGS
CONFIG_CXXFLAGS = \ CONFIG_CXXFLAGS = @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
@SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use. # Warning flags to use.
WARN_CXXFLAGS = \ WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
# Use common includes from acinclude.m4/GLIBCXX_EXPORT_INCLUDES # Use common includes from acinclude.m4/GLIBCXX_EXPORT_INCLUDES
...@@ -171,78 +172,33 @@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ ...@@ -171,78 +172,33 @@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
INCLUDES = \ INCLUDES = -nostdinc++ $(GLIBCXX_INCLUDES) $(LIBSUPCXX_INCLUDES) $(LIBMATH_INCLUDES) $(TOPLEVEL_INCLUDES)
-nostdinc++ \
$(GLIBCXX_INCLUDES) \
$(LIBSUPCXX_INCLUDES) $(LIBMATH_INCLUDES) \
$(TOPLEVEL_INCLUDES)
# Source files linked in via configuration/make substitution for a # Source files linked in via configuration/make substitution for a
# particular host. # particular host.
host_sources = \ host_sources = codecvt_members.cc collate_members.cc ctype_members.cc messages_members.cc monetary_members.cc numeric_members.cc time_members.cc
codecvt_members.cc \
collate_members.cc \
ctype_members.cc \
messages_members.cc \
monetary_members.cc \
numeric_members.cc \
time_members.cc
# Source files linked in via configuration/make substitution for a # Source files linked in via configuration/make substitution for a
# particular host, but with ad hoc naming rules. # particular host, but with ad hoc naming rules.
host_sources_extra = \ host_sources_extra = basic_file.cc c++locale.cc
basic_file.cc \
c++locale.cc
# Sources present in the src directory. # Sources present in the src directory.
sources = \ sources = allocator-inst.cc codecvt.cc complex_io.cc concept-inst.cc ctype.cc demangle.cc ext-inst.cc fstream-inst.cc functexcept.cc globals.cc io-inst.cc ios.cc istream-inst.cc limits.cc locale.cc locale-inst.cc localename.cc misc-inst.cc ostream-inst.cc sstream-inst.cc stdexcept.cc streambuf-inst.cc string-inst.cc strstream.cc valarray-inst.cc wstring-inst.cc ${host_sources} ${host_sources_extra}
allocator-inst.cc \
codecvt.cc \
complex_io.cc \
concept-inst.cc \
ctype.cc \
demangle.cc \
ext-inst.cc \
fstream-inst.cc \
functexcept.cc \
globals.cc \
io-inst.cc \
ios.cc \
istream-inst.cc \
limits.cc \
locale.cc \
locale-inst.cc \
localename.cc \
misc-inst.cc \
ostream-inst.cc \
sstream-inst.cc \
stdexcept.cc \
streambuf-inst.cc \
string-inst.cc \
strstream.cc \
valarray-inst.cc \
wstring-inst.cc \
${host_sources} \
${host_sources_extra}
VPATH = $(top_srcdir)/src:$(top_srcdir) VPATH = $(top_srcdir)/src:$(top_srcdir)
libstdc___la_SOURCES = $(sources) libstdc___la_SOURCES = $(sources)
libstdc___la_LIBADD = \ libstdc___la_LIBADD = $(top_builddir)/libmath/libmath.la $(top_builddir)/libsupc++/libsupc++convenience.la
$(top_builddir)/libmath/libmath.la \
$(top_builddir)/libsupc++/libsupc++convenience.la
libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD) libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \ libstdc___la_LDFLAGS = -version-info @libtool_VERSION@ ${version_arg} -lm @LIBUNWIND_FLAG@
-version-info @libtool_VERSION@ ${version_arg} \
-lm @LIBUNWIND_FLAG@
# Use special rules for the deprecated source files so that they find # Use special rules for the deprecated source files so that they find
...@@ -253,13 +209,8 @@ GLIBCXX_INCLUDE_DIR = @glibcxx_builddir@/include ...@@ -253,13 +209,8 @@ GLIBCXX_INCLUDE_DIR = @glibcxx_builddir@/include
# modified in a per-library or per-sub-library way. Need to manually # modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after # set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion call for it. # as the occasion calls for it.
AM_CXXFLAGS = \ AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
-fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \
$(CONFIG_CXXFLAGS)
# libstdc++ libtool notes # libstdc++ libtool notes
...@@ -280,8 +231,7 @@ AM_CXXFLAGS = \ ...@@ -280,8 +231,7 @@ AM_CXXFLAGS = \
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use # attempt to infer which configuration to use
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
# 3) We'd have a problem when building the shared libstdc++ object if # 3) We'd have a problem when building the shared libstdc++ object if
...@@ -290,8 +240,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ ...@@ -290,8 +240,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
# course is problematic at this point. So, we get the top-level # course is problematic at this point. So, we get the top-level
# directory to configure libstdc++-v3 to use gcc as the C++ # directory to configure libstdc++-v3 to use gcc as the C++
# compilation driver. # compilation driver.
CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \ CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
debugdir = debug debugdir = debug
...@@ -321,7 +270,7 @@ DIST_COMMON = Makefile.am Makefile.in ...@@ -321,7 +270,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar TAR = tar
GZIP_ENV = --best GZIP_ENV = --best
SOURCES = $(libstdc___la_SOURCES) SOURCES = $(libstdc___la_SOURCES)
OBJECTS = $(libstdc___la_OBJECTS) OBJECTS = $(libstdc___la_OBJECTS)
...@@ -433,7 +382,7 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ...@@ -433,7 +382,7 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
awk ' { files[$$0] = 1; } \ awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP))
mostlyclean-tags: mostlyclean-tags:
...@@ -540,7 +489,13 @@ distclean-generic clean-generic maintainer-clean-generic clean \ ...@@ -540,7 +489,13 @@ distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean mostlyclean distclean maintainer-clean
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcxx_srcdir}/@SYMVER_MAP@ @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcxx_srcdir}/@SYMVER_MAP@
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ @LN_S@ ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cp ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ if test "x${port_specific_symbol_file}" != x; then \
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cat tmp.top $(port_specific_symbol_file) tmp.bottom > $@; \
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ rm tmp.top tmp.bottom; \
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ fi
@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@libstdc++-symbol.ver: @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@libstdc++-symbol.ver:
codecvt_members.cc: ${glibcxx_srcdir}/@CCODECVT_CC@ codecvt_members.cc: ${glibcxx_srcdir}/@CCODECVT_CC@
...@@ -593,10 +548,10 @@ demangle.o: demangle.cc ...@@ -593,10 +548,10 @@ demangle.o: demangle.cc
@GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug @GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug
@GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug @GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug
@GLIBCXX_BUILD_DEBUG_FALSE@all-local: @GLIBCXX_BUILD_DEBUG_FALSE@all-local:
@GLIBCXX_BUILD_DEBUG_FALSE@install-data-local: @GLIBCXX_BUILD_DEBUG_FALSE@install-data-local:
# Build parallel set of debug objects here. # Build parallel set of debug objects here.
stamp-debug: stamp-debug:
if test ! -d ${debugdir}; then \ if test ! -d ${debugdir}; then \
mkdir -p ${debugdir}; \ mkdir -p ${debugdir}; \
(cd ${debugdir}; \ (cd ${debugdir}; \
...@@ -607,13 +562,13 @@ stamp-debug: ...@@ -607,13 +562,13 @@ stamp-debug:
-e 's/install-data-local: install_debug/install-data-local:/' \ -e 's/install-data-local: install_debug/install-data-local:/' \
< ../Makefile > Makefile) ; \ < ../Makefile > Makefile) ; \
fi; \ fi; \
echo `date` > stamp-debug; echo `date` > stamp-debug;
build_debug: stamp-debug build_debug: stamp-debug
(cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all) (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
# Install debug library here. # Install debug library here.
install_debug: install_debug:
(cd ${debugdir} && $(MAKE) \ (cd ${debugdir} && $(MAKE) \
toolexeclibdir=@glibcxx_toolexeclibdir@/debug install) toolexeclibdir=@glibcxx_toolexeclibdir@/debug install)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment