David Malcolm <dmalc...@redhat.com> writes:
> On Wed, 2016-10-05 at 18:00 +0200, Bernd Schmidt wrote:
>> On 10/05/2016 06:15 PM, David Malcolm wrote:
>> >    * errors.c: Use consistent pattern for bconfig.h vs config.h
>> >    includes.
>> >    (progname): Wrap with #ifdef GENERATOR_FILE.
>> >    (error): Likewise.  Add "error: " to message.
>> >    (fatal): Likewise.
>> >    (internal_error): Likewise.
>> >    (trim_filename): Likewise.
>> >    (fancy_abort): Likewise.
>> >    * errors.h (struct file_location): Move here from read-md.h.
>> >    (file_location::file_location): Likewise.
>> >    (error_at): New decl.
>> 
>> Can you split these out into a separate patch as well? I'll require
>> more 
>> explanation for them and they seem largely independent.
>
> [CCing Richard Sandiford]
>
> The gen* tools have their own diagnostics system, in errors.c:
>
> /* warning, error, and fatal.  These definitions are suitable for use
>    in the generator programs; the compiler has a more elaborate suite
>    of diagnostic printers, found in diagnostic.c.  */
>
> with file locations tracked using read-md.h's struct file_location,
> rather than location_t (aka libcpp's source_location).
>
> Implementing an RTL frontend by using the RTL reader from read-rtl.c
> means that we now need a diagnostics subsystem on the *host* for
> handling errors in RTL files, rather than just on the build machine.
>
> There seem to be two ways to do this:
>
>   (A) build the "light" diagnostics system (errors.c) for the host as
> well as build machine, and link it with the RTL reader there, so there
> are two parallel diagnostics subsystems.
>
>   (B) build the "real" diagnostics system (diagnostics*) for the
> *build* machine as well as the host, and use it from the gen* tools,
> eliminating the "light" system, and porting the gen* tools to use
> libcpp for location tracking.
>
> Approach (A) seems to be simpler, which is what this part of the patch
> does.
>
> I've experimented with approach (B).  I think it's doable, but it's
> much more invasive (perhaps needing a libdiagnostics.a and a
> build/libdiagnostics.a in gcc/Makefile.in), so I hope this can be
> followup work.
>
> I can split the relevant parts out into a separate patch, but I was
> wondering if either of you had a strong opinion on (A) vs (B) before I
> do so?

(A) sounds fine to me FWIW.  And sorry for the slow reply.

Thanks,
Richard

Reply via email to