Naming flag for specifying the output file name for Binary Module Interface files

Iain Sandoe iain@sandoe.co.uk
Fri Dec 9 17:33:06 GMT 2022


Hello all.

> On 9 Dec 2022, at 01:58, chuanqi.xcq <yedeng.yd@linux.alibaba.com> wrote:
> 
> It looks like `-fmodule-file` is better from the discussion. So let's take it. Thanks for everyone here

So FAOD (after this discussion) Chuanqi's current patchset implements the following in clang:

-fmodule-output

  - this causes the BMI to be saved in the CWG with the basename of the source file and a suffix of .pcm.

-fmodule-output=<path>

 - this causes the BMI to be saved at the path specified.

===

These facilities support build systems that do not use the P1184 interface to map between module names and paths.

cheers
Iain

> 
> Thanks,
> Chuanqi
> ------------------------------------------------------------------
> From:Nathan Sidwell <nathan@acm.org>
> Send Time:2022年12月8日(星期四) 01:00
> To:Iain Sandoe <iain@sandoe.co.uk>; GCC Development <gcc@gcc.gnu.org>
> Cc:Jonathan Wakely <jwakely.gcc@gmail.com>; chuanqi.xcq <yedeng.yd@linux.alibaba.com>; David Blaikie <dblaikie@gmail.com>; ben.boeckel <ben.boeckel@kitware.com>
> Subject:Re: Naming flag for specifying the output file name for Binary Module Interface files
> 
> On 12/7/22 11:58, Iain Sandoe wrote:
> > 
> > 
> >> On 7 Dec 2022, at 16:52, Nathan Sidwell via Gcc <gcc@gcc.gnu.org> wrote:
> >>
> >> On 12/7/22 11:18, Iain Sandoe wrote:
> >>
> >>> I think it is reasonable to include c++ in the spelling, since other languages supported by
> >>> GCC (and clang in due course) have modules.
> >>
> >> I disagree (about the reasonableness part).  Other languages have modules, true, but if they want to name the output file, why not have the same option spelling?
> >>
> >> I.e. why are we considering:
> >>
> >>    $compiler -fc++-module-file=bob foo.cc
> >>    $compiler -ffortran-module-file=bob foo.f77
> >>
> >> The language is being selected implicitly by the file suffix (or explictly via -X$lang).  There's no reason for some other option controlling an aspect of the compilation to rename the language.  We don't do it for language-specific warning options, and similar.  (i.e. no -f[no-]c++-type-aliasing vs -fc-type-aliasing, nor -Wc++-extra vs -Wc-extra[*]
> > 
> > Fair points.
> > 
> > Unfortunately (in case it has not already been mentioned in this thread) ‘-fmodule-file=‘ is already taken and it means an input, not an output.  So, whatever we choose it needs to be distinct from that.
> 
> Yes, that's why I suggested -fmodule-output=
> 
> nathan
> 
> -- 
> Nathan Sidwell



More information about the Gcc mailing list