Lib C++ buildbot problem

Folks,

I'm trying to set up a libc++ buildbot on ARM and I found an
inconsistency which I'm not sure how to fix.

I got a build error like this:

libc++abi.so: undefined reference to `_Unwind_GetGR'

Since I expected that the symbol would be provided by that library, I
searched the CMake on libc++abi and found this:

option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF)
...
if (LIBCXXABI_USE_LLVM_UNWINDER)
  add_subdirectory(src/Unwind)
endif()

But on the Libc++AndAbiBuilder, there's no way to set the CMake
argument (or is there?):

def getLibcxxAndAbiBuilder(f=None, env={}, additional_features=set()):

"additional_features" seem to imply only lit test args, not anything else.

Ideas?

cheers,
--renato

+Dan Albert

Folks,

I'm trying to set up a libc++ buildbot on ARM and I found an
inconsistency which I'm not sure how to fix.

I got a build error like this:

libc++abi.so: undefined reference to `_Unwind_GetGR'

Since I expected that the symbol would be provided by that library, I
searched the CMake on libc++abi and found this:

option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF)
...
if (LIBCXXABI_USE_LLVM_UNWINDER)
  add_subdirectory(src/Unwind)
endif()

But on the Libc++AndAbiBuilder, there's no way to set the CMake
argument (or is there?):

I *think* you can add "-DLIBCXXABI_USE_LLVM_UNWINDER" to the env argument and
get what you want, but Dan will have to correct me on that...

def getLibcxxAndAbiBuilder(f=None, env={}, additional_features=set()):

"additional_features" seem to imply only lit test args, not anything else.

They are lit test args, and triggers for -D defines for various weird
configurations (e.g. single threaded). I don't think there is one for the
unwinder (nor do I think it makes sense to add one for that).

Cheers,

Jon

But on the Libc++AndAbiBuilder, there’s no way to set the CMake
argument (or is there?):

No, there isn’t. Should be simple enough to add though. I’d add it as a dict param.

Yeah, CMake uses a different set for environment variables.

You mean something like this?

def getLibcxxAndAbiBuilder(f=None, env={}, additional_features=set(),
cmake_opts={}):

cheers,
--renato

Right, so here's a patch that allows me to set CMake params and makes
it build correctly and gave me 31 out of 38 tests passing on libcxxabi
and is running libcxx tests (which will take a while).

Is that what you had in mind?

I shall set this bot up now and fix the issues later, like I did with
Compiler-RT.

cheers,
--renato

libcxx-buildbot.patch (1.33 KB)

Right, so here's a patch that allows me to set CMake params and makes
it build correctly and gave me 31 out of 38 tests passing on libcxxabi
and is running libcxx tests (which will take a while).

Is that what you had in mind?

Yes, this looks good to me.

I shall set this bot up now and fix the issues later, like I did with
Compiler-RT.

Awesome, thanks for setting this up!

Jon

Great, in r220210.

I'll set up the bot.

Thanks!
--renato

Thanks Renato. We’ve definitely needed an ARM bot for these for a while.

I know!! :slight_smile:

My plans were to have them back in July but things got tangled and
next thing you know it's October already!

Whenever Galina re-load the master conf I'll move it to the llvm.org
master, then, on to fix the errors it's reporting...

cheers,
--renato

Yes, thank you!

— Marshall

And here we go:

http://lab.llvm.org:8011/builders/libcxx-libcxxabi-arm-linux

There are only 11 failures, which seem reasonably trivial to fix
(missing symbols and asserts). I'll be looking into them, but if you
have any clue, tips are welcome!
Thanks everyone for the help and support!

cheers,
--renato

All of the libc++ test failures are expected.
Would you be willing to install more locales on your buildbot? It would make a lot less of the libc++ tests unsupported

/Eric

Renato,

Is it alright if I link to your bot from libcxx.llvm.org?

Sorry for the spam.
/Eric

All of the libc++ test failures are expected.

Even the "unexpected" ones? Shall we mark it "expected", then?

Would you be willing to install more locales on your buildbot? It would make
a lot less of the libc++ tests unsupported

Done.

Thanks!
--renato

Sure, go ahead!

cheers,
--renato