[Openmp-dev] Regression in clang-9 for external declare target variable
Joachim Protze via Openmp-dev
openmp-dev at lists.llvm.org
Wed Dec 18 10:29:48 PST 2019
Hi all,
we think, we found a regression in clang/9:
#pragma omp declare target
int counter = 0;
#pragma omp end declare target
int main(){
#pragma omp target
counter++;
return 0;
}
The code compiles with clang/7 and clang/8, but fails with clang/9:
clang -fopenmp -fopenmp-targets=x86_64 declare-var.c
/usr/bin/ld: /tmp/declare-var-28ddc5.o: relocation R_X86_64_PC32 against
symbol `counter' can not be used when making a shared object; recompile
with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot find /tmp/declare-var-e0fa25.out
/usr/bin/ld: cannot find /tmp/declare-var-e0fa25.out
Is this intended behavior?
The error goes away, when making counter static.
Best
Joachim
More information about the Openmp-dev
mailing list