awarzynski added a comment. Hi @protze.joachim,
Thank you for your feedback. I'm sorry that this is causing issues in your set-up. In D95460#2632844 <https://reviews.llvm.org/D95460#2632844>, @protze.joachim wrote: > Before this patch, clang would happily ignore a `-ffree-form` flag. It's a bit more nuanced than this. Originally, `-ffree-form` (and other similar flags) were added to be forwarded to `gfortran`. This forwarding was effectively switched off ~6 months before this patch, please see this commit <https://reviews.llvm.org/rG6a75496836ea14bcfd2f4b59d35a1cad4ac58cee>. As such, these flags stopped being used/needed by Clang. This patch makes Flang "re-claim" them. > With this patch, none of `-Wno-error=unknown-argument`, > `-Wno-unknown-argument` , `-Qunused-arguments` help to avoid clang from > exiting with > > error: unknown argument: '-ffree-form' > > Why can't clang ignore these flags as any other unknown flags? IIUC, this is not something specific to the options refactored in this patch. For example: # Test -foo clang-cl -c -Wno-unknown-argument -foo file.c clang -c -Wno-unknown-argument -foo file.c clang-13: error: unknown argument: '-foo' # Test -ffree-form clang-cl -c -Wno-unknown-argument -ffree-form file.c clang -c -Wno-unknown-argument -ffree-form file.c clang-13: error: unknown argument: '-ffree-form' Basically, `-Wno-unknown-argument` is only honored in `clang-cl`. Also, it applies to any option rather then just the options modified here. I'm not particularly familiar with the semantics of the diagnostics options that you listed (`-Wno-error=unknown-argument`, `-Wno-unknown-argument` , `-Qunused-arguments`), but I get the impression that in general `clang` does not ignore options that it does not know about. I couldn't find any example that would demonstrate otherwise. > As a background: in the build system I'm dealing with, I cannot avoid that > fortran flags are passed to the linking command. As C++ and fortran is > involved, I prefer using clang++ as the linking command and explicitly link > the fortran runtime library (at the moment gfortran, but in the future > probably the flang runtime library) It sounds like your build system relies on the `gfortran` support in Clang, but this support has been "bit rotting <https://reviews.llvm.org/rG6a75496836ea14bcfd2f4b59d35a1cad4ac58cee>". I'm keen to help you resolve your problems, but finding a solution that will work for `clang`, `flang` and `gfortran` might require some effort. Would you be able to step-up as Clang's `gfortran`-mode maintainer? (no pressure, just brainstorming!) Alternatively, do you need ToT `clang` for your build system? Thank you, -Andrzej Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D95460/new/ https://reviews.llvm.org/D95460 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits