charmc hardcodes unversioned compiler names
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.
#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.
#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.)