public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* framework annotations for -v
@ 2007-03-06 23:14 Mike Stump
  2007-03-13  5:29 ` Mike Stump
  0 siblings, 1 reply; 9+ messages in thread
From: Mike Stump @ 2007-03-06 23:14 UTC (permalink / raw)
  To: gcc-patches@gcc.gnu.org Patches

Here is one to allow a target to annotate the -v output for include  
directories that have different include semantics defined by the  
target through the cpplib construct callback.  With this, the output  
for:

   $ ./xgcc -B./ -v t.c -F.

on darwin looks like:

#include "..." search starts here:
#include <...> search starts here:
  . (framework directory)
  ./include
  ./include-fixed
  /usr/local/include
  /usr/include
  /System/Library/Frameworks (framework directory)
  /Library/Frameworks (framework directory)
End of search list.

This aids in user comprehension of the output.

Tested by building and running a linux cross compiler and a darwin  
native compiler.

Ok?

mrs2 $ cat ~/diffs/framework-2.diffs
2007-03-06  Mike Stump  <mrs@apple.com>

	* c-incpath.c (merge_include_chains): Allow targets to annnotate
	include directories that use the construct callback.
	* target.h (struct gcc_targetcm): Add include_construct_tag.
	* targhooks.h (default_include_construct_tag): Add.
	* targhooks.c (default_include_construct_tag): Add.
	* target-def.h (TARGET_INCLUDE_CONSTRUCT_TAG): Add.
	(TARGETCM_INITIALIZER): Add TARGET_INCLUDE_CONSTRUCT_TAG.
	* doc/tm.texi (TARGET_INCLUDE_CONSTRUCT_TAG): Add.

	* config/darwin-c.c (include_construct_tag): Add.
	(TARGET_INCLUDE_CONSTRUCT_TAG): Add.
	
Doing diffs in .:
--- ./c-incpath.c.~1~	2006-12-22 21:07:11.000000000 -0800
+++ ./c-incpath.c	2007-03-06 12:42:50.000000000 -0800
@@ -310,7 +310,11 @@ merge_include_chains (cpp_reader *pfile,
  	    fprintf (stderr, _("#include <...> search starts here:\n"));
  	  if (!p)
  	    break;
-	  fprintf (stderr, " %s\n", p->name);
+	  if (p->construct == 0)
+	    fprintf (stderr, " %s\n", p->name);
+	  else
+	    fprintf (stderr, " %s%s\n", p->name,
+		     targetcm.include_construct_tag (p));
  	}
        fprintf (stderr, _("End of search list.\n"));
      }
--- ./config/darwin-c.c.~1~	2007-03-05 16:02:48.000000000 -0800
+++ ./config/darwin-c.c	2007-03-06 13:53:40.000000000 -0800
@@ -641,7 +641,17 @@ handle_c_option (size_t code,
    return true;
  }

+static const char *
+include_construct_tag (struct cpp_dir *p)
+{
+  if (p->construct == framework_construct_pathname)
+    return " (framework directory)";
+  return "";
+}
+
  #undef TARGET_HANDLE_C_OPTION
  #define TARGET_HANDLE_C_OPTION handle_c_option
+#undef TARGET_INCLUDE_CONSTRUCT_TAG
+#define TARGET_INCLUDE_CONSTRUCT_TAG include_construct_tag

  struct gcc_targetcm targetcm = TARGETCM_INITIALIZER;
--- ./doc/tm.texi.~1~	2007-03-05 16:02:48.000000000 -0800
+++ ./doc/tm.texi	2007-03-06 14:16:29.000000000 -0800
@@ -10146,3 +10146,9 @@ SUPPORTS_WEAK and TARGET_HAVE_NAMED_SECT
  This macro determines the size of the objective C jump buffer for the
  NeXT runtime. By default, OBJC_JBLEN is defined to an innocuous value.
  @end defmac
+
+@deftypefn {Target Hook} {const char *} TARGET_INCLUDE_CONSTRUCT_TAG  
(struct cpp_dir *)
+This target hook is a function to output a descriptive tag for the -v
+output for the passed cpp_dir when those directories use the construct
+callback for target defined semantics.
+@end deftypefn
--- ./target-def.h.~1~	2007-03-05 16:02:48.000000000 -0800
+++ ./target-def.h	2007-03-06 12:29:07.000000000 -0800
@@ -731,7 +731,12 @@ Foundation, 51 Franklin Street, Fifth Fl
  }

  #define TARGET_HANDLE_C_OPTION default_handle_c_option
-#define TARGETCM_INITIALIZER { TARGET_HANDLE_C_OPTION }
+#define TARGET_INCLUDE_CONSTRUCT_TAG default_include_construct_tag
+
+#define TARGETCM_INITIALIZER {			\
+  TARGET_HANDLE_C_OPTION,			\
+  TARGET_INCLUDE_CONSTRUCT_TAG			\
+}

  #include "hooks.h"
  #include "targhooks.h"
--- ./target.h.~1~	2007-03-05 16:02:48.000000000 -0800
+++ ./target.h	2007-03-06 13:03:01.000000000 -0800
@@ -892,6 +892,8 @@ struct gcc_target

  extern struct gcc_target targetm;

+struct cpp_dir;
+
  struct gcc_targetcm {
    /* Handle target switch CODE (an OPT_* value).  ARG is the argument
       passed to the switch; it is NULL if no argument was.  VALUE is  
the
@@ -899,6 +901,11 @@ struct gcc_targetcm {
       1 if the positive form of the switch was used and 0 if the  
negative
       form was.  Return true if the switch was valid.  */
    bool (*handle_c_option) (size_t code, const char *arg, int value);
+
+  /* Return an annotation for an include directory for the output of
+     -v for include directories that use the construct callback to
+     construct a filename to include.  */
+  const char *(*include_construct_tag) (struct cpp_dir *p);
  };

  /* Each target can provide their own.  */
--- ./targhooks.c.~1~	2007-03-05 16:02:48.000000000 -0800
+++ ./targhooks.c	2007-03-06 12:44:43.000000000 -0800
@@ -622,4 +622,10 @@ default_handle_c_option (size_t code ATT
    return false;
  }

+const char *
+default_include_construct_tag (struct cpp_dir* P ATTRIBUTE_UNUSED)
+{
+  return "";
+}
+
  #include "gt-targhooks.h"
--- ./targhooks.h.~1~	2007-03-05 16:02:48.000000000 -0800
+++ ./targhooks.h	2007-03-06 12:44:11.000000000 -0800
@@ -83,3 +83,4 @@ extern enum reg_class default_secondary_
  						secondary_reload_info *);
  extern void hook_void_bitmap (bitmap);
  extern bool default_handle_c_option (size_t, const char *, int);
+extern const char *default_include_construct_tag (struct cpp_dir *);
--------------

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-03-06 23:14 framework annotations for -v Mike Stump
@ 2007-03-13  5:29 ` Mike Stump
  2007-03-22 18:42   ` Mike Stump
  0 siblings, 1 reply; 9+ messages in thread
From: Mike Stump @ 2007-03-13  5:29 UTC (permalink / raw)
  To: gcc-patches@gcc.gnu.org Patches

On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
> Here is one to allow a target to annotate the -v output for include  
> directories that have different include semantics defined by the  
> target through the cpplib construct callback.

Ping?

http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-03-13  5:29 ` Mike Stump
@ 2007-03-22 18:42   ` Mike Stump
  2007-03-30 17:38     ` Mike Stump
  0 siblings, 1 reply; 9+ messages in thread
