https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94391
Yuxuan Shui <yshuiv7 at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|INVALID |--- --- Comment #2 from Yuxuan Shui <yshuiv7 at gmail dot com> --- If you read the reply, you will find out that is not the same bug as this: > This is an over reduction. The real problem is that we are not tracking > absoluteness correctly. In the original case vvar_vsyscall_gtod_data > should not be absolute > > --- ELF/Relocations.cpp > > +++ ELF/Relocations.cpp > > @@ -356,6 +356,10 @@ > > return true; > > if (&Body == ElfSym<ELFT>::MipsGpDisp) > > return true; > > + // Sometimes code has relocations to absolute symbol defined in linker > > script. > > + // Example is linux kernel. Hence we allow it. > > + if (!Body.File) > > + return true; > We should not do this. It would accept broken cases too.