[Chapel Merge] produce error when CHPL_LOCALE_MODEL=gpu and CHPL_

Branch: refs/heads/main
Revision: 26ab9e1
Author: stonea
Link: Unavailable
Log Message:

Merge pull request #18916 from stonea/chpl_comm_error

produce error when CHPL_LOCALE_MODEL=gpu and CHPL_COMM != none

This is for: Produce better error if doing GPU code generation and CHPL_COMM=none · Issue #18858 · chapel-lang/chapel · GitHub

As shown here: #18850 GPU code generation does not work if CHPL_COMM is something other than none.

As of the release if you do this you'll get a confusing error message about a missing fatbin file at runtime. Ultimately we'll want to support this combination but it seems worth producing a nice error message in the meantime.

This PR also modifies things so if the "GPU code generation process" that we fork off from the main process encounters an error we stop the main process once we join back (otherwise we'll always get an additional error about a missing .fatbin file when the GPU thread encounters an issue)

[Reviewed by @e-kayrakli]

Modified Files:
A test/gpu/native/environment/gasnet.chpl

A test/gpu/native/environment/gasnet.compopts
A test/gpu/native/environment/gasnet.good
A test/gpu/native/environment/gasnet.prediff
M compiler/codegen/codegen.cpp
M compiler/main/driver.cpp
M util/chplenv/chpl_gpu.py
M util/chplenv/printchplenv.py

Compare: https://github.com/chapel-lang/chapel/compare/fb8800f02bcc...26ab9e1ad0fb