Incorrect / missing dependencies in llvm build?

Yesterday, I took latest git version of LLVM, built a makefile using cmake (had to update from my “old” cmake to a newer one, so picked the latest 3.7.0), and ran the resulting makefile with make -j 8. This failed with an error, but when I ran make again, it worked fine… My guess as to the problem is that there’s one or more dependency that isn’t made clear to make (or cmake), and when I run make again, it has built the “previously missing” one.

I didn’t spend much time debugging this, I may have a go tonight, I just wanted to raise this, in case someone else has seen this and/or has a solution… I was able to reproduce the problem tho’, as I built llvm twice with different configurations, and it happened both times - and rerunning make resolved it both times too.

Yesterday, I took latest git version of LLVM, built a makefile using
cmake (had to update from my "old" cmake to a newer one, so picked the
latest 3.7.0), and ran the resulting makefile with `make -j 8`. This
failed with an error, but when I ran make again, it worked fine... My
guess as to the problem is that there's one or more dependency that
isn't made clear to make (or cmake), and when I run make again, it has
built the "previously missing" one.

I didn't spend much time debugging this, I may have a go tonight, I just
wanted to raise this, in case someone else has seen this and/or has a
solution... I was able to reproduce the problem tho', as I built llvm
twice with different configurations, and it happened both times - and
rerunning make resolved it both times too.

Folks on my team have seen this. From their description of the failure, it looked to me like it was a problem with missing dependencies on TableGen-generated headers... but I didn't get enough information to be able to track down exactly which TU was missing the dep, and I haven't been able to reproduce it myself.

Jon

I sometimes see this with a clean build and most often it is 'Attributes.inc' that is missing. I usually have to 'touch Attributes.td' for this. But I don't know CMake well enough to know how to fix these issue properly.

  MartinO

Thanks, at least I know I’m not imagining or doing something really daft! :wink:

My cmake skills are near 0%, so not sure I can fix, but perhaps I can at least raise a bug? :wink:

+cbieneman

Mr. CMake might know how to fix it :wink:

Jon

A general call here. Anyone who ever sees a compile error of a missing tablegen-generated header please email me the error.

These errors are really easy to fix as we find them, but we don’t currently have a good way to force trigger them, or to audit the dependencies.

I’ve had water cooler conversations around the office with people about building a way to detect these failures, but I haven’t yet had a chance to build it. I may try and prioritize this so that we can have something sooner rather than later.

On the less general note, this thread doesn’t seem to have a specific error listed anywhere, does anyone have one handy they can point me at?

-Chris

I’m sorry, I was trying to work out something else yesterday, and the first time I thought it was just some general build error that had scrolled past on the screen above, so thought “make again will show me the error”. The second time, I was just trying to get something done before going to bed (something I should have done a while ago today too!).

I will definitely make an effort to repro this tomorrow…

Mats, don’t sweat reproducing it unless it just pops up for you. I actually spent some time today implementing that idea we had for detecting these failures, and I committed it in r287207. It relies on the OS X tool sandbox-exec, but I’ll work my way through all the missing dependencies over the next couple days.

-Chris