charm AT lists.siebelschool.illinois.edu
Subject: Charm++ parallel programming system
List archive
- From: Jeff Hammond <jeff.science AT gmail.com>
- To: Jozsef Bakosi <jbakosi AT gmail.com>
- Cc: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>
- Subject: Re: [charm] #include <intrinsics.h> in converse.h
- Date: Thu, 1 Dec 2016 21:24:37 +0800
On Thu, Dec 1, 2016 at 1:43 AM, Jozsef Bakosi <jbakosi AT gmail.com> wrote:
Hi folks,I have successfully built Charm++ using the Cray C++ compiler suite with the following build command:$ build charm++ mpi-crayxc craycc --with-productionNow when I try to compile code that includes pup.h, which includes converse.h, which includes intrinsics.h, I get the error:CC-311 crayc++: ERROR File = /opt/cray/pe/cce/8.5.4/CC/x86-4/compiler_include_base/basic/intrinsics.h, Line = 273An overload function cannot be distinguished by the return type alone.extern int64_t _popcnt32(uint32_t);
That error does not make sense, unless the compiler is implicitly including that header as well. You may want to file a ticket with Cray to get to the root cause.
The section of converse.h in question is:#if CMK_C_BUILTIN_IA32_XFENCE#include <intrinsics.h>#endifIf I comment out including intrinsics.h above, the particular error above goes away.
It seems then that the header isn't actually required (anymore) and CMK_C_BUILTIN_IA32_XFENCE should be disabled by default now.
This only happens on Crays and only with the Cray C++ compiler, but with all available cce modules, i.e., the intrinsics.h associated to all available cce versions. Interestingly, I cannot find an intrinsics.h system-wide on linux for example, so the non-existence of this header does not seem to be an issue, but on the two Cray machines I have tested this, the above system-wide header consistently gets picked up and fails to compile. I also wonder why this header is not picked up during building Charm++ itself.
Run `find /opt/cray/ -name intrinsics.h`. You should get a non-zero result. I see many matches to /opt/cray/cce/*/CC/x86-64/compiler_include_base/basic/intrinsics.h on NERSC Edison.
Sorry that none of this actually solves your problem.
Jeff
What do you guys suggest fixing this problem?Thanks,Jozsef
--
- Re: [charm] #include <intrinsics.h> in converse.h, Jeff Hammond, 12/01/2016
- <Possible follow-up(s)>
- Re: [charm] #include <intrinsics.h> in converse.h, Phil Miller, 12/01/2016
- Re: [charm] #include <intrinsics.h> in converse.h, Jozsef Bakosi, 12/01/2016
- Re: [charm] #include <intrinsics.h> in converse.h, Jeff Hammond, 12/03/2016
- Re: [charm] #include <intrinsics.h> in converse.h, Jozsef Bakosi, 12/04/2016
- Re: [charm] #include <intrinsics.h> in converse.h, Jeff Hammond, 12/03/2016
- Re: [charm] #include <intrinsics.h> in converse.h, Jozsef Bakosi, 12/01/2016
Archive powered by MHonArc 2.6.19.