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.
(cherry picked from commit
0bd247bbbe4cf396173f09eeec37e116e98f8471)
+2022-01-19 Marcel Vollweiler <marcel@codesourcery.com>
+
+ Backport from master:
+ * config/gcn/icv-device.c: Make GOMP_DEVICE_NUM_VAR public (remove
+ "static") to make the device num available in the offload image.
+
2021-12-22 Andrew Stubbs <ams@codesourcery.com>
Backport from master:
/* 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)