<div dir="ltr">It seems the URLs have expired, so please just re-commit.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 7, 2017 at 2:50 PM, Rafael Avila de Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Do you still have the URL?<br>
<br>
If not would you be OK with me committing this again and watching the<br>
bots?<br>
<br>
Thanks,<br>
Rafael<br>
<div class="HOEnZb"><div class="h5"><br>
Rui Ueyama via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> writes:<br>
<br>
> Author: ruiu<br>
> Date: Tue Aug 22 14:54:58 2017<br>
> New Revision: 311497<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=311497&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=311497&view=rev</a><br>
> Log:<br>
> Revert r311468: If --dynamic-list is given, only those symbols are preemptible<br>
><br>
> This reverts commit r311468 because it broke some CFI bots.<br>
><br>
> Removed:<br>
>     lld/trunk/test/ELF/dynamic-<wbr>list-preempt.s<br>
> Modified:<br>
>     lld/trunk/ELF/Config.h<br>
>     lld/trunk/ELF/ScriptParser.cpp<br>
>     lld/trunk/ELF/SymbolTable.cpp<br>
>     lld/trunk/ELF/SymbolTable.h<br>
>     lld/trunk/ELF/Writer.cpp<br>
><br>
> Modified: lld/trunk/ELF/Config.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Config.h?rev=311497&r1=311496&r2=311497&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/Config.<wbr>h?rev=311497&r1=311496&r2=<wbr>311497&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- lld/trunk/ELF/Config.h (original)<br>
> +++ lld/trunk/ELF/Config.h Tue Aug 22 14:54:58 2017<br>
> @@ -104,7 +104,6 @@ struct Configuration {<br>
>    std::vector<llvm::StringRef> SearchPaths;<br>
>    std::vector<llvm::StringRef> SymbolOrderingFile;<br>
>    std::vector<llvm::StringRef> Undefined;<br>
> -  std::vector<SymbolVersion> DynamicList;<br>
>    std::vector<SymbolVersion> VersionScriptGlobals;<br>
>    std::vector<SymbolVersion> VersionScriptLocals;<br>
>    std::vector<uint8_t> BuildIdVector;<br>
><br>
> Modified: lld/trunk/ELF/ScriptParser.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/ScriptParser.cpp?rev=311497&r1=311496&r2=311497&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/<wbr>ScriptParser.cpp?rev=311497&<wbr>r1=311496&r2=311497&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- lld/trunk/ELF/ScriptParser.cpp (original)<br>
> +++ lld/trunk/ELF/ScriptParser.cpp Tue Aug 22 14:54:58 2017<br>
> @@ -175,22 +175,9 @@ static ExprValue bitOr(ExprValue A, Expr<br>
><br>
>  void ScriptParser::readDynamicList(<wbr>) {<br>
>    expect("{");<br>
> -  std::vector<SymbolVersion> Locals;<br>
> -  std::vector<SymbolVersion> Globals;<br>
> -  std::tie(Locals, Globals) = readSymbols();<br>
> -  expect(";");<br>
> -<br>
> -  if (!atEOF()) {<br>
> +  readAnonymousDeclaration();<br>
> +  if (!atEOF())<br>
>      setError("EOF expected, but got " + next());<br>
> -    return;<br>
> -  }<br>
> -  if (!Locals.empty()) {<br>
> -    setError("\"local:\" scope not supported in --dynamic-list");<br>
> -    return;<br>
> -  }<br>
> -<br>
> -  for (SymbolVersion V : Globals)<br>
> -    Config->DynamicList.push_back(<wbr>V);<br>
>  }<br>
><br>
>  void ScriptParser::<wbr>readVersionScript() {<br>
><br>
> Modified: lld/trunk/ELF/SymbolTable.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolTable.cpp?rev=311497&r1=311496&r2=311497&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/<wbr>SymbolTable.cpp?rev=311497&r1=<wbr>311496&r2=311497&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- lld/trunk/ELF/SymbolTable.cpp (original)<br>
> +++ lld/trunk/ELF/SymbolTable.cpp Tue Aug 22 14:54:58 2017<br>
> @@ -680,24 +680,6 @@ void SymbolTable::<wbr>handleAnonymousVersion<br>
>      assignWildcardVersion(Ver, VER_NDX_LOCAL);<br>
>  }<br>
><br>
> -// Handles -dynamic-list.<br>
> -void SymbolTable::<wbr>handleDynamicList() {<br>
> -  for (SymbolVersion &Ver : Config->DynamicList) {<br>
> -    std::vector<SymbolBody *> Syms;<br>
> -    if (Ver.HasWildcard)<br>
> -      Syms = findByVersion(Ver);<br>
> -    else<br>
> -      Syms = findAllByVersion(Ver);<br>
> -<br>
> -    for (SymbolBody *B : Syms) {<br>
> -      if (!Config->Shared)<br>
> -        B->symbol()->VersionId = VER_NDX_GLOBAL;<br>
> -      else if (B->symbol()->includeInDynsym(<wbr>))<br>
> -        B->IsPreemptible = true;<br>
> -    }<br>
> -  }<br>
> -}<br>
> -<br>
>  // Set symbol versions to symbols. This function handles patterns<br>
>  // containing no wildcard characters.<br>
>  void SymbolTable::<wbr>assignExactVersion(<wbr>SymbolVersion Ver, uint16_t VersionId,<br>
> @@ -747,7 +729,6 @@ void SymbolTable::<wbr>assignWildcardVersion(<br>
>  void SymbolTable::<wbr>scanVersionScript() {<br>
>    // Handle edge cases first.<br>
>    handleAnonymousVersion();<br>
> -  handleDynamicList();<br>
><br>
>    // Now we have version definitions, so we need to set version ids to symbols.<br>
>    // Each version definition has a glob pattern, and all symbols that match<br>
><br>
> Modified: lld/trunk/ELF/SymbolTable.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolTable.h?rev=311497&r1=311496&r2=311497&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/<wbr>SymbolTable.h?rev=311497&r1=<wbr>311496&r2=311497&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- lld/trunk/ELF/SymbolTable.h (original)<br>
> +++ lld/trunk/ELF/SymbolTable.h Tue Aug 22 14:54:58 2017<br>
> @@ -90,8 +90,6 @@ public:<br>
><br>
>    void trace(StringRef Name);<br>
><br>
> -  void handleDynamicList();<br>
> -<br>
>  private:<br>
>    std::vector<SymbolBody *> findByVersion(SymbolVersion Ver);<br>
>    std::vector<SymbolBody *> findAllByVersion(SymbolVersion Ver);<br>
><br>
> Modified: lld/trunk/ELF/Writer.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=311497&r1=311496&r2=311497&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/ELF/Writer.<wbr>cpp?rev=311497&r1=311496&r2=<wbr>311497&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- lld/trunk/ELF/Writer.cpp (original)<br>
> +++ lld/trunk/ELF/Writer.cpp Tue Aug 22 14:54:58 2017<br>
> @@ -1219,9 +1219,8 @@ template <class ELFT> void Writer<ELFT>:<br>
>    applySynthetic({In<ELFT>::<wbr>EhFrame},<br>
>                   [](SyntheticSection *SS) { SS->finalizeContents(); });<br>
><br>
> -  if (Config->DynamicList.empty())<br>
> -    for (Symbol *S : Symtab->getSymbols())<br>
> -      S->body()->IsPreemptible = computeIsPreemptible(*S->body(<wbr>));<br>
> +  for (Symbol *S : Symtab->getSymbols())<br>
> +    S->body()->IsPreemptible = computeIsPreemptible(*S->body(<wbr>));<br>
><br>
>    // Scan relocations. This must be done after every symbol is declared so that<br>
>    // we can correctly decide if a dynamic relocation is needed.<br>
><br>
> Removed: lld/trunk/test/ELF/dynamic-<wbr>list-preempt.s<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/dynamic-list-preempt.s?rev=311496&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/test/ELF/<wbr>dynamic-list-preempt.s?rev=<wbr>311496&view=auto</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- lld/trunk/test/ELF/dynamic-<wbr>list-preempt.s (original)<br>
> +++ lld/trunk/test/ELF/dynamic-<wbr>list-preempt.s (removed)<br>
> @@ -1,65 +0,0 @@<br>
> -# REQUIRES: x86<br>
> -<br>
> -# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o<br>
> -# RUN: echo "{ foo; zed; };" > %t.list<br>
> -# RUN: echo "{ global: foo; bar; local: *; };" > %t.vers<br>
> -# RUN: ld.lld -fatal-warnings -dynamic-list %t.list -version-script %t.vers -shared %t.o -o %t.so<br>
> -# RUN: llvm-readobj -r %t.so | FileCheck --check-prefix=RELOCS %s<br>
> -# RUN: llvm-readobj -dyn-symbols  %t.so | FileCheck --check-prefix=DYNSYMS %s<br>
> -<br>
> -# RELOCS:      Relocations [<br>
> -# RELOCS-NEXT:   Section ({{.*}}) .rela.plt {<br>
> -# RELOCS-NEXT:     R_X86_64_JUMP_SLOT foo 0x0<br>
> -# RELOCS-NEXT:   }<br>
> -# RELOCS-NEXT: ]<br>
> -<br>
> -# DYNSYMS:      DynamicSymbols [<br>
> -# DYNSYMS-NEXT:   Symbol {<br>
> -# DYNSYMS-NEXT:     Name: @ (0)<br>
> -# DYNSYMS-NEXT:     Value: 0x0<br>
> -# DYNSYMS-NEXT:     Size: 0<br>
> -# DYNSYMS-NEXT:     Binding: Local<br>
> -# DYNSYMS-NEXT:     Type: None<br>
> -# DYNSYMS-NEXT:     Other: 0<br>
> -# DYNSYMS-NEXT:     Section: Undefined<br>
> -# DYNSYMS-NEXT:   }<br>
> -# DYNSYMS-NEXT:   Symbol {<br>
> -# DYNSYMS-NEXT:     Name: bar@<br>
> -# DYNSYMS-NEXT:     Value:<br>
> -# DYNSYMS-NEXT:     Size:<br>
> -# DYNSYMS-NEXT:     Binding: Global<br>
> -# DYNSYMS-NEXT:     Type:<br>
> -# DYNSYMS-NEXT:     Other:<br>
> -# DYNSYMS-NEXT:     Section:<br>
> -# DYNSYMS-NEXT:   }<br>
> -# DYNSYMS-NEXT:   Symbol {<br>
> -# DYNSYMS-NEXT:     Name: foo@<br>
> -# DYNSYMS-NEXT:     Value:<br>
> -# DYNSYMS-NEXT:     Size:<br>
> -# DYNSYMS-NEXT:     Binding: Global<br>
> -# DYNSYMS-NEXT:     Type:<br>
> -# DYNSYMS-NEXT:     Other:<br>
> -# DYNSYMS-NEXT:     Section:<br>
> -# DYNSYMS-NEXT:   }<br>
> -# DYNSYMS-NEXT: ]<br>
> -<br>
> -        .globl foo<br>
> -foo:<br>
> -        ret<br>
> -<br>
> -        .globl bar<br>
> -bar:<br>
> -        ret<br>
> -<br>
> -        .globl baz<br>
> -baz:<br>
> -        ret<br>
> -<br>
> -        .globl zed<br>
> -zed:<br>
> -        ret<br>
> -<br>
> -        call   foo@PLT<br>
> -        call   bar@PLT<br>
> -        call   baz@PLT<br>
> -        call   zed@PLT<br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>