[cfe-dev] [llvm-dev] clang dependency generation (-Mxx) with -emit-llvm

Justin Bogner via cfe-dev cfe-dev at lists.llvm.org
Tue May 17 21:23:20 PDT 2016


Dustyn Blasig via cfe-dev <cfe-dev at lists.llvm.org> writes:
> Yes, the dependency file gets generated if I use one of the standard targets.
>
> When running clang++, it turns around and recalls clang (clang-3.9
> specifically) with a bunch of options, one of which includes a
> -dependency-file build/network.ll.dep.mk which looks promising. However, I
> tried to run clang with those arguments via copy/paste into the shell and I
> get the following errors.
>
> error: unknown argument: '--driver-mode=g++'
> error: unknown argument: '--target=my_target'
> error: unknown argument: '-MMD'
> error: unknown argument: '-MF'
>
> Those errors do not show up when invoked internally from clang++, and the
> output file is generated successfully but the dependency file is not. That
> seems to match the fact that those unknown arguments show up above. I know the
> target is being recognized because custom passes we've inserted specifically
> for our target are getting run. I'm guessing the -triple argument is
> sufficient for triggering the proper backend.
>
> Is there a way for me to strace into the sub-clang process invoked by clang++?
> I'm not very familiar with those tools, but running strace just on clang++
> reveals very little other than gathering a few things and then spawning off
> clang-3.9.

IIRC strace has a -f flag that follows forks into children. You can also
run your clang command with -### and it should print out the subcommand
it will spawn.



More information about the cfe-dev mailing list