diff --git a/openmp/libomptarget/DeviceRTL/src/Configuration.cpp b/openmp/libomptarget/DeviceRTL/src/Configuration.cpp --- a/openmp/libomptarget/DeviceRTL/src/Configuration.cpp +++ b/openmp/libomptarget/DeviceRTL/src/Configuration.cpp @@ -24,7 +24,7 @@ // TODO: We want to change the name as soon as the old runtime is gone. DeviceEnvironmentTy CONSTANT(omptarget_device_environment) - __attribute__((used, retain)); + __attribute__((used, retain, weak)); uint32_t config::getDebugKind() { return __omp_rtl_debug_kind & omptarget_device_environment.DebugKind; diff --git a/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h b/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h --- a/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h +++ b/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h @@ -32,6 +32,7 @@ #define ALIGN(N) __attribute__((aligned(N))) #define PLUGIN_ACCESSIBLE \ __attribute__((used)) /* Don't discard values the plugin reads */ \ + __attribute__((weak)) /* We may have multiple definitions */ \ __attribute__((retain)) /* Also needed to keep values alive */ \ __attribute__((visibility("default"))) /* Access via SHT_HASH */ \ __attribute__((section(".data"))) /* Not .bss, can write before load */