top-of-tree build failure when using configure on Linux?

Our Ubuntu 14.10 buildbot at http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.10 is failing, and I’ve been tasked to fix it because I’m the LLDB guy.

It fails with things like:

/var/lib/buildbot/slaves/hexagon-build-03/lldb-x86_64-ubuntu-14.10/llvm.obj/Release+Asserts/lib/libclangCodeGen.a(BackendUtil.o): In function `addObjCARCOptPass(llvm::PassManagerBuilder const&, llvm::legacy::PassManagerBase&)’:

BackendUtil.cpp:(.text._ZL17addObjCARCOptPassRKN4llvm18PassManagerBuilderERNS_6legacy15PassManagerBaseE+0x21): undefined reference to `llvm::createObjCARCOptPass()’

I get the same error when I manually build using the same steps as the bot, but when I use cmake it works.

Has anyone seen this behavior using configure?

I haven’t seen that one myself. Are you still seeing it?

Is it possible the buildbot’s commands are possibly using older/stale object files? Is distcc/ccache involved? Does the build force a clean build? If not, does the issue go away on a clean build? Is it configure-based or cmake based?

Just some thoughts. Good luck resolving!

-Todd

Can you change it to CMake instead of configure? I know that’s not what you want to hear, but the configure build is on its way out, so you’re going to have to do this at some point anyway.

We forced a clean build because it wasn’t picking up an enum change that affected the swig python bindings, and the objective c problem popped up.

I’ve built with cmake on that machine, and it worked. I think the right answer is switch to cmake.

There were 2 changes made this week that broke both the cmake and one that broke the Makefile builds. I checked in fixes for the cmake build, but no one has done similar for the Makefile build (as far as I’ve noticed). (Notably, there’s no Makefile support for source/Plugins/ExpressionParser/Clang.)

If we’re going to leave that broken, maybe we could, instead, be the pioneers in LLVM-land and remove the Makefile-based build system instead. It doesn’t seem like any of the people doing steady work on LLDB use it.

  • Bruce

Hey Sylvestre,

On the Debian side, are we still counting on Makefile support for distribution building?

-Todd

I took a look at the buildbots; it looks like another buildbot is failing with the same issue – the debian bot, http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang . It fails the compile at the same place as the Hexagon Ubuntu bot, and it also uses configure.

Google has 2 Ubuntu 14.04 bots up that are building lldb using cmake, so ours will be redundant when we switch it to cmake. If there’s no objection, we’ll just take it down.

Can you change it to CMake instead of configure? I know that’s not what you want to hear, but the configure build is on its way out, so you’re going to have to do this at some point anyway.

Zachary, is the decision to drop autoconf across all projects or just LLDB? The last time I proposed a cmake change, I was asked to add the equivalent for autoconf.
(if autoconf is deprecated, I have some other builders starting that I need to switch to cmake)

Ted, I was going to remove the builder before I left but didn’t have time. The tests were not going to be fixed for autoconf builds. BTW hexagon-build-03 is up to date Ubuntu 15.04 if you care about the newer gcc version.

  • Rick

The community’s current plan of record is still to kill the autoconf build but there is no definitive timeline on when it will be complete. But to answer your question, yes it is across all projects.

From the LLDB side, I don’t know if anyone depends on having a working autoconf build for production reasons. The last time I heard, it was only still around because some people were still running autoconf-based buildbots. It’s possible I’m forgetting about something or someone, but that was my understanding.

The error that Ted was seeing is now fixed on SVN HEAD.

  • Bruce