libgomp, OpenMP: Fix issue for omp_get_device_num on gcn targets.
authorMarcel Vollweiler <marcel@codesourcery.com>
Wed, 19 Jan 2022 13:03:54 +0000 (05:03 -0800)
committerMarcel Vollweiler <marcel@codesourcery.com>
Wed, 19 Jan 2022 13:03:54 +0000 (05:03 -0800)
Currently omp_get_device_num does not work on gcn targets with more than one
offload device. The reason is that GOMP_DEVICE_NUM_VAR is static in
icv-device.c and thus "__gomp_device_num" is not visible in the offload image.

This patch removes "static" such that "__gomp_device_num" is now part of the
offload image and can now be found in GOMP_OFFLOAD_load_image in the plugin.

This is not an issue for nvptx. There, "__gomp_device_num" is in the offload
image even with "static".

libgomp/ChangeLog:

* config/gcn/icv-device.c: Make GOMP_DEVICE_NUM_VAR public (remove
"static") to make the device num available in the offload image.

libgomp/config/gcn/icv-device.c

index fcfa0f3..f70b7e6 100644 (file)
@@ -60,7 +60,7 @@ omp_is_initial_device (void)
 
 /* This is set to the device number of current GPU during device initialization,
    when the offload image containing this libgomp portion is loaded.  */
-static volatile int GOMP_DEVICE_NUM_VAR;
+volatile int GOMP_DEVICE_NUM_VAR;
 
 int
 omp_get_device_num (void)