https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95620

            Bug ID: 95620
           Summary: [10/11 Regression] relocation truncated to fit:
                    R_X86_64_PC32 against `.bss'
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: lto
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: hubicka at gcc dot gnu.org, marxin at gcc dot gnu.org
  Target Milestone: ---

It's a test-case reduced from opa-ff project:

$ cat intel.i
double a[353783808];
int b, c, d;

int
main() {
  for (; b;)
#pragma omp parallel
    a[c] = 1;
  for (;; b++)
    if (a[c])
      d++;
}

$ gcc intel.i -mcmodel=medium -O2 -fopenmp
$ gcc intel.i -mcmodel=medium -O2 -flto -fopenmp
/tmp/ccaU2BEX.ltrans0.ltrans.o: in function `main':
<artificial>:(.text.startup+0x2): relocation truncated to fit: R_X86_64_PC32
against `.bss'
<artificial>:(.text.startup+0x22): relocation truncated to fit: R_X86_64_PC32
against `.bss'
collect2: error: ld returned 1 exit status

They have a huge .bss array (~350MB).
Since r10-5244-g6d8fd122c4f856e9 we can't handle it, the maximum value
supported by LTO is ~270MB.

Reply via email to