Project

General

Profile

Feature #1353

charmc hardcodes unversioned compiler names

Added by William Throwe over 2 years ago. Updated over 1 year ago.

Status:
Merged
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
01/09/2017
Due date:
% Done:

0%


Description

charmc always compiles source files using `g++` (or `clang++` or similar). This means there is no easy way to test code with multiple versions of gcc, which are often installed as something like `g++-5.3.0`. It would be nice if there were some way to override this, such as respecting the CC and CXX environment variables.

The only workaround I've found for this is creating a directory with a `g++` symlink to the desired version and then putting that at the front of PATH.

History

#1 Updated by Phil Miller about 2 years ago

  • Target version set to 6.8.1

A fix for this, and more generally to enable standard build configuration practices for Charm++, will be available this summer.

If your concern is for application source files, rather than the runtime system itself, note that it is generally possible to use your compiler of choice directly, passing just a suitable -I/path/to/charm/netlrts-linux-x86_64-whatever/include argument so it can find the RTS headers. charmc then only needs to be used at link time.

If you need to change how Charm++ itself is built, the exact compiler configuration is set in the files src/arch/<target platform>/conv-mach.sh, which you could edit as needed.

#2 Updated by Phil Miller about 2 years ago

Also, my apologies for the slow response to this.

#3 Updated by William Throwe about 2 years ago

Unfortunately, I've found that using different compilers for building and linking can cause linking failures, so reducing the use of charmc to link time doesn't help. (In particular, it seems that gcc-5 fails to link executables using std::thread that were compiled using gcc-6, presumably because they are using different standard library versions.)

#4 Updated by Eric Bohm about 2 years ago

  • Assignee set to Phil Miller

#5 Updated by Eric Bohm almost 2 years ago

  • Target version changed from 6.8.1 to 6.9.0

#6 Updated by Eric Bohm over 1 year ago

  • Assignee changed from Phil Miller to Evan Ramos

#7 Updated by Eric Bohm over 1 year ago

  • Target version changed from 6.9.0 to 6.9.1

#8 Updated by Phil Miller over 1 year ago

  • Target version changed from 6.9.1 to 6.9.0
  • Assignee changed from Evan Ramos to Phil Miller

Evan: The CMake work ought to facilitate a solution to this as well. Maybe this just needs some documentation on top of that?

#9 Updated by Phil Miller over 1 year ago

  • Assignee changed from Phil Miller to Evan Ramos
  • Target version changed from 6.9.0 to 6.9.1

#10 Updated by Evan Ramos over 1 year ago

  • Target version changed from 6.9.1 to 6.9.0
  • Assignee changed from Evan Ramos to Ronak Buch
  • Status changed from New to Implemented

#11 Updated by Ronak Buch over 1 year ago

  • Status changed from Implemented to Merged

Also available in: Atom PDF