Re: [DynInst_API:] dyninst 9.3.2 and gcc 4.4


Date: Fri, 12 May 2017 19:32:01 +0000
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: Re: [DynInst_API:] dyninst 9.3.2 and gcc 4.4
First question: do these systems have a default version of clang or icc that supports this feature? It should be fine to build Dyninst with either of those assuming they're recent enough (and I've been working with icc builds off and on locally).
Second, and more general, question: is there any rhyme or reason to which HPC systems are stuck on a RHEL6 or equivalent baseline, and how difficult is it to convince the sysadmins to make a reasonable compiler available?

This is not a C++11-ism that I dragged in intentionally, but there are plenty of post-4.4 C++11 features that we would like to be able to exploit for readability and portability, so it's not just a question of academic interest.

--bw

________________________________________
From: Dyninst-api <dyninst-api-bounces@xxxxxxxxxxx> on behalf of Mark W. Krentel <krentel@xxxxxxxx>
Sent: Friday, May 12, 2017 2:02 PM
To: dyninst-api@xxxxxxxxxxx
Subject: [DynInst_API:] dyninst 9.3.2 and gcc 4.4

I ran into this problem while trying to build Dyninst 9.3.2 on Blue
Gene (mira, vesta) at Argonne.

Dyninst 9.3.x won't build with GNU 4.4 because the typeCollection
destructor in Collections.C uses the C++11 range iterator feature
which is not supported in 4.4.

     318 typeCollection::~typeCollection()
     319 {
     320     // delete all of the types
     321     for(const auto& t: typesByName) {
     322         t.second->decrRefCount();
     323     }
     324
     325     for(const auto& t: typesByID) {
     326         t.second->decrRefCount();
     327     }
     328 }

This is easy enough to patch because so far, this is the only use of
this feature.  But it brings up the difficult subject of supporting
gcc/g++ 4.4 or not.

This puts me in an awkward position.  I understand that 4.4 is ancient
and it's long past time to move the line to 4.8.

But there are a lot of systems that I care about that still run RH
6.x, including mira at Argonne, and that comes with gcc/g++ 4.4.7.
(mira has 4.8, but only for the back end.)  It's awkward when the
build directions start with, "ask your sysadmin to install a later
compiler."

Anyway, it's easy enough to work around, for now.

--Mark
_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
[← Prev in Thread] Current Thread [Next in Thread→]