Ticket #2699 (new action item)

Opened 7 years ago

Last modified 6 years ago

TCT Proposal for Clang 3.2 use

Reported by: robyn Owned by: robyn
Priority: normal Milestone:
Component: TCT Keywords:
Cc: robyn, mjuric, ktl, rhl, smm, rowen, RayPlante, gpdf, jbosch, mfreemon Blocked By:
Blocking: Project: LSST
Version Number:
How to repeat:

not applicable

Description

The clang 3.2 compiler has been tested with the master HEAD branch (see NOTE) and successfully compiled up to pipe_tasks - which is as far as the 3.0 clang compiler builds.

The proposal is to switch the buildbot clang master build from using clang 3.0 to using clang 3.2. Additionally, the clang 3.2 compiler would be made available for use on the LSST Cluster as well as the equivalent Clang 3.2 DM system stack.

NOTE: RHEL6 builds using 'clang opt=#' require the addition of -lpthread. This is automatically handled by sconsUtils (4aa56e287286f34d3b14f67d73b63a9a249efe69).

This installation would be deferred until sconsUtils (4aa56e28) has been tagged and released.

Potential add-on to be discussed: installing the lldb 3.2-variant debugger

Change History

comment:1 Changed 7 years ago by rhl

I vote yes.

comment:2 Changed 7 years ago by mjuric

Aye.

comment:3 follow-up: ↓ 4 Changed 7 years ago by rowen

I vote yes, including lldb.

Does "lldb 3.2-variant debugger" merely mean the version of lldb that goes with clang 3.2, or does "variant" indicate something more exotic?

comment:4 in reply to: ↑ 3 Changed 7 years ago by robyn

Replying to rowen:

Does "lldb 3.2-variant debugger" merely mean the version of lldb that goes with clang 3.2, or does "variant" indicate something more exotic?

It means that when I went to acquire the llvm suite I had the option of clang 3.2 and llvm 3.2 but no separate lldb for v3.2. It was not embedded in the llvm distribution either. I can pick lldb up from the beta release but first I will check a bit more. That's why I waffled.

comment:5 Changed 7 years ago by smm

+1 on clang 3.2. I don't know enough about lldb to want it or not, so I abstain from that vote.

comment:6 Changed 7 years ago by gpdf

I vote yes, and I support installing lldb.

comment:7 Changed 7 years ago by robyn

  • Component changed from sconsUtils to TCT

Just putting into the correct component bucket: TCT not sconsUtils.

comment:8 Changed 7 years ago by robyn

The LLDB installation guide states that LLDB, LLVM and CLANG should be built from the svn tip. I have installed and tested LLVM/clang Release 3.2. I could find no LLDB 3.2 Release.

I tried building LLDB svn tip with the 3.2 Release of LLVM and clang. Unsurprisingly, it did not get past even the first compile.

So...if we want LLDB we need to take the trio: LLVM, CLANG, LLDB, all from the tip.

comment:9 Changed 7 years ago by robyn

TCT members: KT, Mario, Serge, Russell, and Robyn, discussed this issue on 7 Mar 2013.

Robyn said that the clang 3.2 build of the DM stack was dependent on a change to sconsUtils which added '-lpthread' to the load line when 'opt=#' was specified to the scons build.

Mario said that he found that change was necessary when he built boost for the DM stack on MacOS. So he changed the boost .cfg file to automatically include that for MacOS builds. Unfortunately, his update was not incorporated in later changes of the boost.cfg so it was not currently active. NOTE: He has already fixed that issue.

Robyn will test whether that fix will solve the -lpthreads issue for clang builds on the cluster. If so, she will revert the change to sconsUtils which solved the problem differently but with the same end result.

Robyn also noted that she could find no lldb 3.2 release. Russell already sent email to the LLDB mailing list asking if such a release existed. We await their response. If there is none, then LLVM, CLANG, LLDB will need to be build from the tip of the svn repository.

Action items:

  • Robyn will check the boost fix that Mario re-installed;
  • Russell will tell Robyn the results of his LLDB query and then she will move forward based on the info.
  • When the clang 3.2 stack is working with the new boost and building the DM stack, she will send email to the TCT members with a status report and request to install clang X and lldb X as the default release.

comment:10 Changed 7 years ago by rowen

I asked about lldb on the lldb-dev mailing list. The answers are:

  • There is no lldb 3.2 release for linux; it was not stable enough to release. See the lldb status page. Note that linux is somewhat behind MacOS.
  • Building trunk lldb does require trunk lldb against trunk llvm and clang, but...
  • We do not have to use trunk llvm and clang for anything other than building lldb; lldb will work with debug symbols from older version of clang

I would like to give lldb trunk a try if it's not too much trouble to build. However, I suggest we stick with Clang 3.2 for building the stack, since it seems to work.

Last edited 7 years ago by rowen (previous) (diff)

comment:11 Changed 7 years ago by robyn

Thanks for checking this out.

My plan:

  • check if Mario's re-entered pthread-fix-for-boost works ok with existing GCC stack.
  • check if that fix also satisfies the clang 3.2 'pthread' request for 'scons opt=#' builds
    • if so, back-out the sconsUtils change
  • build lldb as per the scenario using a transient svn trunk build of llvm/clang to build lldb but reverting to Rel 3.2 for the llvm/clang in production.

comment:12 Changed 6 years ago by robyn

Mario's re-established pthread fix works for the Clang 3.2 stack. The upgrade to sconsUtils to automatically insert the -lpthread on opt=# was reverted (excised).

The current buildbot clang3.2 stack is functional and available for wider use on the cluster system.

lldb build hasn't been started yet. It's on the list....

comment:13 Changed 6 years ago by robyn

  • Cc mfreemon added

It's been months since clang 3.2 was installed for buildbot use during master clang builds (Feb 23, 2013 t0 be exact).

However, the second part of the request still has not been completed; there's still been no effort to check if the lldb 3.2 has been released in the interim nor if the trunk version of lldb would work.

So this ticket remains open.

comment:14 Changed 6 years ago by mjuric

Clang is now up to version 3.3 (w. full C++11 support), and should be upgraded.

comment:15 Changed 6 years ago by rowen

Thank you for the reminder. According to <http://lldb.llvm.org/download.html> there are Debian packages for LLDB 3.2 and 3.3 listed as "unstable". If it's easy to install Debian packages then I'd say go ahead and install 3.3, but otherwise please don't hold up the ticket for LLDB.

Note: See TracTickets for help on using tickets.