From: Mike Stump @ 2007-03-22 18:42 UTC (permalink / raw)
  To: gcc-patches@gcc.gnu.org Patches

Ping?

On Mar 12, 2007, at 6:41 PM, Mike Stump wrote:

> On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
>> Here is one to allow a target to annotate the -v output for  
>> include directories that have different include semantics defined  
>> by the target through the cpplib construct callback.
>
> Ping?
>
> http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-03-22 18:42   ` Mike Stump
@ 2007-03-30 17:38     ` Mike Stump
  2007-03-30 21:02       ` Michael Meissner
  2007-04-26  2:34       ` Mike Stump
  0 siblings, 2 replies; 9+ messages in thread
From: Mike Stump @ 2007-03-30 17:38 UTC (permalink / raw)
  To: Mike Stump; +Cc: gcc-patches@gcc.gnu.org Patches

Ping?

On Mar 22, 2007, at 10:49 AM, Mike Stump wrote:

> Ping?
> On Mar 12, 2007, at 6:41 PM, Mike Stump wrote:
>> On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
>>> Here is one to allow a target to annotate the -v output for  
>>> include directories that have different include semantics defined  
>>> by the target through the cpplib construct callback.
>>
>> Ping?
>>
>> http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-03-30 17:38     ` Mike Stump
@ 2007-03-30 21:02       ` Michael Meissner
  2007-04-26  2:34       ` Mike Stump
  1 sibling, 0 replies; 9+ messages in thread
From: Michael Meissner @ 2007-03-30 21:02 UTC (permalink / raw)
  To: Mike Stump; +Cc: gcc-patches@gcc.gnu.org Patches

On Fri, Mar 30, 2007 at 10:24:03AM -0700, Mike Stump wrote:
> Ping?
> 
> On Mar 22, 2007, at 10:49 AM, Mike Stump wrote:
> 
> >Ping?
> >On Mar 12, 2007, at 6:41 PM, Mike Stump wrote:
> >>On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
> >>>Here is one to allow a target to annotate the -v output for  
> >>>include directories that have different include semantics defined  
> >>>by the target through the cpplib construct callback.
> >>
> >>Ping?
> >>
> >>http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html
> 

I looked at this, and it seems like it would be useful.  The one comment I have
is in the following part of the patch

--- ./c-incpath.c.~1~   2006-12-22 21:07:11.000000000 -0800
+++ ./c-incpath.c       2007-03-06 12:42:50.000000000 -0800
@@ -310,7 +310,11 @@ merge_include_chains (cpp_reader *pfile,
            fprintf (stderr, _("#include <...> search starts here:\n"));
          if (!p)
            break;
-         fprintf (stderr, " %s\n", p->name);
+         if (p->construct == 0)
+           fprintf (stderr, " %s\n", p->name);
+         else
+           fprintf (stderr, " %s%s\n", p->name,
+                    targetcm.include_construct_tag (p));
        }
       fprintf (stderr, _("End of search list.\n"));
     }
 

It may be safer programming to verify that targetcm.include_construct_tag does
not return a NULL pointer, and if it returns a NULL, just print the name.

-- 
Michael Meissner, AMD
90 Central Street, MS 83-29, Boxborough, MA, 01719, USA
michael.meissner@amd.com


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-03-30 17:38     ` Mike Stump
  2007-03-30 21:02       ` Michael Meissner
@ 2007-04-26  2:34       ` Mike Stump
  2007-05-01 17:59         ` Mike Stump
  1 sibling, 1 reply; 9+ messages in thread
From: Mike Stump @ 2007-04-26  2:34 UTC (permalink / raw)
  To: gcc-patches List

Ping?

On Mar 30, 2007, at 10:24 AM, Mike Stump wrote:
> Ping?
>
> On Mar 22, 2007, at 10:49 AM, Mike Stump wrote:
>
>> Ping?
>> On Mar 12, 2007, at 6:41 PM, Mike Stump wrote:
>>> On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
>>>> Here is one to allow a target to annotate the -v output for  
>>>> include directories that have different include semantics  
>>>> defined by the target through the cpplib construct callback.
>>>
>>> Ping?
>>>
>>> http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-04-26  2:34       ` Mike Stump
@ 2007-05-01 17:59         ` Mike Stump
  2007-05-21 22:11           ` Mike Stump
  0 siblings, 1 reply; 9+ messages in thread
