Hi!

On Thu, 30 Jul 2015 10:09:05 +0200, Richard Biener <richard.guent...@gmail.com> 
wrote:
> On Thu, Jul 30, 2015 at 1:05 AM, Nathan Sidwell <nat...@acm.org> wrote:
> > Jakub,
> > this patch augments the lto wrapper to print out the arguments to spawned
> > commands when verbose.  I found this useful in debugging recent development.
> >
> > ok for trunk?
> 
> Err - fork_execute through collect_execute already does this if
> verbose || debug.
> 
> So better figure out why this doesn't work.

We need to pass on the verbose flag.  I once came up with the following
patch (depends on "Refactor intelmic-mkoffload.c argv building",
<http://news.gmane.org/find-root.php?message_id=%3C87r3ljuez8.fsf%40kepler.schwinge.homeip.net%3E>);
OK for trunk?

commit ad0b6608cff22b62b73016c91c74b21a168acb46
Author: Thomas Schwinge <tho...@codesourcery.com>
Date:   Tue Aug 4 14:08:23 2015 +0200

    Pass on the verbose flag "-v" to/in the mkoffloads
    
        gcc/
        * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
        (generate_target_descr_file, generate_target_offloadend_file)
        (generate_host_descr_file, prepare_target_image, main): Pass it
        on.
        * config/nvptx/mkoffload.c (main): Parse "-v" flag.
        (compile_native, main): Pass it on.
        * lto-wrapper.c (compile_offload_image): Likewise.
---
 gcc/config/i386/intelmic-mkoffload.c |   24 +++++++++++++++++++++---
 gcc/config/nvptx/mkoffload.c         |    6 ++++++
 gcc/lto-wrapper.c                    |    2 ++
 3 files changed, 29 insertions(+), 3 deletions(-)

diff --git gcc/config/i386/intelmic-mkoffload.c 
gcc/config/i386/intelmic-mkoffload.c
index 8d5af0d..ae1bde0 100644
--- gcc/config/i386/intelmic-mkoffload.c
+++ gcc/config/i386/intelmic-mkoffload.c
@@ -281,6 +281,8 @@ generate_target_descr_file (const char *target_compiler)
   struct obstack argv_obstack;
   obstack_init (&argv_obstack);
   obstack_ptr_grow (&argv_obstack, target_compiler);
+  if (verbose)
+    obstack_ptr_grow (&argv_obstack, "-v");
   obstack_ptr_grow (&argv_obstack, "-c");
   obstack_ptr_grow (&argv_obstack, "-shared");
   obstack_ptr_grow (&argv_obstack, "-fPIC");
@@ -319,6 +321,8 @@ generate_target_offloadend_file (const char 
*target_compiler)
   struct obstack argv_obstack;
   obstack_init (&argv_obstack);
   obstack_ptr_grow (&argv_obstack, target_compiler);
+  if (verbose)
+    obstack_ptr_grow (&argv_obstack, "-v");
   obstack_ptr_grow (&argv_obstack, "-c");
   obstack_ptr_grow (&argv_obstack, "-shared");
   obstack_ptr_grow (&argv_obstack, "-fPIC");
@@ -380,9 +384,11 @@ generate_host_descr_file (const char *host_compiler)
   fclose (src_file);
 
   unsigned new_argc = 0;
-#define NEW_ARGC_MAX 9
+#define NEW_ARGC_MAX 10
   const char *new_argv[NEW_ARGC_MAX];
   new_argv[new_argc++] = host_compiler;
+  if (verbose)
+    new_argv[new_argc++] = "-v";
   new_argv[new_argc++] = "-c";
   new_argv[new_argc++] = "-fPIC";
   new_argv[new_argc++] = "-shared";
@@ -429,6 +435,8 @@ prepare_target_image (const char *target_compiler, int 
argc, char **argv)
   struct obstack argv_obstack;
   obstack_init (&argv_obstack);
   obstack_ptr_grow (&argv_obstack, target_compiler);
+  if (verbose)
+    obstack_ptr_grow (&argv_obstack, "-v");
   obstack_ptr_grow (&argv_obstack, "-xlto");
   obstack_ptr_grow (&argv_obstack, "-shared");
   obstack_ptr_grow (&argv_obstack, "-fPIC");
@@ -448,7 +456,7 @@ prepare_target_image (const char *target_compiler, int 
argc, char **argv)
   compile_for_target (&argv_obstack);
 
   unsigned objcopy_argc;
-#define OBJCOPY_ARGC_MAX 11
+#define OBJCOPY_ARGC_MAX 12
   const char *objcopy_argv[OBJCOPY_ARGC_MAX];
 
   /* Run objcopy.  */
@@ -457,6 +465,8 @@ prepare_target_image (const char *target_compiler, int 
argc, char **argv)
   sprintf (rename_section_opt, ".data=%s", image_section_name);
   objcopy_argc = 0;
   objcopy_argv[objcopy_argc++] = "objcopy";
+  if (verbose)
+    objcopy_argv[objcopy_argc++] = "-v";
   objcopy_argv[objcopy_argc++] = "-B";
   objcopy_argv[objcopy_argc++] = "i386";
   objcopy_argv[objcopy_argc++] = "-I";
@@ -510,6 +520,8 @@ prepare_target_image (const char *target_compiler, int 
argc, char **argv)
 
   objcopy_argc = 0;
   objcopy_argv[objcopy_argc++] = "objcopy";
+  if (verbose)
+    objcopy_argv[objcopy_argc++] = "-v";
   objcopy_argv[objcopy_argc++] = target_so_filename;
   objcopy_argv[objcopy_argc++] = "--redefine-sym";
   objcopy_argv[objcopy_argc++] = opt_for_objcopy[0];
@@ -565,6 +577,8 @@ main (int argc, char **argv)
                         "unrecognizable argument of option " STR);
        }
 #undef STR
