From d17db6066d2524856fab493dd894f8396e896bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 18 Apr 2024 13:30:29 +0300 Subject: [LLD] [COFF] Don't create pseudo relocations for discardable sections (#89043) This extends on the case from 9c970d5ecd6a85188cd2b0a941fcd4d60063ef81; if a section is marked discardable, it won't be mapped into memory at runtime, so there's no point in creating runtime pseudo relocations for such sections. --- lld/COFF/Writer.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lld/COFF') diff --git a/lld/COFF/Writer.cpp b/lld/COFF/Writer.cpp index 7269d15..6899323 100644 --- a/lld/COFF/Writer.cpp +++ b/lld/COFF/Writer.cpp @@ -2060,6 +2060,10 @@ void Writer::createRuntimePseudoRelocs() { auto *sc = dyn_cast(c); if (!sc || !sc->live) continue; + // Don't create pseudo relocations for sections that won't be + // mapped at runtime. + if (sc->header->Characteristics & IMAGE_SCN_MEM_DISCARDABLE) + continue; sc->getRuntimePseudoRelocs(rels); } -- cgit v1.1