From: Mike Stump @ 2007-05-01 17:59 UTC (permalink / raw)
  To: gcc-patches List

Ping?

On Apr 25, 2007, at 7:16 PM, Mike Stump wrote:
> Ping?
> On Mar 30, 2007, at 10:24 AM, Mike Stump wrote:
>> Ping?
>> On Mar 22, 2007, at 10:49 AM, Mike Stump wrote:
>>> Ping?
>>> On Mar 12, 2007, at 6:41 PM, Mike Stump wrote:
>>>> On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
>>>>> Here is one to allow a target to annotate the -v output for  
>>>>> include directories that have different include semantics  
>>>>> defined by the target through the cpplib construct callback.
>>>>
>>>> Ping?
>>>>
>>>> http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-05-01 17:59         ` Mike Stump
@ 2007-05-21 22:11           ` Mike Stump
  2007-06-27 20:20             ` Mike Stump
  0 siblings, 1 reply; 9+ messages in thread
From: Mike Stump @ 2007-05-21 22:11 UTC (permalink / raw)
  To: gcc-patches List

PIng?

On May 1, 2007, at 10:59 AM, Mike Stump wrote:
> Ping?
> On Apr 25, 2007, at 7:16 PM, Mike Stump wrote:
>> Ping?
>> On Mar 30, 2007, at 10:24 AM, Mike Stump wrote:
>>> Ping?
>>> On Mar 22, 2007, at 10:49 AM, Mike Stump wrote:
>>>> Ping?
>>>> On Mar 12, 2007, at 6:41 PM, Mike Stump wrote:
>>>>> On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
>>>>>> Here is one to allow a target to annotate the -v output for  
>>>>>> include directories that have different include semantics  
>>>>>> defined by the target through the cpplib construct callback.
>>>>>
>>>>> Ping?
>>>>>
>>>>> http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: framework annotations for -v
  2007-05-21 22:11           ` Mike Stump
