Commit 2b6dd222 by Joseph Myers Committed by Joseph Myers

re PR libstdc++/25524 (libstdc++ headers should go in multilib directories)

	PR libstdc++/25524
	* cppdefault.h (struct default_include): Add multilib flag.
	* cppdefault.c (cpp_include_defaults): Set it.
	* c.opt (-imultilib): New option.
	* c-opts.c (imultilib): New.
	(c_common_handle_option): Handle -imultilib.
	(c_common_post_options): Likewise.
	* c-incpath.c (add_standard_paths, register_include_chains):
	Likewise.
	* c-incpath.h (register_include_chains): Add extra parameter.
	* gcc.c (do_spec_1): Generate -imultilib option.
	(The Specs Language): Update %I description.
	(process_command): Update copyright notice.
	* doc/cppopts.texi (-imultilib): Document.
	* doc/invoke.texi (-imultilib): Include in option summary.
	(%I): Update specs documentation.

libstdc++-v3:
	* include/Makefile.am: Install host-specific headers in multilib
	subdirectory.
	* include/Makefile.in: Regenerate.

From-SVN: r110037
parent 6018b746
2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
PR libstdc++/25524
* cppdefault.h (struct default_include): Add multilib flag.
* cppdefault.c (cpp_include_defaults): Set it.
* c.opt (-imultilib): New option.
* c-opts.c (imultilib): New.
(c_common_handle_option): Handle -imultilib.
(c_common_post_options): Likewise.
* c-incpath.c (add_standard_paths, register_include_chains):
Likewise.
* c-incpath.h (register_include_chains): Add extra parameter.
* gcc.c (do_spec_1): Generate -imultilib option.
(The Specs Language): Update %I description.
(process_command): Update copyright notice.
* doc/cppopts.texi (-imultilib): Document.
* doc/invoke.texi (-imultilib): Include in option summary.
(%I): Update specs documentation.
2006-01-20 Zdenek Dvorak <dvorakz@suse.cz> 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
* loop-iv.c (iv_analysis_loop_init): Use df in more conservative way. * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
......
/* Set up combined include path chain for the preprocessor. /* Set up combined include path chain for the preprocessor.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
Broken out of cppinit.c and cppfiles.c and rewritten Mar 2003. Broken out of cppinit.c and cppfiles.c and rewritten Mar 2003.
...@@ -45,8 +46,10 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ...@@ -45,8 +46,10 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
# define INO_T_COPY(DEST, SRC) (DEST) = (SRC) # define INO_T_COPY(DEST, SRC) (DEST) = (SRC)
#endif #endif
static const char dir_separator_str[] = { DIR_SEPARATOR, 0 };
static void add_env_var_paths (const char *, int); static void add_env_var_paths (const char *, int);
static void add_standard_paths (const char *, const char *, int); static void add_standard_paths (const char *, const char *, const char *, int);
static void free_path (struct cpp_dir *, int); static void free_path (struct cpp_dir *, int);
static void merge_include_chains (cpp_reader *, int); static void merge_include_chains (cpp_reader *, int);
static struct cpp_dir *remove_duplicates (cpp_reader *, struct cpp_dir *, static struct cpp_dir *remove_duplicates (cpp_reader *, struct cpp_dir *,
...@@ -120,7 +123,8 @@ add_env_var_paths (const char *env_var, int chain) ...@@ -120,7 +123,8 @@ add_env_var_paths (const char *env_var, int chain)
/* Append the standard include chain defined in cppdefault.c. */ /* Append the standard include chain defined in cppdefault.c. */
static void static void
add_standard_paths (const char *sysroot, const char *iprefix, int cxx_stdinc) add_standard_paths (const char *sysroot, const char *iprefix,
const char *imultilib, int cxx_stdinc)
{ {
const struct default_include *p; const struct default_include *p;
size_t len; size_t len;
...@@ -142,6 +146,8 @@ add_standard_paths (const char *sysroot, const char *iprefix, int cxx_stdinc) ...@@ -142,6 +146,8 @@ add_standard_paths (const char *sysroot, const char *iprefix, int cxx_stdinc)
if (!strncmp (p->fname, cpp_GCC_INCLUDE_DIR, len)) if (!strncmp (p->fname, cpp_GCC_INCLUDE_DIR, len))
{ {
char *str = concat (iprefix, p->fname + len, NULL); char *str = concat (iprefix, p->fname + len, NULL);
if (p->multilib && imultilib)
str = concat (str, dir_separator_str, imultilib, NULL);
add_path (str, SYSTEM, p->cxx_aware, false); add_path (str, SYSTEM, p->cxx_aware, false);
} }
} }
...@@ -160,6 +166,9 @@ add_standard_paths (const char *sysroot, const char *iprefix, int cxx_stdinc) ...@@ -160,6 +166,9 @@ add_standard_paths (const char *sysroot, const char *iprefix, int cxx_stdinc)
else else
str = update_path (p->fname, p->component); str = update_path (p->fname, p->component);
if (p->multilib && imultilib)
str = concat (str, dir_separator_str, imultilib, NULL);
add_path (str, SYSTEM, p->cxx_aware, false); add_path (str, SYSTEM, p->cxx_aware, false);
} }
} }
...@@ -357,8 +366,8 @@ add_path (char *path, int chain, int cxx_aware, bool user_supplied_p) ...@@ -357,8 +366,8 @@ add_path (char *path, int chain, int cxx_aware, bool user_supplied_p)
removal, and registration with cpplib. */ removal, and registration with cpplib. */
void void
register_include_chains (cpp_reader *pfile, const char *sysroot, register_include_chains (cpp_reader *pfile, const char *sysroot,
const char *iprefix, int stdinc, int cxx_stdinc, const char *iprefix, const char *imultilib,
int verbose) int stdinc, int cxx_stdinc, int verbose)
{ {
static const char *const lang_env_vars[] = static const char *const lang_env_vars[] =
{ "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH", { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH",
...@@ -380,7 +389,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot, ...@@ -380,7 +389,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
/* Finally chain on the standard directories. */ /* Finally chain on the standard directories. */
if (stdinc) if (stdinc)
add_standard_paths (sysroot, iprefix, cxx_stdinc); add_standard_paths (sysroot, iprefix, imultilib, cxx_stdinc);
target_c_incpath.extra_includes (sysroot, iprefix, stdinc); target_c_incpath.extra_includes (sysroot, iprefix, stdinc);
......
/* Set up combined include path for the preprocessor. /* Set up combined include path for the preprocessor.
Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the under the terms of the GNU General Public License as published by the
...@@ -18,7 +18,8 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ...@@ -18,7 +18,8 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
extern void split_quote_chain (void); extern void split_quote_chain (void);
extern void add_path (char *, int, int, bool); extern void add_path (char *, int, int, bool);
extern void register_include_chains (cpp_reader *, const char *, extern void register_include_chains (cpp_reader *, const char *,
const char *, int, int, int); const char *, const char *,
int, int, int);
extern void add_cpp_dir_path (struct cpp_dir *, int); extern void add_cpp_dir_path (struct cpp_dir *, int);
struct target_c_incpath_s { struct target_c_incpath_s {
......
/* C/ObjC/C++ command line option handling. /* C/ObjC/C++ command line option handling.
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
Contributed by Neil Booth. Contributed by Neil Booth.
This file is part of GCC. This file is part of GCC.
...@@ -79,6 +79,9 @@ static const char *deps_file; ...@@ -79,6 +79,9 @@ static const char *deps_file;
/* The prefix given by -iprefix, if any. */ /* The prefix given by -iprefix, if any. */
static const char *iprefix; static const char *iprefix;
/* The multilib directory given by -imultilib, if any. */
static const char *imultilib;
/* The system root, if any. Overridden by -isysroot. */ /* The system root, if any. Overridden by -isysroot. */
static const char *sysroot = TARGET_SYSTEM_ROOT; static const char *sysroot = TARGET_SYSTEM_ROOT;
...@@ -815,6 +818,10 @@ c_common_handle_option (size_t scode, const char *arg, int value) ...@@ -815,6 +818,10 @@ c_common_handle_option (size_t scode, const char *arg, int value)
defer_opt (code, arg); defer_opt (code, arg);
break; break;
case OPT_imultilib:
imultilib = arg;
break;
case OPT_iprefix: case OPT_iprefix:
iprefix = arg; iprefix = arg;
break; break;
...@@ -967,7 +974,7 @@ c_common_post_options (const char **pfilename) ...@@ -967,7 +974,7 @@ c_common_post_options (const char **pfilename)
sanitize_cpp_opts (); sanitize_cpp_opts ();
register_include_chains (parse_in, sysroot, iprefix, register_include_chains (parse_in, sysroot, iprefix, imultilib,
std_inc, std_cxx_inc && c_dialect_cxx (), verbose); std_inc, std_cxx_inc && c_dialect_cxx (), verbose);
flag_inline_trees = 1; flag_inline_trees = 1;
......
; Options for the C, ObjC, C++ and ObjC++ front ends. ; Options for the C, ObjC, C++ and ObjC++ front ends.
; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
; ;
; This file is part of GCC. ; This file is part of GCC.
; ;
...@@ -757,6 +757,10 @@ imacros ...@@ -757,6 +757,10 @@ imacros
C ObjC C++ ObjC++ Joined Separate C ObjC C++ ObjC++ Joined Separate
-imacros <file> Accept definition of macros in <file> -imacros <file> Accept definition of macros in <file>
imultilib
C ObjC C++ ObjC++ Joined Separate
-imultilib <dir> Set <dir> to be the multilib include subdirectory
include include
C ObjC C++ ObjC++ Joined Separate C ObjC C++ ObjC++ Joined Separate
-include <file> Include the contents of <file> before other files -include <file> Include the contents of <file> before other files
......
/* CPP Library. /* CPP Library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2003, 2004 Free Software Foundation, Inc. 1999, 2000, 2003, 2004, 2006 Free Software Foundation, Inc.
Contributed by Per Bothner, 1994-95. Contributed by Per Bothner, 1994-95.
Based on CCCP program by Paul Rubin, June 1986 Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987 Adapted to ANSI C, Richard Stallman, Jan 1987
...@@ -48,44 +48,44 @@ const struct default_include cpp_include_defaults[] ...@@ -48,44 +48,44 @@ const struct default_include cpp_include_defaults[]
= { = {
#ifdef GPLUSPLUS_INCLUDE_DIR #ifdef GPLUSPLUS_INCLUDE_DIR
/* Pick up GNU C++ generic include files. */ /* Pick up GNU C++ generic include files. */
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0 }, { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
#endif #endif
#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
/* Pick up GNU C++ target-dependent include files. */ /* Pick up GNU C++ target-dependent include files. */
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 }, { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 1 },
#endif #endif
#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
/* Pick up GNU C++ backward and deprecated include files. */ /* Pick up GNU C++ backward and deprecated include files. */
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0 }, { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
#endif #endif
#ifdef LOCAL_INCLUDE_DIR #ifdef LOCAL_INCLUDE_DIR
/* /usr/local/include comes before the fixincluded header files. */ /* /usr/local/include comes before the fixincluded header files. */
{ LOCAL_INCLUDE_DIR, 0, 0, 1, 1 }, { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
#endif #endif
#ifdef PREFIX_INCLUDE_DIR #ifdef PREFIX_INCLUDE_DIR
{ PREFIX_INCLUDE_DIR, 0, 0, 1, 0 }, { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
#endif #endif
#ifdef GCC_INCLUDE_DIR #ifdef GCC_INCLUDE_DIR
/* This is the dir for fixincludes and for gcc's private headers. */ /* This is the dir for fixincludes and for gcc's private headers. */
{ GCC_INCLUDE_DIR, "GCC", 0, 0, 0 }, { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
#endif #endif
#ifdef CROSS_INCLUDE_DIR #ifdef CROSS_INCLUDE_DIR
/* One place the target system's headers might be. */ /* One place the target system's headers might be. */
{ CROSS_INCLUDE_DIR, "GCC", 0, 0, 0 }, { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
#endif #endif
#ifdef TOOL_INCLUDE_DIR #ifdef TOOL_INCLUDE_DIR
/* Another place the target system's headers might be. */ /* Another place the target system's headers might be. */
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0 }, { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
#endif #endif
#ifdef SYSTEM_INCLUDE_DIR #ifdef SYSTEM_INCLUDE_DIR
/* Some systems have an extra dir of include files. */ /* Some systems have an extra dir of include files. */
{ SYSTEM_INCLUDE_DIR, 0, 0, 0, 1 }, { SYSTEM_INCLUDE_DIR, 0, 0, 0, 1, 0 },
#endif #endif
#ifdef STANDARD_INCLUDE_DIR #ifdef STANDARD_INCLUDE_DIR
/* /usr/include comes dead last. */ /* /usr/include comes dead last. */
{ STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1 }, { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1, 0 },
#endif #endif
{ 0, 0, 0, 0, 0 } { 0, 0, 0, 0, 0, 0 }
}; };
#endif /* no INCLUDE_DEFAULTS */ #endif /* no INCLUDE_DEFAULTS */
......
/* CPP Library. /* CPP Library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2003, 2004 Free Software Foundation, Inc. 1999, 2000, 2003, 2004, 2006 Free Software Foundation, Inc.
Contributed by Per Bothner, 1994-95. Contributed by Per Bothner, 1994-95.
Based on CCCP program by Paul Rubin, June 1986 Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987 Adapted to ANSI C, Richard Stallman, Jan 1987
...@@ -43,6 +43,9 @@ struct default_include ...@@ -43,6 +43,9 @@ struct default_include
C++. */ C++. */
const char add_sysroot; /* FNAME should be prefixed by const char add_sysroot; /* FNAME should be prefixed by
cpp_SYSROOT. */ cpp_SYSROOT. */
const char multilib; /* FNAME should have the multilib path
specified with -imultilib
appended. */
}; };
extern const struct default_include cpp_include_defaults[]; extern const struct default_include cpp_include_defaults[];
......
@c Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 @c Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c This is part of the CPP and GCC manuals. @c This is part of the CPP and GCC manuals.
@c For copying conditions, see the file gcc.texi. @c For copying conditions, see the file gcc.texi.
...@@ -483,6 +483,11 @@ would; @option{-iwithprefix} puts it where @option{-idirafter} would. ...@@ -483,6 +483,11 @@ would; @option{-iwithprefix} puts it where @option{-idirafter} would.
This option is like the @option{--sysroot} option, but applies only to This option is like the @option{--sysroot} option, but applies only to
header files. See the @option{--sysroot} option for more information. header files. See the @option{--sysroot} option for more information.
@item -imultilib @var{dir}
@opindex imultilib
Use @var{dir} as a subdirectory of the directory containing
target-specific C++ headers.
@item -isystem @var{dir} @item -isystem @var{dir}
@opindex isystem @opindex isystem
Search @var{dir} for header files, after all directories specified by Search @var{dir} for header files, after all directories specified by
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
@c man end @c man end
@c man begin COPYRIGHT @c man begin COPYRIGHT
Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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
...@@ -358,7 +358,7 @@ Objective-C and Objective-C++ Dialects}. ...@@ -358,7 +358,7 @@ Objective-C and Objective-C++ Dialects}.
-include @var{file} -imacros @var{file} @gol -include @var{file} -imacros @var{file} @gol
-iprefix @var{file} -iwithprefix @var{dir} @gol -iprefix @var{file} -iwithprefix @var{dir} @gol
-iwithprefixbefore @var{dir} -isystem @var{dir} @gol -iwithprefixbefore @var{dir} -isystem @var{dir} @gol
-isysroot @var{dir} @gol -imultilib @var{dir} -isysroot @var{dir} @gol
-M -MM -MF -MG -MP -MQ -MT -nostdinc @gol -M -MM -MF -MG -MP -MQ -MT -nostdinc @gol
-P -fworking-directory -remap @gol -P -fworking-directory -remap @gol
-trigraphs -undef -U@var{macro} -Wp,@var{option} @gol -trigraphs -undef -U@var{macro} -Wp,@var{option} @gol
...@@ -6862,9 +6862,9 @@ C@. ...@@ -6862,9 +6862,9 @@ C@.
@item %I @item %I
Substitute any of @option{-iprefix} (made from @env{GCC_EXEC_PREFIX}), Substitute any of @option{-iprefix} (made from @env{GCC_EXEC_PREFIX}),
@option{-isysroot} (made from @env{TARGET_SYSTEM_ROOT}), and @option{-isysroot} (made from @env{TARGET_SYSTEM_ROOT}),
@option{-isystem} (made from @env{COMPILER_PATH} and @option{-B} options) @option{-isystem} (made from @env{COMPILER_PATH} and @option{-B} options)
as necessary. and @option{-imultilib} as necessary.
@item %s @item %s
Current argument is the name of a library or startup file of some sort. Current argument is the name of a library or startup file of some sort.
......
/* Compiler driver program that can handle many languages. /* Compiler driver program that can handle many languages.
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
Inc. Inc.
This file is part of GCC. This file is part of GCC.
...@@ -441,8 +441,8 @@ or with constant text in a single argument. ...@@ -441,8 +441,8 @@ or with constant text in a single argument.
SUFFIX characters following %O as they would following, for SUFFIX characters following %O as they would following, for
example, `.o'. example, `.o'.
%I Substitute any of -iprefix (made from GCC_EXEC_PREFIX), -isysroot %I Substitute any of -iprefix (made from GCC_EXEC_PREFIX), -isysroot
(made from TARGET_SYSTEM_ROOT), and -isystem (made from COMPILER_PATH (made from TARGET_SYSTEM_ROOT), -isystem (made from COMPILER_PATH
and -B options) as necessary. and -B options) and -imultilib as necessary.
%s current argument is the name of a library or startup file of some sort. %s current argument is the name of a library or startup file of some sort.
Search for that file in a standard list of directories Search for that file in a standard list of directories
and substitute the full name found. and substitute the full name found.
...@@ -3535,7 +3535,7 @@ process_command (int argc, const char **argv) ...@@ -3535,7 +3535,7 @@ process_command (int argc, const char **argv)
{ {
/* translate_options () has turned --version into -fversion. */ /* translate_options () has turned --version into -fversion. */
printf (_("%s (GCC) %s\n"), programname, version_string); printf (_("%s (GCC) %s\n"), programname, version_string);
printf ("Copyright %s 2005 Free Software Foundation, Inc.\n", printf ("Copyright %s 2006 Free Software Foundation, Inc.\n",
_("(C)")); _("(C)"));
fputs (_("This is free software; see the source for copying conditions. There is NO\n\ fputs (_("This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"),
...@@ -4947,6 +4947,15 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) ...@@ -4947,6 +4947,15 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
{ {
struct spec_path_info info; struct spec_path_info info;
if (multilib_dir)
{
do_spec_1 ("-imultilib", 1, NULL);
/* Make this a separate argument. */
do_spec_1 (" ", 0, NULL);
do_spec_1 (multilib_dir, 1, NULL);
do_spec_1 (" ", 0, NULL);
}
if (gcc_exec_prefix) if (gcc_exec_prefix)
{ {
do_spec_1 ("-iprefix", 1, NULL); do_spec_1 ("-iprefix", 1, NULL);
......
2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
PR libstdc++/25524
* include/Makefile.am: Install host-specific headers in multilib
subdirectory.
* include/Makefile.in: Regenerate.
2006-01-19 Paolo Carlini <pcarlini@suse.de> 2006-01-19 Paolo Carlini <pcarlini@suse.de>
Implement list::splice (and merge) bits of N1599 Implement list::splice (and merge) bits of N1599
......
## Makefile for the include subdirectory of the GNU C++ Standard library. ## Makefile for the include subdirectory of the GNU C++ Standard library.
## ##
## Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
## Free Software Foundation, Inc.
## ##
## This file is part of the libstdc++ version 3 distribution. ## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in. ## Process this file with automake to produce Makefile.in.
...@@ -614,6 +615,7 @@ endif ...@@ -614,6 +615,7 @@ endif
host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR) host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR)
host_builddir = ./${host_alias}/bits host_builddir = ./${host_alias}/bits
host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits
host_headers = \ host_headers = \
${host_srcdir}/ctype_base.h \ ${host_srcdir}/ctype_base.h \
${host_srcdir}/ctype_inline.h \ ${host_srcdir}/ctype_inline.h \
...@@ -648,6 +650,7 @@ thread_host_headers = \ ...@@ -648,6 +650,7 @@ thread_host_headers = \
pch_input = ${host_builddir}/stdc++.h pch_input = ${host_builddir}/stdc++.h
pch_output_builddir = ${host_builddir}/stdc++.h.gch pch_output_builddir = ${host_builddir}/stdc++.h.gch
pch_output_installdir = ${host_installdir}/stdc++.h.gch
pch_source = ${glibcxx_srcdir}/include/stdc++.h pch_source = ${glibcxx_srcdir}/include/stdc++.h
PCHFLAGS=-Winvalid-pch -Wno-deprecated -x c++-header $(CXXFLAGS) PCHFLAGS=-Winvalid-pch -Wno-deprecated -x c++-header $(CXXFLAGS)
if GLIBCXX_BUILD_PCH if GLIBCXX_BUILD_PCH
...@@ -920,9 +923,9 @@ endif ...@@ -920,9 +923,9 @@ endif
# are copied here. # are copied here.
install-freestanding-headers: install-freestanding-headers:
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${host_builddir} $(mkinstalldirs) $(DESTDIR)${host_installdir}
for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \ for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
$(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir} $(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
...@@ -982,15 +985,15 @@ install-headers: ...@@ -982,15 +985,15 @@ install-headers:
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir}
for file in ${debug_headers}; do \ for file in ${debug_headers}; do \
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${host_builddir} $(mkinstalldirs) $(DESTDIR)${host_installdir}
for file in ${host_headers} ${host_headers_extra} \ for file in ${host_headers} ${host_headers_extra} \
${thread_host_headers}; do \ ${thread_host_headers}; do \
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
install-pch: install-pch:
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pch_output_builddir} $(mkinstalldirs) $(DESTDIR)${pch_output_installdir}
for file in ${pch_output_builddir}/*; do \ for file in ${pch_output_builddir}/*; do \
$(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${pch_output_builddir}; done $(INSTALL_DATA) $$file $(DESTDIR)${pch_output_installdir}; done
# By adding these files here, automake will remove them for 'make clean' # By adding these files here, automake will remove them for 'make clean'
CLEANFILES = ${pch_input} ${pch_output_builddir}/* CLEANFILES = ${pch_input} ${pch_output_builddir}/*
......
...@@ -828,6 +828,7 @@ debug_headers = \ ...@@ -828,6 +828,7 @@ debug_headers = \
@GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = ${c_compatibility_headers} @GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = ${c_compatibility_headers}
host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR) host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR)
host_builddir = ./${host_alias}/bits host_builddir = ./${host_alias}/bits
host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits
host_headers = \ host_headers = \
${host_srcdir}/ctype_base.h \ ${host_srcdir}/ctype_base.h \
${host_srcdir}/ctype_inline.h \ ${host_srcdir}/ctype_inline.h \
...@@ -864,6 +865,7 @@ thread_host_headers = \ ...@@ -864,6 +865,7 @@ thread_host_headers = \
pch_input = ${host_builddir}/stdc++.h pch_input = ${host_builddir}/stdc++.h
pch_output_builddir = ${host_builddir}/stdc++.h.gch pch_output_builddir = ${host_builddir}/stdc++.h.gch
pch_output_installdir = ${host_installdir}/stdc++.h.gch
pch_source = ${glibcxx_srcdir}/include/stdc++.h pch_source = ${glibcxx_srcdir}/include/stdc++.h
PCHFLAGS = -Winvalid-pch -Wno-deprecated -x c++-header $(CXXFLAGS) PCHFLAGS = -Winvalid-pch -Wno-deprecated -x c++-header $(CXXFLAGS)
@GLIBCXX_BUILD_PCH_FALSE@pch_build = @GLIBCXX_BUILD_PCH_FALSE@pch_build =
...@@ -1293,9 +1295,9 @@ ${pch_input}: ${allstamped} ${host_builddir}/c++config.h ${pch_source} ...@@ -1293,9 +1295,9 @@ ${pch_input}: ${allstamped} ${host_builddir}/c++config.h ${pch_source}
# are copied here. # are copied here.
install-freestanding-headers: install-freestanding-headers:
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${host_builddir} $(mkinstalldirs) $(DESTDIR)${host_installdir}
for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \ for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
$(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir} $(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
...@@ -1355,15 +1357,15 @@ install-headers: ...@@ -1355,15 +1357,15 @@ install-headers:
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir}
for file in ${debug_headers}; do \ for file in ${debug_headers}; do \
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${host_builddir} $(mkinstalldirs) $(DESTDIR)${host_installdir}
for file in ${host_headers} ${host_headers_extra} \ for file in ${host_headers} ${host_headers_extra} \
${thread_host_headers}; do \ ${thread_host_headers}; do \
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
install-pch: install-pch:
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pch_output_builddir} $(mkinstalldirs) $(DESTDIR)${pch_output_installdir}
for file in ${pch_output_builddir}/*; do \ for file in ${pch_output_builddir}/*; do \
$(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${pch_output_builddir}; done $(INSTALL_DATA) $$file $(DESTDIR)${pch_output_installdir}; done
# Stop implicit '.o' make rules from ever stomping on extensionless # Stop implicit '.o' make rules from ever stomping on extensionless
# headers, in the improbable case where some foolish, crack-addled # headers, in the improbable case where some foolish, crack-addled
......
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