Incorrect preprocessor test in HIP-over-CUDA UUID support

Issue #622 resolved
Paul Hargrove created an issue

I had occasion today to attempt to build HIP-over-CUDA support on NERSC's Perlmutter, activated at configure time via --enable-hip --with-hip-platform=nvidia with the hip environment module loaded.

With the current PrgEnv-gnu/8.3.3 and default gcc/11.2.0, the UPC++ library build fails as follows:

/[REDACTED]/upcxx/src/./hip.cpp:73:36: error: #if with no expression
   73 |       #if __HIP_PLATFORM_NVIDIA__
      |                                    ^

This message is consistent w/ AMD's convention (implemented in our configure) that the __HIP_PLATFORM_*__ family of preprocesor identifiers are either undefined or defined-but-empty. This argues for use of #ifdef here.

I suspect this error (in the UUID generation logic added in pull request #495) was not seen previously due to either lack of testing of this case, or possible a behavioral change in more recent GCC.

Comments (1)

  1. Log in to comment