<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Symbols.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>e980f16d - [ELF] Move whyExtract/backwardReferences from LinkerDriver to Ctx. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#e980f16d</link>
        <description>[ELF] Move whyExtract/backwardReferences from LinkerDriver to Ctx. NFCCtx was recently added as a more suitable place for such singletons.

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Thu, 30 Jun 2022 00:34:30 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>b862bcbf - [ELF] Move SymbolUnion assertions to source file</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#b862bcbf</link>
        <description>[ELF] Move SymbolUnion assertions to source fileOtherwise they fires for every single file which includes the header,which is very noisy when building.Reviewed By: MaskRay, peter.smithDifferential Revision: https://reviews.llvm.org/D124041

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Tue, 19 Apr 2022 20:42:05 +0000</pubDate>
        <dc:creator>Shoaib Meenai &lt;smeenai@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>7c7702b3 - [ELF] Move section assignment from initializeSymbols to postParse</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#7c7702b3</link>
        <description>[ELF] Move section assignment from initializeSymbols to postParsehttps://discourse.llvm.org/t/parallel-input-file-parsing/60164initializeSymbols currently sets Defined::section and handles non-prevailingCOMDAT groups. Move the code to the parallel postParse to reduce work from thesingle-threading code path and make parallel section initialization infeasible.Postpone reporting duplicate symbol errors so that the messages have thesection information. (`Defined::section` is assigned in postParse and anotherthread may not have the information).* duplicated-synthetic-sym.s: BinaryFile duplicate definition (very rare) now  has no section information* comdat-binding: `%t/w.o %t/g.o` leads to an undesired undefined symbol. This  is not ideal but we report a diagnostic to inform that this is unsupported.  (See release note)* comdat-discarded-lazy.s: %tdef.o is unextracted. The new behavior (discarded  section error) makes more sense* i386-comdat.s: switched to a better approach working around  .gnu.linkonce.t.__x86.get_pc_thunk.bx in glibc&lt;2.32 for x86-32.  Drop the ancient no-longer-relevant workaround for __i686.get_pc_thunk.bxDepends on D120640Differential Revision: https://reviews.llvm.org/D120626

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Wed, 16 Mar 2022 02:24:41 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>9b61fff0 - Revert D120626 &quot;[ELF] Move section assignment from initializeSymbols to postParse&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#9b61fff0</link>
        <description>Revert D120626 &quot;[ELF] Move section assignment from initializeSymbols to postParse&quot;This reverts commit c30e6447c0225f675773d07f2b6d4e3c2b962155.It exposed brittle support for __x86.get_pc_thunk.bx.Need to think a bit how to support __x86.get_pc_thunk.bx.

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Wed, 16 Mar 2022 02:00:54 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>c1d4c677 - [ELF] Suppress duplicate symbol error for __x86.get_pc_thunk.bx</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#c1d4c677</link>
        <description>[ELF] Suppress duplicate symbol error for __x86.get_pc_thunk.bx

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Wed, 16 Mar 2022 00:20:29 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>c30e6447 - [ELF] Move section assignment from initializeSymbols to postParse</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#c30e6447</link>
        <description>[ELF] Move section assignment from initializeSymbols to postParsehttps://discourse.llvm.org/t/parallel-input-file-parsing/60164initializeSymbols currently sets Defined::section and handles non-prevailingCOMDAT groups. Move the code to the parallel postParse to reduce work from thesingle-threading code path and make parallel section initialization infeasible.Postpone reporting duplicate symbol errors so that the messages have thesection information. (`Defined::section` is assigned in postParse and anotherthread may not have the information).* duplicated-synthetic-sym.s: BinaryFile duplicate definition (very rare) now  has no section information* comdat-binding: `%t/w.o %t/g.o` leads to an undesired undefined symbol. This  is not ideal but we report a diagnostic to inform that this is unsupported.  (See release note)* comdat-discarded-lazy.s: %tdef.o is unextracted. The new behavior (discarded  section error) makes more senseDepends on D120640Reviewed By: peter.smithDifferential Revision: https://reviews.llvm.org/D120626

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Mon, 14 Mar 2022 21:13:41 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>c7cf960d - [ELF] Set the priority of STB_GNU_UNIQUE the same as STB_WEAK</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#c7cf960d</link>
        <description>[ELF] Set the priority of STB_GNU_UNIQUE the same as STB_WEAKIn GCC -fgnu-unique output, STB_GNU_UNIQUE symbols are always defined relativeto a section in a COMDAT group. Currently `other` cannot be STB_GNU_UNIQUE forvalid input, so this patch is NFC.If we switch to the model that ignores COMDAT resolution when performing symbolresolution (D120626), this will fix bogus `relocation refers to a symbol in adiscarded section` errors when mixing -fno-gnu-unique objects with -fgnu-uniqueobjects.Differential Revision: https://reviews.llvm.org/D120640

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Mon, 14 Mar 2022 19:00:15 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>b07ef4d5 - [ELF] Rename Symbol::compare to shouldReplace. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#b07ef4d5</link>
        <description>[ELF] Rename Symbol::compare to shouldReplace. NFCThe return value is not a boolean instead of a tri-state.Suggested by Peter Smith in D120640.

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Mon, 28 Feb 2022 18:25:21 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>d14d8664 - [ELF] Change global variable backwardReferences to a LinkerDriver member variable. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#d14d8664</link>
        <description>[ELF] Change global variable backwardReferences to a LinkerDriver member variable. NFCSimilar to whyExtract.

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Sun, 27 Feb 2022 20:33:28 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>7fd3849b - [ELF] Move --print-archive-stats= and --why-extract= beside --warn-backrefs report</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#7fd3849b</link>
        <description>[ELF] Move --print-archive-stats= and --why-extract= beside --warn-backrefs reportSo that early errors don&apos;t suppress their output.

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Sun, 27 Feb 2022 20:23:09 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>19e37a74 - [ELF] Update comment. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#19e37a74</link>
        <description>[ELF] Update comment. NFC

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Thu, 24 Feb 2022 22:09:00 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>6d943408 - [ELF] Simplify resolveDefined and resolveCommon</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#6d943408</link>
        <description>[ELF] Simplify resolveDefined and resolveCommonThis is NFC for valid input (COMMON symbols cannot be weak or versioned).

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Thu, 24 Feb 2022 22:08:06 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>15617cdb - [ELF] Simplify --fortran-common. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#15617cdb</link>
        <description>[ELF] Simplify --fortran-common. NFC

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Thu, 24 Feb 2022 20:21:40 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>4129890d - [ELF] De-template Symbol::resolveLazy. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#4129890d</link>
        <description>[ELF] De-template Symbol::resolveLazy. NFC

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Thu, 24 Feb 2022 20:20:05 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>8ca46bba - [ELF] Move isUsedInRegularObj assignment from ctor to call sites. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#8ca46bba</link>
        <description>[ELF] Move isUsedInRegularObj assignment from ctor to call sites. NFCThis removes the tricky`isUsedInRegularObj(!file || file-&gt;kind() == InputFile::ObjKind)`and the copy from `Symbol::mergeProperties`.

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Thu, 24 Feb 2022 05:32:50 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>88d66f6e - [ELF] Move duplicate symbol check after input file parsing</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#88d66f6e</link>
        <description>[ELF] Move duplicate symbol check after input file parsinghttps://discourse.llvm.org/t/parallel-input-file-parsing/60164To decouple symbol initialization and section initialization, `Defined::section`assignment should be postponed after input file parsing. To avoid spuriousduplicate definition error due to two definitions in COMDAT groups of the samesignature, we should postpone the duplicate symbol check.The function is called postScan instead of a more specific name likecheckDuplicateSymbols, because we may merge Symbol::mergeProperties intopostScan. It is placed after compileBitcodeFiles to apply to ET_REL filesproduced by LTO. This causes minor diagnostic regressionfor skipLinkedOutput configurations: ld.lld --thinlto-index-only a.bc b.o(bitcode definition prevails) won&apos;t detect duplicate symbol error. I think thisis an acceptable compromise. The important cases where (a) both files arebitcode or (b) --thinlto-index-only is unused are still detected.Reviewed By: ikudrinDifferential Revision: https://reviews.llvm.org/D119908

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Tue, 22 Feb 2022 18:07:58 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>467e1b3a - [ELF] reportDuplicate: change Symbol * to const Symbol &amp;. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#467e1b3a</link>
        <description>[ELF] reportDuplicate: change Symbol * to const Symbol &amp;. NFC

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Tue, 15 Feb 2022 19:18:31 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>3d854240 - [ELF] Parse archives as --start-lib object files</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#3d854240</link>
        <description>[ELF] Parse archives as --start-lib object fileshttps://maskray.me/blog/2022-01-16-archives-and-start-libFor every definition in an extracted archive member, we intern the symbol twice,once for the archive index entry, once for the .o symbol table after extraction.This is inefficient.Symbols in a --start-lib ObjFile/BitcodeFile are only interned once because theresult is cached in symbols[i].Just handle an archive using the --start-lib code path. We can therefore removeArchiveFile and LazyArchive. For many projects, archive member extraction ratiois high and it is a net performance win. Linking a Release build of clang is1.01x as fast.Note: --start-lib scans symbols in the same order that llvm-ar adds them to theindex, so in the common case the semantics should be identical. If the archivesymbol table was created in a different order, or is incomplete, this strategymay have different semantics. Such cases are considered user error.The `is neither ET_REL nor LLVM bitcode` error is changed to a warning.Previously an archive may have such members without a diagnostic. Using awarning prevents breakage.* For some tests, the diagnostics get improved where we did not consider  the archive member name: `b.a:` =&gt; `b.a(b.o):`.* `no-obj.s`: the link is now allowed, matching GNU ld* `archive-no-index.s`: the `is neither ET_REL nor LLVM bitcode` diagnostic is  demoted to a warning.* `incompatible.s`: even when an archive is unextracted, we may report an  &quot;incompatible with&quot; error.---I recently decreased sizeof(SymbolUnion) by 8 and decreased memory usage quite abit, so retaining `symbols` for un-extracted archive members should not cause amemory usage problem.Reviewed By: peter.smithDifferential Revision: https://reviews.llvm.org/D119074

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Tue, 15 Feb 2022 17:38:00 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>27bb7990 - [ELF] Clean up headers. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#27bb7990</link>
        <description>[ELF] Clean up headers. NFC

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Tue, 08 Feb 2022 05:53:34 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>977a1a52 - [ELF] Symbol::replace: use the old nameData/nameSize. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lld/ELF/Symbols.cpp#977a1a52</link>
        <description>[ELF] Symbol::replace: use the old nameData/nameSize. NFCCurrently `this-&gt;getName() == newSym.getName()`.By keeping the old nameData/nameSize, newSym&apos;s nameData/nameSize will beignored. The call sites can avoid calling getName().printTraceSymbol needs to take the symbol name since `other`&apos;s name is empty.

            List of files:
            /llvm-project-15.0.7/lld/ELF/Symbols.cpp</description>
        <pubDate>Sun, 06 Feb 2022 00:34:02 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
</channel>
</rss>
