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

            Bug ID: 99606
           Summary: [10/11 Regression] ld.bfd: DWARF error: could not find
                    abbrev number 64 since r10-7521-g54af95767e887d63
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: debug
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: rguenth at gcc dot gnu.org
  Target Milestone: ---

I noticed that for a package that used to link successfully:

$ cat foma.i
char main_prompt[1];
int sprintf(char *, char *, ...);
void stack_size();
void main() { sprintf(main_prompt, "", stack_size); }

$ gcc -gdwarf-5 -Werror -O2 foma.i -flto=auto -g -c && gcc -fPIC foma.o
-flto=16 -fuse-ld=bfd -gdwarf-5
/usr/bin/ld.bfd: /usr/bin/ld.bfd: DWARF error: could not find abbrev number 64
/tmp/ccmeHh1F.ltrans0.ltrans.o: in function `main':
<artificial>:(.text.startup+0x3): undefined reference to `stack_size'
collect2: error: ld returned 1 exit status

A similar test-case triggers error for ld.gold:

$ cat foma.i
int printf(char *, ...);
      int sprintf(char *, char *, ...);
      void stack_size();
      char main_prompt[1];
      void main() {
       sprintf(main_prompt, "", stack_size);
       printf("\n");
     }

$ gcc -gdwarf-5 -Werror -O2 foma.i -flto=auto -g -c && gcc -fPIC foma.o
-flto=16 -fuse-ld=gold -gdwarf-5
/usr/bin/ld.gold: internal error in format_file_lineno, at
../../gold/dwarf_reader.cc:2278
collect2: error: ld returned 1 exit status

$ gcc -gdwarf-5 -Werror -O2 foma.i -flto=auto -g -c && gcc -fPIC foma.o
-flto=16 -fuse-ld=bfd -gdwarf-5
/usr/bin/ld.bfd: /usr/bin/ld.bfd: DWARF error: could not find abbrev number 64
/tmp/ccylqmOx.ltrans0.ltrans.o: in function `main':
<artificial>:(.text.startup+0x7): undefined reference to `stack_size'
collect2: error: ld returned 1 exit status

Reply via email to