Compiler-RT buildbot on ARM

Hi Evgeniy,

I just created a new buildbot that compiles and tests compiler-rt
together with LLVM/Clang using the CMake build:

http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/0

There are a few ASan failures and I'd like to check with you which of
them are real failures that we need to fix and which are just
unsupported / noise.

These tests are running on an ARMv7 machine, but I'm also building the
AArch64 back-end, thus the many AArch64 errors. If possible, I'd like
to run AArch64 tests, since we're not having AArch64 bots for
compiler-rt any time soon.

cheers,
--renato

Hi,

I'm not sure what's up with BuiltinLongJmpTest. I think Greg was the
last to do anything about arm-linux support in asan.

As for the aarch64 failures, do you want to build the aarch64 bit
stuff, but not run the tests? In cmake we try to detect target
platforms supported by the compiler, but we don't check that binaries
actuall run. But why is there so little failures, if the hardware does
not support 64-bit (or does it)?

As for the aarch64 failures, do you want to build the aarch64 bit
stuff, but not run the tests?

Sort of. I'd like to test everything I can, but execution AArch64
tests will obviously fail on ARM.

Are there any tests that don't need execution? Like the lit tests we
have for LLVM?

If not, I'd still like to build AArch64 code, since that stresses LLVM
on AArch64.

In cmake we try to detect target
platforms supported by the compiler, but we don't check that binaries
actuall run.

I was wondering if this could be fixed in the test selection process
(CMake?) to not only choose tests of the built back-ends, but the ones
that could actually run. I imagine if you just run "cmake $SRC", LLVM
build all back-ends by default, wouldn't that try to *run* all tests
from all platforms?

But why is there so little failures, if the hardware does
not support 64-bit (or does it)?

It doesn't. Not sure why so little failures...

cheers,
--renato

As for the aarch64 failures, do you want to build the aarch64 bit
stuff, but not run the tests?

Sort of. I'd like to test everything I can, but execution AArch64
tests will obviously fail on ARM.

Are there any tests that don't need execution? Like the lit tests we
have for LLVM?

All (or almost all) sanitizer lit tests need execution, unlike llvm
lit tests. They are runtime library tests, after all, not compiler
tests.

If not, I'd still like to build AArch64 code, since that stresses LLVM
on AArch64.

In cmake we try to detect target
platforms supported by the compiler, but we don't check that binaries
actuall run.

I was wondering if this could be fixed in the test selection process
(CMake?) to not only choose tests of the built back-ends, but the ones
that could actually run. I imagine if you just run "cmake $SRC", LLVM
build all back-ends by default, wouldn't that try to *run* all tests
from all platforms?

We check that compilation of a simple source succeeds (see
cmake/config-ix.cmake), that requires that target headers and
libraries are available. This normally limits us to multilib variants
of the build platform.

We probably should check that test binaries can be executed, too - but
there are exceptions like android where we run tests remotely (on an
attached device or emulator).

That's what I though... I suppose multilib variations would still work
ok. Though, AArch64 and ARM relationship is still being trimmed, so
not all AArch64 environments will be able to run ARM code out of the
box. An execution test would transparently work in those cases, too.

cheers,
--renato