From 3def13974f5a8ff5026a4a1abeff2131bd6d9049 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Mon, 7 Jul 2008 18:20:06 +0000 Subject: [PATCH] gcc.c (print_sysroot): New. * gcc.c (print_sysroot): New. (option_map, display_help, process_command): Handle the -print-sysroot option. (main): Print the sysroot if requested. * doc/invoke.texi (Debugging Options): Document -print-sysroot. From-SVN: r137584 --- gcc/ChangeLog | 8 ++++++++ gcc/doc/invoke.texi | 10 +++++++++- gcc/gcc.c | 20 ++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 580e615dbb4..cb185825e5a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2008-07-07 Vladimir Prus + + * gcc.c (print_sysroot): New. + (option_map, display_help, process_command): Handle the + -print-sysroot option. + (main): Print the sysroot if requested. + * doc/invoke.texi (Debugging Options): Document -print-sysroot. + 2008-07-07 Ralf Wildenhues PR target/34780 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 5732d984d44..29f5534c377 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -310,7 +310,7 @@ Objective-C and Objective-C++ Dialects}. -p -pg -print-file-name=@var{library} -print-libgcc-file-name @gol -print-multi-directory -print-multi-lib @gol -print-prog-name=@var{program} -print-search-dirs -Q @gol --print-sysroot-headers-suffix @gol +-print-sysroot -print-sysroot-headers-suffix @gol -save-temps -time} @item Optimization Options @@ -5059,6 +5059,14 @@ variable @env{GCC_EXEC_PREFIX} to the directory where you installed them. Don't forget the trailing @samp{/}. @xref{Environment Variables}. +@item -print-sysroot +@opindex print-sysroot +Print the target sysroot directory that will be used during +compilation. This is the target sysroot specified either at configure +time or or using the @option{--sysroot} option, possibly with an extra +suffix that depends on compilation options. If no target sysroot is +specified, the option prints nothing. + @item -print-sysroot-headers-suffix @opindex print-sysroot-headers-suffix Print the suffix added to the target sysroot when searching for diff --git a/gcc/gcc.c b/gcc/gcc.c index 00533247163..7914e4b6f35 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -155,6 +155,8 @@ static const char *print_prog_name = NULL; static int print_multi_directory; +static int print_sysroot; + /* Flag saying to print the relative path we'd use to find OS libraries given the current compiler flags. */ @@ -1162,6 +1164,7 @@ static const struct option_map option_map[] = {"--print-multi-directory", "-print-multi-directory", 0}, {"--print-multi-os-directory", "-print-multi-os-directory", 0}, {"--print-prog-name", "-print-prog-name=", "aj"}, + {"--print-sysroot", "-print-sysroot", 0}, {"--print-sysroot-headers-suffix", "-print-sysroot-headers-suffix", 0}, {"--profile", "-p", 0}, {"--profile-blocks", "-a", 0}, @@ -3244,6 +3247,7 @@ display_help (void) -print-multi-lib Display the mapping between command line options and\n\ multiple library search directories\n"), stdout); fputs (_(" -print-multi-os-directory Display the relative path to OS libraries\n"), stdout); + fputs (_(" -print-sysroot Display the target libraries directory\n"), stdout); fputs (_(" -print-sysroot-headers-suffix Display the sysroot suffix used to find headers\n"), stdout); fputs (_(" -Wa, Pass comma-separated on to the assembler\n"), stdout); fputs (_(" -Wp, Pass comma-separated on to the preprocessor\n"), stdout); @@ -3686,6 +3690,8 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n" print_multi_lib = 1; else if (! strcmp (argv[i], "-print-multi-directory")) print_multi_directory = 1; + else if (! strcmp (argv[i], "-print-sysroot")) + print_sysroot = 1; else if (! strcmp (argv[i], "-print-multi-os-directory")) print_multi_os_directory = 1; else if (! strcmp (argv[i], "-print-sysroot-headers-suffix")) @@ -4126,6 +4132,8 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n" ; else if (! strcmp (argv[i], "-print-multi-directory")) ; + else if (! strcmp (argv[i], "-print-sysroot")) + ; else if (! strcmp (argv[i], "-print-multi-os-directory")) ; else if (! strcmp (argv[i], "-print-sysroot-headers-suffix")) @@ -6529,6 +6537,18 @@ main (int argc, char **argv) return (0); } + if (print_sysroot) + { + if (target_system_root) + { + if (target_sysroot_suffix) + printf ("%s%s\n", target_system_root, target_sysroot_suffix); + else + printf ("%s\n", target_system_root); + } + return (0); + } + if (print_multi_os_directory) { if (multilib_os_dir == NULL) -- 2.30.2