@ 2007-06-27 20:20             ` Mike Stump
  0 siblings, 0 replies; 9+ messages in thread
From: Mike Stump @ 2007-06-27 20:20 UTC (permalink / raw)
  To: gcc-patches List

Ping?

On May 21, 2007, at 3:11 PM, Mike Stump wrote:
> PIng?
> On May 1, 2007, at 10:59 AM, Mike Stump wrote:
>> Ping?
>> On Apr 25, 2007, at 7:16 PM, Mike Stump wrote:
>>> Ping?
>>> On Mar 30, 2007, at 10:24 AM, Mike Stump wrote:
>>>> Ping?
>>>> On Mar 22, 2007, at 10:49 AM, Mike Stump wrote:
>>>>> Ping?
>>>>> On Mar 12, 2007, at 6:41 PM, Mike Stump wrote:
>>>>>> On Mar 6, 2007, at 2:24 PM, Mike Stump wrote:
>>>>>>> Here is one to allow a target to annotate the -v output for  
>>>>>>> include directories that have different include semantics  
>>>>>>> defined by the target through the cpplib construct callback.
>>>>>>
>>>>>> Ping?
>>>>>>
>>>>>> http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00390.html
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-06-27 19:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-03-06 23:14 framework annotations for -v Mike Stump
2007-03-13  5:29 ` Mike Stump
2007-03-22 18:42   ` Mike Stump
2007-03-30 17:38     ` Mike Stump
2007-03-30 21:02       ` Michael Meissner
2007-04-26  2:34       ` Mike Stump
2007-05-01 17:59         ` Mike Stump
2007-05-21 22:11           ` Mike Stump
2007-06-27 20:20             ` Mike Stump

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).