+      else if (strcmp (argv[i], "-v") == 0)
+       verbose = true;
     }
 
   const char *target_so_filename
@@ -573,13 +587,15 @@ main (int argc, char **argv)
   const char *host_descr_filename = generate_host_descr_file (host_compiler);
 
   unsigned new_argc;
-#define NEW_ARGC_MAX 9
+#define NEW_ARGC_MAX 10
   const char *new_argv[NEW_ARGC_MAX];
 
   /* Perform partial linking for the target image and host side descriptor.
      As a result we'll get a finalized object file with all offload data.  */
   new_argc = 0;
   new_argv[new_argc++] = "ld";
+  if (verbose)
+    new_argv[new_argc++] = "-v";
   new_argv[new_argc++] = "-m";
   switch (offload_abi)
     {
@@ -605,6 +621,8 @@ main (int argc, char **argv)
      to avoid conflicting between different DSO and an executable.  */
   new_argc = 0;
   new_argv[new_argc++] = "objcopy";
+  if (verbose)
+    new_argv[new_argc++] = "-v";
   new_argv[new_argc++] = "-L";
   new_argv[new_argc++] = symbols[0];
   new_argv[new_argc++] = "-L";
diff --git gcc/config/nvptx/mkoffload.c gcc/config/nvptx/mkoffload.c
index 78ac8fe..eed099f 100644
--- gcc/config/nvptx/mkoffload.c
+++ gcc/config/nvptx/mkoffload.c
@@ -919,6 +919,8 @@ compile_native (const char *infile, const char *outfile, 
const char *compiler)
   struct obstack argv_obstack;
   obstack_init (&argv_obstack);
   obstack_ptr_grow (&argv_obstack, compiler);
+  if (verbose)
+    obstack_ptr_grow (&argv_obstack, "-v");
   switch (offload_abi)
     {
     case OFFLOAD_ABI_LP64:
@@ -1022,11 +1024,15 @@ main (int argc, char **argv)
                         "unrecognizable argument of option " STR);
        }
 #undef STR
+      else if (strcmp (argv[i], "-v") == 0)
+       verbose = true;
     }
 
   struct obstack argv_obstack;
   obstack_init (&argv_obstack);
   obstack_ptr_grow (&argv_obstack, driver);
+  if (verbose)
+    obstack_ptr_grow (&argv_obstack, "-v");
   obstack_ptr_grow (&argv_obstack, "-xlto");
   switch (offload_abi)
     {
diff --git gcc/lto-wrapper.c gcc/lto-wrapper.c
index e13a82a..f932758 100644
--- gcc/lto-wrapper.c
+++ gcc/lto-wrapper.c
@@ -685,6 +685,8 @@ compile_offload_image (const char *target, const char 
*compiler_path,
       struct obstack argv_obstack;
       obstack_init (&argv_obstack);
       obstack_ptr_grow (&argv_obstack, compiler);
+      if (verbose)
+       obstack_ptr_grow (&argv_obstack, "-v");
       obstack_ptr_grow (&argv_obstack, "-o");
       obstack_ptr_grow (&argv_obstack, filename);
 


Grüße,
 Thomas

Attachment: signature.asc
Description: PGP signature

Reply via email to