[LLVMdev] AArch64 build error

Redmond, Paul paul.redmond at intel.com
Fri May 17 14:22:38 PDT 2013

Hi Tim,

On 2013-05-17 4:18 PM, "Tim Northover" <t.p.northover at gmail.com> wrote:

>Hi Paul,
>> I'm getting a "random" build failure related to AArch64 when building
>>with cmake.
>> The build is running with -j32 so it seems that there is some
>>dependency issue
>> that causes the build to fail when things build in a certain order.
>> 3008    make[2]: *** No rule to make target
>>`lib/Target/AArch64/AArch64GenDAGISel.inc', needed by
>Hmm. That file's generated by TableGen (via some kind of custom make
>magic) and included by the "regular" sources, so it's entirely
>possible there's a race hiding. I always thought all TableGen commands
>were run before the main sources got compiled, but at 32 threads
>perhaps that doesn't matter so much.
>Has this just started since AArch64 was added, or have you only
>recently started building at -j32? As far as I can see AArch64 is
>unexceptional in its dependencies, except for being lexicographically
>the first target. I'd be interested in your results if AArch64 was

I can't say for sure if this is a new problem but we've been building on
this machine for a few weeks now.

I commented out AArch64 from LLVM_ALL_TARGETS and rebuilt but I can't
reproduce the error in this case--it appears to be AArch64 specific.

One thing I forgot to mention is that our build machines use ccache. When
I don't use ccache I can't reproduce the error either. However, I don't
think ccache is the problem it just makes the race easier to reproduce.

>There's clearly some issue though. I've only got 4 cores (+ 4 faked)
>here so I'm not optimistic about reproducing any races you're seeing,
>though I'll keep trying periodic builds. How many cores do you have
>and how frequently does this seem to occur? Your host compiler and
>configure command-line could be useful for controlling the environment

The machine has 16 physical cores each hyper-threaded. I'm just using gcc
4.7.2 from Ubuntu 12.10.

I can reproduce this with the following:

$make -j32
$make clean
$make -j32

The second make will fail with the error I pasted before.



More information about the llvm-dev mailing list