[lld] r240922 - COFF: Fix logic to find default entry name or subsystem.

Rui Ueyama ruiu at google.com
Mon Jul 13 20:22:07 PDT 2015


It seems it's failing when it's trying to read a .lib file that is created
by a previous run of lld in the same test. .Lib files are created by an
external command, winres, so there may be something wrong with that command
in your environment? That command is part of Visual Studio.


On Mon, Jul 13, 2015 at 5:57 PM, Sean Silva <chisophugis at gmail.com> wrote:

> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>
> This test seems to be failing lately on one of our internal builders (
> LLVM.Windows.Phase.2) that builds the open source repo. Sorry I don't
> have more info at the moment, but do you have any idea what could be
> causing this? Seems to be "no such file or directory" for one of the files.
>
> http://reviews.llvm.org/P118
>
> """
> Command 15: "lld" "-flavor" "link2"
> "/out:C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.2\llvm.obj\tools\lld\test\COFF\Output\dll.test.tmp2.exe"
> "/entry:main"
> "C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.2\llvm.obj\tools\lld\test\COFF\Output\dll.test.tmp2.obj"
> "C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.2\llvm.obj\tools\lld\test\COFF\Output\dll.test.tmp.lib"
>
> Command 15 Result: 1
>
> Command 15 Output:
>
>
>
>
>
> Command 15 Stderr:
>
> cannot open
> C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.2\llvm.obj\tools\lld\test\COFF\Output\dll.test.tmp.lib:
> no such file or directory
>
> """
>
> -- Sean Silva
>
> On Sun, Jun 28, 2015 at 6:03 PM, Rui Ueyama <ruiu at google.com> wrote:
>
>> Author: ruiu
>> Date: Sun Jun 28 20:03:53 2015
>> New Revision: 240922
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=240922&view=rev
>> Log:
>> COFF: Fix logic to find default entry name or subsystem.
>>
>> The previous logic to find default entry name or subsystem does not
>> seem correct (i.e. was not compatible with MSVC linker). Previously,
>> default entry name was inferred from CRT functions and user-defined
>> entry functions. Subsystem was inferred from CRT functions.
>>
>> Default entry name and subsystem are now inferred based on the
>> following table. Note that we no longer use CRT functions to infer
>> them.
>>
>>                Entry name           Subsystem
>>   main         mainCRTStartup       console
>>   wmain        wmainCRTStartup      console
>>   WinMain      WinMainCRTStartup    windows
>>   wWinMain     wWinMainCRTStartup   windows
>>
>> Removed:
>>     lld/trunk/test/COFF/Inputs/common.yaml
>> Modified:
>>     lld/trunk/COFF/Driver.cpp
>>     lld/trunk/COFF/Driver.h
>>     lld/trunk/COFF/SymbolTable.cpp
>>     lld/trunk/COFF/SymbolTable.h
>>     lld/trunk/test/COFF/Inputs/icf1.yaml
>>     lld/trunk/test/COFF/Inputs/icf2.yaml
>>     lld/trunk/test/COFF/Inputs/icf3.yaml
>>     lld/trunk/test/COFF/Inputs/icf4.yaml
>>     lld/trunk/test/COFF/Inputs/icf5.yaml
>>     lld/trunk/test/COFF/Inputs/import.yaml
>>     lld/trunk/test/COFF/Inputs/include1a.yaml
>>     lld/trunk/test/COFF/Inputs/ret42.yaml
>>     lld/trunk/test/COFF/alternatename.test
>>     lld/trunk/test/COFF/base.test
>>     lld/trunk/test/COFF/baserel.test
>>     lld/trunk/test/COFF/common.test
>>     lld/trunk/test/COFF/dll.test
>>     lld/trunk/test/COFF/entrylib.ll
>>     lld/trunk/test/COFF/filetype.test
>>     lld/trunk/test/COFF/force.test
>>     lld/trunk/test/COFF/heap.test
>>     lld/trunk/test/COFF/icf.test
>>     lld/trunk/test/COFF/include.test
>>     lld/trunk/test/COFF/include2.test
>>     lld/trunk/test/COFF/internal.test
>>     lld/trunk/test/COFF/linkenv.test
>>     lld/trunk/test/COFF/lldmap.test
>>     lld/trunk/test/COFF/locally-imported.test
>>     lld/trunk/test/COFF/long-section-name.test
>>     lld/trunk/test/COFF/manifest.test
>>     lld/trunk/test/COFF/opt.test
>>     lld/trunk/test/COFF/options.test
>>     lld/trunk/test/COFF/order.test
>>     lld/trunk/test/COFF/out.test
>>     lld/trunk/test/COFF/resource.test
>>     lld/trunk/test/COFF/responsefile.test
>>     lld/trunk/test/COFF/stack.test
>>     lld/trunk/test/COFF/subsystem-inference.test
>>     lld/trunk/test/COFF/unwind.test
>>     lld/trunk/test/COFF/version.test
>>
>> Modified: lld/trunk/COFF/Driver.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/Driver.cpp (original)
>> +++ lld/trunk/COFF/Driver.cpp Sun Jun 28 20:03:53 2015
>> @@ -207,15 +207,30 @@ void LinkerDriver::addUndefined(StringRe
>>    Config->GCRoots.insert(Sym);
>>  }
>>
>> -static WindowsSubsystem inferSubsystem() {
>> +// Windows specific -- find default entry point name.
>> +StringRef LinkerDriver::findDefaultEntry() {
>> +  // User-defined main functions and their corresponding entry points.
>> +  static const char *Entries[][2] = {
>> +      {"main", "mainCRTStartup"},
>> +      {"wmain", "wmainCRTStartup"},
>> +      {"WinMain", "WinMainCRTStartup"},
>> +      {"wWinMain", "wWinMainCRTStartup"},
>> +  };
>> +  for (auto E : Entries) {
>> +    if (Symtab.findLazy(E[0]))
>> +      return E[1];
>> +  }
>> +  return "";
>> +}
>> +
>> +WindowsSubsystem LinkerDriver::inferSubsystem() {
>>    if (Config->DLL)
>>      return IMAGE_SUBSYSTEM_WINDOWS_GUI;
>> -  return StringSwitch<WindowsSubsystem>(Config->EntryName)
>> -      .Case("mainCRTStartup", IMAGE_SUBSYSTEM_WINDOWS_CUI)
>> -      .Case("wmainCRTStartup", IMAGE_SUBSYSTEM_WINDOWS_CUI)
>> -      .Case("WinMainCRTStartup", IMAGE_SUBSYSTEM_WINDOWS_GUI)
>> -      .Case("wWinMainCRTStartup", IMAGE_SUBSYSTEM_WINDOWS_GUI)
>> -      .Default(IMAGE_SUBSYSTEM_UNKNOWN);
>> +  if (Symtab.find("main") || Symtab.find("wmain"))
>> +    return IMAGE_SUBSYSTEM_WINDOWS_CUI;
>> +  if (Symtab.find("WinMain") || Symtab.find("wWinMain"))
>> +    return IMAGE_SUBSYSTEM_WINDOWS_GUI;
>> +  return IMAGE_SUBSYSTEM_UNKNOWN;
>>  }
>>
>>  bool LinkerDriver::link(llvm::ArrayRef<const char *> ArgsArr) {
>> @@ -522,6 +537,18 @@ bool LinkerDriver::link(llvm::ArrayRef<c
>>      return false;
>>    }
>>
>> +  // Windows specific -- If entry point name is not given, we need to
>> +  // infer that from user-defined entry name.
>> +  if (Config->EntryName.empty() && !Config->NoEntry) {
>> +    StringRef S = findDefaultEntry();
>> +    if (S.empty()) {
>> +      llvm::errs() << "entry point must be defined\n";
>> +      return false;
>> +    }
>> +    Config->EntryName = S;
>> +    addUndefined(S);
>> +  }
>> +
>>    // Resolve auxiliary symbols until converge.
>>    // (Trying to resolve a symbol may trigger a Lazy symbol to load a new
>> file.
>>    // A new file may contain a directive section to add new command line
>> options.
>> @@ -545,19 +572,6 @@ bool LinkerDriver::link(llvm::ArrayRef<c
>>        }
>>      }
>>
>> -    // Windows specific -- If entry point name is not given, we need to
>> -    // infer that from user-defined entry name. The symbol table takes
>> -    // care of details.
>> -    if (Config->EntryName.empty() && !Config->NoEntry) {
>> -      auto EntryOrErr = Symtab.findDefaultEntry();
>> -      if (auto EC = EntryOrErr.getError()) {
>> -        llvm::errs() << EC.message() << "\n";
>> -        return false;
>> -      }
>> -      Config->EntryName = EntryOrErr.get();
>> -      addUndefined(Config->EntryName);
>> -    }
>> -
>>      if (auto EC = Symtab.run()) {
>>        llvm::errs() << EC.message() << "\n";
>>        return false;
>>
>> Modified: lld/trunk/COFF/Driver.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.h?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/Driver.h (original)
>> +++ lld/trunk/COFF/Driver.h Sun Jun 28 20:03:53 2015
>> @@ -94,6 +94,16 @@ private:
>>
>>    void addUndefined(StringRef Sym);
>>
>> +  // Windows specific -- "main" is not the only main function in Windows.
>> +  // You can choose one from these four -- {w,}{WinMain,main}.
>> +  // There are four different entry point functions for them,
>> +  // {w,}{WinMain,main}CRTStartup, respectively. The linker needs to
>> +  // choose the right one depending on which "main" function is defined.
>> +  // This function looks up the symbol table and resolve corresponding
>> +  // entry point name.
>> +  StringRef findDefaultEntry();
>> +  WindowsSubsystem inferSubsystem();
>> +
>>    // Driver is the owner of all opened files.
>>    // InputFiles have MemoryBufferRefs to them.
>>    std::vector<std::unique_ptr<MemoryBuffer>> OwningMBs;
>>
>> Modified: lld/trunk/COFF/SymbolTable.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/SymbolTable.cpp?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/SymbolTable.cpp (original)
>> +++ lld/trunk/COFF/SymbolTable.cpp Sun Jun 28 20:03:53 2015
>> @@ -174,6 +174,25 @@ Defined *SymbolTable::find(StringRef Nam
>>    return nullptr;
>>  }
>>
>> +// Find a given symbol. If a lazy symbol is found,
>> +// resolve that before returning.
>> +Defined *SymbolTable::findLazy(StringRef Name) {
>> +  auto It = Symtab.find(Name);
>> +  if (It == Symtab.end())
>> +    return nullptr;
>> +  Symbol *Sym = It->second;
>> +  if (auto *B = dyn_cast<Defined>(Sym->Body))
>> +    return B;
>> +  if (auto *B = dyn_cast<Lazy>(Sym->Body)) {
>> +    if (addMemberFile(B))
>> +      return nullptr;
>> +    if (run())
>> +      return nullptr;
>> +    return cast<Defined>(Sym->Body);
>> +  }
>> +  return nullptr;
>> +}
>> +
>>  // Find a given symbol or its mangled symbol.
>>  std::pair<StringRef, Symbol *> SymbolTable::findMangled(StringRef S) {
>>    auto It = Symtab.find(S);
>> @@ -196,41 +215,6 @@ std::pair<StringRef, Symbol *> SymbolTab
>>    return std::make_pair(S, nullptr);
>>  }
>>
>> -std::error_code SymbolTable::resolveLazy(StringRef Name) {
>> -  auto It = Symtab.find(Name);
>> -  if (It == Symtab.end())
>> -    return std::error_code();
>> -  if (auto *B = dyn_cast<Lazy>(It->second->Body)) {
>> -    if (auto EC = addMemberFile(B))
>> -      return EC;
>> -    return run();
>> -  }
>> -  return std::error_code();
>> -}
>> -
>> -// Windows specific -- Link default entry point name.
>> -ErrorOr<StringRef> SymbolTable::findDefaultEntry() {
>> -  // User-defined main functions and their corresponding entry points.
>> -  static const char *Entries[][2] = {
>> -      {"main", "mainCRTStartup"},
>> -      {"wmain", "wmainCRTStartup"},
>> -      {"WinMain", "WinMainCRTStartup"},
>> -      {"wWinMain", "wWinMainCRTStartup"},
>> -  };
>> -  for (auto E : Entries) {
>> -    resolveLazy(E[1]);
>> -    if (find(E[1]))
>> -      return StringRef(E[1]);
>> -    if (!find(E[0]))
>> -      continue;
>> -    if (auto EC = resolve(new (Alloc) Undefined(E[1])))
>> -      return EC;
>> -    return StringRef(E[1]);
>> -  }
>> -  llvm::errs() << "entry point must be defined\n";
>> -  return make_error_code(LLDError::InvalidOption);
>> -}
>> -
>>  std::error_code SymbolTable::addUndefined(StringRef Name) {
>>    return resolve(new (Alloc) Undefined(Name));
>>  }
>> @@ -248,7 +232,10 @@ std::error_code SymbolTable::rename(Stri
>>    SymbolBody *Body = new (Alloc) Undefined(To);
>>    if (auto EC = resolve(Body))
>>      return EC;
>> -  Sym->Body = Body->getReplacement();
>> +  SymbolBody *Repl = Body->getReplacement();
>> +  if (isa<Undefined>(Repl))
>> +    return std::error_code();
>> +  Sym->Body = Repl;
>>    Body->setBackref(Sym);
>>    ++Version;
>>    return std::error_code();
>>
>> Modified: lld/trunk/COFF/SymbolTable.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/SymbolTable.h?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/COFF/SymbolTable.h (original)
>> +++ lld/trunk/COFF/SymbolTable.h Sun Jun 28 20:03:53 2015
>> @@ -51,21 +51,13 @@ public:
>>    // mechanisms to allow aliases, a name can be resolved to a
>>    // different symbol). Returns a nullptr if not found.
>>    Defined *find(StringRef Name);
>> +  Defined *findLazy(StringRef Name);
>>
>>    // Find a symbol assuming that Name is a function name.
>>    // Not only a given string but its mangled names (in MSVC C++ manner)
>>    // will be searched.
>>    std::pair<StringRef, Symbol *> findMangled(StringRef Name);
>>
>> -  // Windows specific -- `main` is not the only main function in Windows.
>> -  // You can choose one from these four -- {w,}{WinMain,main}.
>> -  // There are four different entry point functions for them,
>> -  // {w,}{WinMain,main}CRTStartup, respectively. The linker needs to
>> -  // choose the right one depending on which `main` function is defined.
>> -  // This function looks up the symbol table and resolve corresponding
>> -  // entry point name.
>> -  ErrorOr<StringRef> findDefaultEntry();
>> -
>>    // Print a layout map to OS.
>>    void printMap(llvm::raw_ostream &OS);
>>
>> @@ -92,7 +84,6 @@ public:
>>
>>  private:
>>    std::error_code resolve(SymbolBody *Body);
>> -  std::error_code resolveLazy(StringRef Name);
>>    std::error_code addMemberFile(Lazy *Body);
>>    ErrorOr<ObjectFile *> createLTOObject(llvm::LTOCodeGenerator *CG);
>>
>>
>> Removed: lld/trunk/test/COFF/Inputs/common.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/common.yaml?rev=240921&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/common.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/common.yaml (removed)
>> @@ -1,91 +0,0 @@
>> ----
>> -header:
>> -  Machine:         IMAGE_FILE_MACHINE_AMD64
>> -  Characteristics: []
>> -sections:
>> -  - Name:            .text
>> -    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE,
>> IMAGE_SCN_MEM_READ ]
>> -    Alignment:       4
>> -    SectionData:     b800000000b800000000b800000000b800000000b800000000
>> -    Relocations:
>> -      - VirtualAddress:  1
>> -        SymbolName:      bssdata4
>> -        Type:            IMAGE_REL_AMD64_ADDR32
>> -      - VirtualAddress:  6
>> -        SymbolName:      bsspad1
>> -        Type:            IMAGE_REL_AMD64_ADDR32
>> -      - VirtualAddress:  11
>> -        SymbolName:      bssdata64
>> -        Type:            IMAGE_REL_AMD64_ADDR32
>> -      - VirtualAddress:  16
>> -        SymbolName:      bsspad2
>> -        Type:            IMAGE_REL_AMD64_ADDR32
>> -      - VirtualAddress:  21
>> -        SymbolName:      bssdata16
>> -        Type:            IMAGE_REL_AMD64_ADDR32
>> -  - Name:            .data
>> -    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>> IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
>> -    Alignment:       4
>> -    SectionData:     03000000
>> -symbols:
>> -  - Name:            .text
>> -    Value:           0
>> -    SectionNumber:   1
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> -    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> -    SectionDefinition:
>> -      Length:          0
>> -      NumberOfRelocations: 5
>> -      NumberOfLinenumbers: 0
>> -      CheckSum:        0
>> -      Number:          0
>> -  - Name:            .data
>> -    Value:           0
>> -    SectionNumber:   2
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> -    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> -    SectionDefinition:
>> -      Length:          4
>> -      NumberOfRelocations: 0
>> -      NumberOfLinenumbers: 0
>> -      CheckSum:        0
>> -      Number:          0
>> -  - Name:            mainCRTStartup
>> -    Value:           0
>> -    SectionNumber:   1
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
>> -    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -  - Name:            bssdata4
>> -    Value:           4
>> -    SectionNumber:   0
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> -    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -  - Name:            bsspad1
>> -    Value:           1
>> -    SectionNumber:   0
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> -    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -  - Name:            bssdata64
>> -    Value:           64
>> -    SectionNumber:   0
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> -    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -  - Name:            bsspad2
>> -    Value:           1
>> -    SectionNumber:   0
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> -    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -  - Name:            bssdata16
>> -    Value:           16
>> -    SectionNumber:   0
>> -    SimpleType:      IMAGE_SYM_TYPE_NULL
>> -    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> -    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -...
>>
>> Modified: lld/trunk/test/COFF/Inputs/icf1.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/icf1.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/icf1.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/icf1.yaml Sun Jun 28 20:03:53 2015
>> @@ -29,7 +29,7 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/Inputs/icf2.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/icf2.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/icf2.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/icf2.yaml Sun Jun 28 20:03:53 2015
>> @@ -25,7 +25,7 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  # icf2 is identical with mainCRTStartup
>> +  # icf2 is identical with main
>>    - Name:            icf2
>>      Value:           0
>>      SectionNumber:   1
>>
>> Modified: lld/trunk/test/COFF/Inputs/icf3.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/icf3.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/icf3.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/icf3.yaml Sun Jun 28 20:03:53 2015
>> @@ -25,7 +25,7 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  # icf3 is *not* identical with mainCRTStartup because its relocation
>> is different
>> +  # icf3 is *not* identical with main because its relocation is different
>>    - Name:            icf3
>>      Value:           0
>>      SectionNumber:   1
>>
>> Modified: lld/trunk/test/COFF/Inputs/icf4.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/icf4.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/icf4.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/icf4.yaml Sun Jun 28 20:03:53 2015
>> @@ -25,7 +25,7 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  # icf4 is *not* identical with mainCRTStartup because it has an
>> associative section
>> +  # icf4 is *not* identical with main because it has an associative
>> section
>>    - Name:            icf4
>>      Value:           0
>>      SectionNumber:   1
>>
>> Modified: lld/trunk/test/COFF/Inputs/icf5.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/icf5.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/icf5.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/icf5.yaml Sun Jun 28 20:03:53 2015
>> @@ -21,7 +21,7 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  # icf5 is *not* identical with its symbol value is different
>> +  # icf5 is *not* identical with main because its symbol value is
>> different
>>    - Name:            icf5
>>      Value:           5
>>      SectionNumber:   1
>>
>> Modified: lld/trunk/test/COFF/Inputs/import.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/import.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/import.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/import.yaml Sun Jun 28 20:03:53 2015
>> @@ -20,7 +20,7 @@ symbols:
>>        NumberOfLinenumbers: 0
>>        CheckSum:        0
>>        Number:          0
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/Inputs/include1a.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/include1a.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/include1a.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/include1a.yaml Sun Jun 28 20:03:53 2015
>> @@ -24,7 +24,7 @@ symbols:
>>        NumberOfLinenumbers: 0
>>        CheckSum:        0
>>        Number:          0
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/Inputs/ret42.yaml
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/ret42.yaml?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/Inputs/ret42.yaml (original)
>> +++ lld/trunk/test/COFF/Inputs/ret42.yaml Sun Jun 28 20:03:53 2015
>> @@ -36,7 +36,7 @@ symbols:
>>        NumberOfLinenumbers: 0
>>        CheckSum:        0
>>        Number:          0
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/alternatename.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/alternatename.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/alternatename.test (original)
>> +++ lld/trunk/test/COFF/alternatename.test Sun Jun 28 20:03:53 2015
>> @@ -1,9 +1,9 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>>  # RUN: lld -flavor link2 /entry:foo /subsystem:console \
>> -# RUN:   /alternatename:foo=mainCRTStartup /out:%t.exe %t.obj
>> +# RUN:   /alternatename:foo=main /out:%t.exe %t.obj
>>  # RUN: lld -flavor link2 /entry:foo /subsystem:console \
>> -# RUN:   /alternatename:foo=mainCRTStartup \
>> -# RUN:   /alternatename:foo=mainCRTStartup \
>> +# RUN:   /alternatename:foo=main \
>> +# RUN:   /alternatename:foo=main \
>>  # RUN:   /alternatename:nosuchsym1=nosuchsym2 \
>>  # RUN:   /out:%t.exe %t.obj
>>
>> @@ -26,7 +26,7 @@ sections:
>>    - Name:            .drectve
>>      Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
>>      Alignment:       2147483648
>> -    SectionData:
>>  2f616c7465726e6174656e616d653a666f6f3d6d61696e4352545374617274757000  #
>> /alternatename:foo=mainCRTStartup
>> +    SectionData:     2f616c7465726e6174656e616d653a666f6f3d6d61696e00  #
>> /alternatename:foo=main
>>  symbols:
>>    - Name:            '.text$mn'
>>      Value:           0
>> @@ -52,7 +52,7 @@ symbols:
>>        NumberOfLinenumbers: 0
>>        CheckSum:        0
>>        Number:          0
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/base.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/base.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/base.test (original)
>> +++ lld/trunk/test/COFF/base.test Sun Jun 28 20:03:53 2015
>> @@ -1,11 +1,11 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=DEFAULT %s
>>
>>  DEFAULT: ImageBase: 0x140000000
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /base:0x280000000
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj /base:0x280000000
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=BASE
>> %s
>>
>>  BASE: ImageBase: 0x280000000
>>
>> Modified: lld/trunk/test/COFF/baserel.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/baserel.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/baserel.test (original)
>> +++ lld/trunk/test/COFF/baserel.test Sun Jun 28 20:03:53 2015
>> @@ -1,9 +1,9 @@
>>  # RUN: yaml2obj < %s > %t.obj
>>  #
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj %p/Inputs/std64.lib
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>> %p/Inputs/std64.lib
>>  # RUN: llvm-readobj -coff-basereloc %t.exe | FileCheck %s
>> -check-prefix=BASEREL
>>  #
>> -# RUN: lld -flavor link2 /out:%t.exe /fixed %t.obj %p/Inputs/std64.lib
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /fixed %t.obj
>> %p/Inputs/std64.lib
>>  # RUN: llvm-readobj -coff-basereloc %t.exe | FileCheck %s
>> -check-prefix=NOBASEREL
>>  #
>>  # BASEREL:      BaseReloc [
>> @@ -43,11 +43,11 @@
>>  # NOBASEREL:      BaseReloc [
>>  # NOBASEREL-NEXT: ]
>>  #
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj %p/Inputs/std64.lib
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>> %p/Inputs/std64.lib
>>  # RUN: llvm-readobj -file-headers -sections %t.exe | FileCheck %s \
>>  # RUN:   --check-prefix=BASEREL-HEADER
>>  #
>> -# RN: lld -flavor link2 /out:%t.exe /fixed %t.obj %p/Inputs/std64.lib
>> +# RN: lld -flavor link2 /out:%t.exe /entry:main /fixed %t.obj
>> %p/Inputs/std64.lib
>>  # RN: llvm-readobj -file-headers %t.exe | FileCheck %s \
>>  # RN:   --check-prefix=NOBASEREL-HEADER
>>  #
>> @@ -188,7 +188,7 @@ symbols:
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>      ComplexType:     IMAGE_SYM_DTYPE_NULL
>>      StorageClass:    IMAGE_SYM_CLASS_STATIC
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/common.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/common.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/common.test (original)
>> +++ lld/trunk/test/COFF/common.test Sun Jun 28 20:03:53 2015
>> @@ -1,10 +1,102 @@
>> -# RUN: yaml2obj %p/Inputs/common.yaml > %t.obj
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj %t.obj
>> +# RUN: yaml2obj %s > %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj %t.obj
>>  # RUN: llvm-objdump -d %t.exe | FileCheck %s
>>
>>  # Operands of B8 (MOV EAX) are common symbols
>> -CHECK: 3000: b8 00 10 00 40
>> -CHECK: 3005: b8 04 10 00 40
>> -CHECK: 300a: b8 20 10 00 40
>> -CHECK: 300f: b8 60 10 00 40
>> -CHECK: 3014: b8 80 10 00 40
>> +# CHECK: 3000: b8 00 10 00 40
>> +# CHECK: 3005: b8 04 10 00 40
>> +# CHECK: 300a: b8 20 10 00 40
>> +# CHECK: 300f: b8 60 10 00 40
>> +# CHECK: 3014: b8 80 10 00 40
>> +
>> +---
>> +header:
>> +  Machine:         IMAGE_FILE_MACHINE_AMD64
>> +  Characteristics: []
>> +sections:
>> +  - Name:            .text
>> +    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE,
>> IMAGE_SCN_MEM_READ ]
>> +    Alignment:       4
>> +    SectionData:     b800000000b800000000b800000000b800000000b800000000
>> +    Relocations:
>> +      - VirtualAddress:  1
>> +        SymbolName:      bssdata4
>> +        Type:            IMAGE_REL_AMD64_ADDR32
>> +      - VirtualAddress:  6
>> +        SymbolName:      bsspad1
>> +        Type:            IMAGE_REL_AMD64_ADDR32
>> +      - VirtualAddress:  11
>> +        SymbolName:      bssdata64
>> +        Type:            IMAGE_REL_AMD64_ADDR32
>> +      - VirtualAddress:  16
>> +        SymbolName:      bsspad2
>> +        Type:            IMAGE_REL_AMD64_ADDR32
>> +      - VirtualAddress:  21
>> +        SymbolName:      bssdata16
>> +        Type:            IMAGE_REL_AMD64_ADDR32
>> +  - Name:            .data
>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>> IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
>> +    Alignment:       4
>> +    SectionData:     03000000
>> +symbols:
>> +  - Name:            .text
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          0
>> +      NumberOfRelocations: 5
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        0
>> +      Number:          0
>> +  - Name:            .data
>> +    Value:           0
>> +    SectionNumber:   2
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC
>> +    SectionDefinition:
>> +      Length:          4
>> +      NumberOfRelocations: 0
>> +      NumberOfLinenumbers: 0
>> +      CheckSum:        0
>> +      Number:          0
>> +  - Name:            main
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            bssdata4
>> +    Value:           4
>> +    SectionNumber:   0
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            bsspad1
>> +    Value:           1
>> +    SectionNumber:   0
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            bssdata64
>> +    Value:           64
>> +    SectionNumber:   0
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            bsspad2
>> +    Value:           1
>> +    SectionNumber:   0
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            bssdata16
>> +    Value:           16
>> +    SectionNumber:   0
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +...
>>
>> Modified: lld/trunk/test/COFF/dll.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/dll.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/dll.test (original)
>> +++ lld/trunk/test/COFF/dll.test Sun Jun 28 20:03:53 2015
>> @@ -27,15 +27,15 @@ EXPORT-LTO-NEXT:       2   0x1020  expor
>>  EXPORT-LTO-NEXT:       3   0x1030  exportfn3
>>
>>  # RUN: yaml2obj < %p/Inputs/import.yaml > %t2.obj
>> -# RUN: lld -flavor link2 /out:%t2.exe %t2.obj %t.lib
>> +# RUN: lld -flavor link2 /out:%t2.exe /entry:main %t2.obj %t.lib
>>  # RUN: llvm-readobj -coff-imports %t2.exe | FileCheck
>> -check-prefix=IMPORT %s
>>
>>  # RUN: lld -flavor link2 /out:%t.dll /dll %t.obj /implib:%t2.lib \
>>  # RUN:   /export:exportfn1 /export:exportfn2
>> -# RUN: lld -flavor link2 /out:%t2.exe %t2.obj %t2.lib
>> +# RUN: lld -flavor link2 /out:%t2.exe /entry:main %t2.obj %t2.lib
>>  # RUN: llvm-readobj -coff-imports %t2.exe | FileCheck
>> -check-prefix=IMPORT %s
>>
>> -# RUN: lld -flavor link2 /out:%t2.lto.exe %t2.obj %t.lto.lib
>> +# RUN: lld -flavor link2 /out:%t2.lto.exe /entry:main %t2.obj %t.lto.lib
>>  # RUN: llvm-readobj -coff-imports %t2.lto.exe | FileCheck
>> -check-prefix=IMPORT %s
>>
>>  IMPORT: Symbol: exportfn1
>>
>> Modified: lld/trunk/test/COFF/entrylib.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/entrylib.ll?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/entrylib.ll (original)
>> +++ lld/trunk/test/COFF/entrylib.ll Sun Jun 28 20:03:53 2015
>> @@ -1,11 +1,11 @@
>>  ; RUN: llvm-as -o %t.obj %s
>>  ; RUN: rm -f %t.lib
>>  ; RUN: llvm-ar cru %t.lib %t.obj
>> -; RUN: lld -flavor link2 /out:%t.exe %t.lib
>> +; RUN: lld -flavor link2 /out:%t.exe /entry:main %t.lib
>>
>>  target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
>>  target triple = "x86_64-pc-windows-msvc"
>>
>> -define i32 @mainCRTStartup() {
>> +define i32 @main() {
>>    ret i32 0
>>  }
>>
>> Modified: lld/trunk/test/COFF/filetype.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/filetype.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/filetype.test (original)
>> +++ lld/trunk/test/COFF/filetype.test Sun Jun 28 20:03:53 2015
>> @@ -1,4 +1,4 @@
>>  # Make sure input file type is detected by file magic and not by
>> extension.
>>
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.lib
>> -# RUN: lld -flavor link2 /out:%t.exe %t.lib
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.lib
>>
>> Modified: lld/trunk/test/COFF/force.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/force.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/force.test (original)
>> +++ lld/trunk/test/COFF/force.test Sun Jun 28 20:03:53 2015
>> @@ -1,7 +1,7 @@
>>  # RUN: yaml2obj < %s > %t.obj
>> -# RUN: not lld -flavor link2 /out:%t.exe %t.obj >& %t.log
>> +# RUN: not lld -flavor link2 /out:%t.exe /entry:main %t.obj >& %t.log
>>  # RUN: FileCheck %s < %t.log
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /force >& %t.log
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj /force >& %t.log
>>  # RUN: FileCheck %s < %t.log
>>
>>  # CHECK: undefined symbol: foo
>> @@ -28,7 +28,7 @@ symbols:
>>        NumberOfLinenumbers: 0
>>        CheckSum:        0
>>        Number:          0
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/heap.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/heap.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/heap.test (original)
>> +++ lld/trunk/test/COFF/heap.test Sun Jun 28 20:03:53 2015
>> @@ -1,24 +1,24 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=DEFAULT %s
>>
>>  DEFAULT: SizeOfHeapReserve: 1048576
>>  DEFAULT: SizeOfHeapCommit: 4096
>>
>> -# RUN: lld -flavor link2 /out:%t.exe /heap:0x3000 %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /heap:0x3000 %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK1 %s
>>  # RUN: echo "HEAPSIZE 12288" > %t.def
>> -# RUN: lld -flavor link2 /out:%t.exe /def:%t.def %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /def:%t.def %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK1 %s
>>
>>  CHECK1: SizeOfHeapReserve: 12288
>>  CHECK1: SizeOfHeapCommit: 4096
>>
>> -# RUN: lld -flavor link2 /out:%t.exe /heap:0x5000,0x3000 %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /heap:0x5000,0x3000
>> %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK2 %s
>>  # RUN: echo "HEAPSIZE 20480,12288" > %t.def
>> -# RUN: lld -flavor link2 /out:%t.exe /def:%t.def %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /def:%t.def %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK2 %s
>>
>>  CHECK2: SizeOfHeapReserve: 20480
>>
>> Modified: lld/trunk/test/COFF/icf.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/icf.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/icf.test (original)
>> +++ lld/trunk/test/COFF/icf.test Sun Jun 28 20:03:53 2015
>> @@ -4,12 +4,13 @@
>>  # RUN: yaml2obj < %p/Inputs/icf4.yaml > %t4.obj
>>  # RUN: yaml2obj < %p/Inputs/icf5.yaml > %t5.obj
>>  #
>> -# RUN: lld -flavor link2 /out:%t.exe %t1.obj %t2.obj %t3.obj %t4.obj
>> %t5.obj \
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main \
>> +# RUN:   %t1.obj %t2.obj %t3.obj %t4.obj %t5.obj \
>>  # RUN:   /opt:lldicf /include:icf2 /include:icf3 /include:icf4
>> /include:icf5 \
>>  # RUN:   /verbose >& %t.log
>>  # RUN: FileCheck %s < %t.log
>>
>> -CHECK-NOT: Replaced mainCRTStartup
>> +CHECK-NOT: Replaced main
>>  CHECK:     Replaced icf2
>>  CHECK-NOT: Replaced icf3
>>  CHECK-NOT: Replaced icf4
>>
>> Modified: lld/trunk/test/COFF/include.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/include.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/include.test (original)
>> +++ lld/trunk/test/COFF/include.test Sun Jun 28 20:03:53 2015
>> @@ -1,11 +1,11 @@
>>  # RUN: yaml2obj < %s > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /verbose >& %t.log
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj /verbose >&
>> %t.log
>>  ### FileCheck doesn't like empty input, so write something.
>>  # RUN: echo dummy >> %t.log
>>  # RUN: FileCheck -check-prefix=CHECK1 %s < %t.log
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /verbose /include:unused >&
>> %t.log
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj /verbose
>> /include:unused >& %t.log
>>  # RUN: echo dummy >> %t.log
>>  # RUN: FileCheck -check-prefix=CHECK2 %s < %t.log
>>
>> @@ -62,7 +62,7 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/include2.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/include2.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/include2.test (original)
>> +++ lld/trunk/test/COFF/include2.test Sun Jun 28 20:03:53 2015
>> @@ -4,7 +4,7 @@
>>  # RUN: rm -f %t2.lib %t3.lib
>>  # RUN: llvm-ar cru %t2.lib %t2.obj
>>  # RUN: llvm-ar cru %t3.lib %t3.obj
>> -# RUN: lld -flavor link2 /out:%t.exe %t1.obj %t2.lib %t3.lib /verbose >&
>> %t.log
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t1.obj %t2.lib %t3.lib
>> /verbose >& %t.log
>>  # RUN: FileCheck %s < %t.log
>>
>>  CHECK: include2.test.tmp1.obj
>>
>> Modified: lld/trunk/test/COFF/internal.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/internal.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/internal.test (original)
>> +++ lld/trunk/test/COFF/internal.test Sun Jun 28 20:03:53 2015
>> @@ -3,7 +3,7 @@
>>  # RUN: yaml2obj < %s > %t1.obj
>>  # RUN: yaml2obj < %s > %t2.obj
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t3.obj
>> -# RUN: lld -flavor link2 /out:%t.exe %t1.obj %t2.obj %t3.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t1.obj %t2.obj %t3.obj
>>
>>  ---
>>  header:
>>
>> Modified: lld/trunk/test/COFF/linkenv.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/linkenv.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/linkenv.test (original)
>> +++ lld/trunk/test/COFF/linkenv.test Sun Jun 28 20:03:53 2015
>> @@ -1,6 +1,4 @@
>> -# RUN: env LINK="-help -foo" lld -flavor link2 > %t1.log 2> %t2.log
>> -# RUN: FileCheck -check-prefix=STDOUT %s < %t1.log
>> -# RUN: FileCheck -check-prefix=STDERR %s < %t2.log
>> +# RUN: env LINK=-help lld -flavor link2 > %t.log
>> +# RUN: FileCheck %s < %t.log
>>
>> -STDOUT: OVERVIEW: LLVM Linker
>> -STDERR: unknown argument: -foo
>> +CHECK: OVERVIEW: LLVM Linker
>>
>> Modified: lld/trunk/test/COFF/lldmap.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/lldmap.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/lldmap.test (original)
>> +++ lld/trunk/test/COFF/lldmap.test Sun Jun 28 20:03:53 2015
>> @@ -1,8 +1,8 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>> -# RUN: lld -flavor link2 /out:%t.exe /lldmap:%t.map %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /lldmap:%t.map %t.obj
>>  # RUN: FileCheck %s < %t.map
>>
>>  # CHECK: .obj:
>>  # CHECK-NEXT: 140001000 .text$mn
>>  # CHECK-NEXT: 140001000 .data
>> -# CHECK-NEXT: 140001000 mainCRTStartup
>> +# CHECK-NEXT: 140001000 main
>>
>> Modified: lld/trunk/test/COFF/locally-imported.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/locally-imported.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/locally-imported.test (original)
>> +++ lld/trunk/test/COFF/locally-imported.test Sun Jun 28 20:03:53 2015
>> @@ -1,5 +1,5 @@
>>  # RUN: yaml2obj < %s > %t.obj
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-objdump -s %t.exe | FileCheck %s
>>
>>  # CHECK:      Contents of section .text:
>> @@ -19,7 +19,7 @@ sections:
>>      SectionData:     00000000
>>      Relocations:
>>        - VirtualAddress:  0
>> -        SymbolName:      __imp_mainCRTStartup
>> +        SymbolName:      __imp_main
>>          Type:            IMAGE_REL_AMD64_ADDR32NB
>>  symbols:
>>    - Name:            .text
>> @@ -35,13 +35,13 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           4
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>      ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
>>      StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -  - Name:            __imp_mainCRTStartup
>> +  - Name:            __imp_main
>>      Value:           0
>>      SectionNumber:   0
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/long-section-name.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/long-section-name.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/long-section-name.test (original)
>> +++ lld/trunk/test/COFF/long-section-name.test Sun Jun 28 20:03:53 2015
>> @@ -1,7 +1,10 @@
>>  # RUN: yaml2obj < %s > %t.obj
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -sections %t.exe | FileCheck %s
>>
>> +# CHECK: Name: .data_long_section_name
>> +# CHECK: Name: .text_long_section_name
>> +
>>  ---
>>  header:
>>    Machine:         IMAGE_FILE_MACHINE_AMD64
>> @@ -46,13 +49,10 @@ symbols:
>>        NumberOfLinenumbers: 0
>>        CheckSum:        0
>>        Number:          0
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>      ComplexType:     IMAGE_SYM_DTYPE_NULL
>>      StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>>  ...
>> -
>> -# CHECK: Name: .data_long_section_name
>> -# CHECK: Name: .text_long_section_name
>>
>> Modified: lld/trunk/test/COFF/manifest.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/manifest.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/manifest.test (original)
>> +++ lld/trunk/test/COFF/manifest.test Sun Jun 28 20:03:53 2015
>> @@ -1,6 +1,6 @@
>>  # RUN: yaml2obj %p/Inputs/ret42.yaml > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: FileCheck -check-prefix=MANIFEST %s < %t.exe.manifest
>>
>>  MANIFEST: <?xml version="1.0" standalone="yes"?>
>> @@ -15,7 +15,8 @@ MANIFEST:     </security>
>>  MANIFEST:   </trustInfo>
>>  MANIFEST: </assembly>
>>
>> -# RUN: lld -flavor link2 /out:%t.exe
>> /manifestuac:"level='requireAdministrator' uiAccess='true'" %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main \
>> +# RUN:   /manifestuac:"level='requireAdministrator' uiAccess='true'"
>> %t.obj
>>  # RUN: FileCheck -check-prefix=UAC %s < %t.exe.manifest
>>
>>  UAC: <?xml version="1.0" standalone="yes"?>
>> @@ -30,7 +31,8 @@ UAC:     </security>
>>  UAC:   </trustInfo>
>>  UAC: </assembly>
>>
>> -# RUN: lld -flavor link2 /out:%t.exe /manifestdependency:"foo='bar'"
>> %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main \
>> +# RUN:   /manifestdependency:"foo='bar'" %t.obj
>>  # RUN: FileCheck -check-prefix=DEPENDENCY %s < %t.exe.manifest
>>
>>  DEPENDENCY: <?xml version="1.0" standalone="yes"?>
>> @@ -50,7 +52,7 @@ DEPENDENCY:     </dependentAssembly>
>>  DEPENDENCY:   </dependency>
>>  DEPENDENCY: </assembly>
>>
>> -# RUN: lld -flavor link2 /out:%t.exe /manifestuac:no %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /manifestuac:no %t.obj
>>  # RUN: FileCheck -check-prefix=NOUAC %s < %t.exe.manifest
>>
>>  NOUAC: <?xml version="1.0" standalone="yes"?>
>>
>> Modified: lld/trunk/test/COFF/opt.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/opt.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/opt.test (original)
>> +++ lld/trunk/test/COFF/opt.test Sun Jun 28 20:03:53 2015
>> @@ -1,11 +1,13 @@
>>  # RUN: yaml2obj < %s > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /verbose >& %t.log
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj \
>> +# RUN:   /verbose >& %t.log
>>  ### FileCheck doesn't like empty input, so write something.
>>  # RUN: echo dummy >> %t.log
>>  # RUN: FileCheck -check-prefix=CHECK1 %s < %t.log
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /verbose /opt:noref >& %t.log
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj \
>> +# RUN:   /verbose /opt:noref >& %t.log
>>  # RUN: echo dummy >> %t.log
>>  # RUN: FileCheck -check-prefix=CHECK2 %s < %t.log
>>
>> @@ -52,7 +54,7 @@ symbols:
>>        CheckSum:        0
>>        Number:          0
>>        Selection:       IMAGE_COMDAT_SELECT_ANY
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/options.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/options.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/options.test (original)
>> +++ lld/trunk/test/COFF/options.test Sun Jun 28 20:03:53 2015
>> @@ -1,51 +1,51 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=BIND
>> %s
>> -# RUN: lld -flavor link2 /allowbind /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /allowbind /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=BIND
>> %s
>>  BIND-NOT: IMAGE_DLL_CHARACTERISTICS_NO_BIND
>>
>> -# RUN: lld -flavor link2 /allowbind:no /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /allowbind:no /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=NOBIND %s
>>  NOBIND: IMAGE_DLL_CHARACTERISTICS_NO_BIND
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ISO %s
>> -# RUN: lld -flavor link2 /allowisolation /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /allowisolation /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ISO %s
>>  ISO-NOT: IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION
>>
>> -# RUN: lld -flavor link2 /allowisolation:no /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /allowisolation:no /out:%t.exe /entry:main
>> %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOISO
>> %s
>>  NOISO: IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ENT %s
>> -# RUN: lld -flavor link2 /highentropyva /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /highentropyva %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=ENT %s
>>  ENT: IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
>>
>> -# RUN: lld -flavor link2 /highentropyva:no /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /highentropyva:no /out:%t.exe
>> /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOENT
>> %s
>>  NOENT-NOT: IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
>>
>> -# RUN: lld -flavor link2 %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=NXCOMPAT %s
>> -# RUN: lld -flavor link2 /nxcompat %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /nxcompat %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=NXCOMPAT %s
>>  NXCOMPAT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
>>
>> -# RUN: lld -flavor link2 /nxcompat:no /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /nxcompat:no /out:%t.exe
>> /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=NONXCOMPAT %s
>>  NONXCOMPAT-NOT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
>>
>> -# RUN: lld -flavor link2 %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=TSAWARE %s
>> -# RUN: lld -flavor link2 /tsaware %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /tsaware %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=TSAWARE %s
>>  TSAWARE: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE
>>
>> -# RUN: lld -flavor link2 /tsaware:no /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /tsaware:no /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=NOTSAWARE %s
>>  NOTSAWARE-NOT: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE
>>
>> Modified: lld/trunk/test/COFF/order.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/order.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/order.test (original)
>> +++ lld/trunk/test/COFF/order.test Sun Jun 28 20:03:53 2015
>> @@ -4,7 +4,8 @@
>>  # RUN: rm -f %t2.lib %t3.lib
>>  # RUN: llvm-ar cru %t2.lib %t2.obj
>>  # RUN: llvm-ar cru %t3.lib %t3.obj
>> -# RUN: lld -flavor link2 /out:%t.exe %t1.obj %t2.lib %t3.obj %t3.lib
>> /verbose >& %t.log
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main \
>> +# RUN:   %t1.obj %t2.lib %t3.obj %t3.lib /verbose >& %t.log
>>  # RUN: FileCheck %s < %t.log
>>
>>  CHECK: order.test.tmp1.obj
>>
>> Modified: lld/trunk/test/COFF/out.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/out.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/out.test (original)
>> +++ lld/trunk/test/COFF/out.test Sun Jun 28 20:03:53 2015
>> @@ -5,9 +5,9 @@
>>  # RUN: cp %t.obj %T/out/tmp/out2
>>  # RUN: cp %t.obj %T/out/tmp/out3.xyz
>>
>> -# RUN: lld -flavor link2 %T/out/out1.obj
>> -# RUN: lld -flavor link2 %T/out/tmp/out2
>> -# RUN: lld -flavor link2 %T/out/tmp/out3.xyz
>> +# RUN: lld -flavor link2 /entry:main %T/out/out1.obj
>> +# RUN: lld -flavor link2 /entry:main %T/out/tmp/out2
>> +# RUN: lld -flavor link2 /entry:main %T/out/tmp/out3.xyz
>>
>>  # RUN: llvm-readobj out1.exe | FileCheck %s
>>  # RUN: llvm-readobj out2.exe | FileCheck %s
>>
>> Modified: lld/trunk/test/COFF/resource.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/resource.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/resource.test (original)
>> +++ lld/trunk/test/COFF/resource.test Sun Jun 28 20:03:53 2015
>> @@ -1,7 +1,7 @@
>>  # REQUIRES: winres
>>
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj %p/Inputs/resource.res
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>> %p/Inputs/resource.res
>>
>>  # Check if the binary contains UTF-16LE string "Hello" copied from
>> resource.res.
>>  # RUN: FileCheck --check-prefix=EXE %s < %t.exe
>>
>> Modified: lld/trunk/test/COFF/responsefile.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/responsefile.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/responsefile.test (original)
>> +++ lld/trunk/test/COFF/responsefile.test Sun Jun 28 20:03:53 2015
>> @@ -1,6 +1,6 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>>
>> -# RUN: echo /out:%t.exe %t.obj > %t.rsp
>> +# RUN: echo /out:%t.exe /entry:main %t.obj > %t.rsp
>>  # RUN: lld -flavor link2 @%t.rsp /heap:0x3000
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck %s
>>
>>
>> Modified: lld/trunk/test/COFF/stack.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/stack.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/stack.test (original)
>> +++ lld/trunk/test/COFF/stack.test Sun Jun 28 20:03:53 2015
>> @@ -1,24 +1,24 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=DEFAULT %s
>>
>>  DEFAULT: SizeOfStackReserve: 1048576
>>  DEFAULT: SizeOfStackCommit: 4096
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /stack:0x3000
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj /stack:0x3000
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK1 %s
>>  # RUN: echo "STACKSIZE 12288" > %t.def
>> -# RUN: lld -flavor link2 /out:%t.exe /def:%t.def %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /def:%t.def %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK1 %s
>>
>>  CHECK1: SizeOfStackReserve: 12288
>>  CHECK1: SizeOfStackCommit: 4096
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /stack:0x5000,0x3000
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>> /stack:0x5000,0x3000
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK2 %s
>>  # RUN: echo "STACKSIZE 20480,12288" > %t.def
>> -# RUN: lld -flavor link2 /out:%t.exe /def:%t.def %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main /def:%t.def %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK2 %s
>>
>>  CHECK2: SizeOfStackReserve: 20480
>>
>> Modified: lld/trunk/test/COFF/subsystem-inference.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/subsystem-inference.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/subsystem-inference.test (original)
>> +++ lld/trunk/test/COFF/subsystem-inference.test Sun Jun 28 20:03:53 2015
>> @@ -1,16 +1,16 @@
>> -# RUN: sed -e s/ENTRYNAME/mainCRTStartup/ %s | yaml2obj > %t.obj
>> +# RUN: sed -e s/ENTRYNAME/main/ %s | yaml2obj > %t.obj
>>  # RUN: lld -flavor link2 /out:%t.exe %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=MAIN
>> %s
>>
>> -# RUN: sed s/ENTRYNAME/wmainCRTStartup/ %s | yaml2obj > %t.obj
>> +# RUN: sed s/ENTRYNAME/wmain/ %s | yaml2obj > %t.obj
>>  # RUN: lld -flavor link2 /out:%t.exe %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=WMAIN
>> %s
>>
>> -# RUN: sed s/ENTRYNAME/WinMainCRTStartup/ %s | yaml2obj > %t.obj
>> +# RUN: sed s/ENTRYNAME/WinMain/ %s | yaml2obj > %t.obj
>>  # RUN: lld -flavor link2 /out:%t.exe %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=WINMAIN %s
>>
>> -# RUN: sed s/ENTRYNAME/wWinMainCRTStartup/ %s | yaml2obj > %t.obj
>> +# RUN: sed s/ENTRYNAME/wWinMain/ %s | yaml2obj > %t.obj
>>  # RUN: lld -flavor link2 /out:%t.exe %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=WWINMAIN %s
>>
>> @@ -45,6 +45,30 @@ symbols:
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            mainCRTStartup
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            wmainCRTStartup
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            WinMainCRTStartup
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL
>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> +  - Name:            wWinMainCRTStartup
>> +    Value:           0
>> +    SectionNumber:   1
>> +    SimpleType:      IMAGE_SYM_TYPE_NULL
>>      ComplexType:     IMAGE_SYM_DTYPE_NULL
>>      StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>>  ...
>>
>> Modified: lld/trunk/test/COFF/unwind.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/unwind.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/unwind.test (original)
>> +++ lld/trunk/test/COFF/unwind.test Sun Jun 28 20:03:53 2015
>> @@ -1,6 +1,6 @@
>>  # RUN: yaml2obj < %s > %t.obj
>>  #
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=HEADER %s
>>  # RUN: llvm-objdump -unwind-info %t.exe | FileCheck -check-prefix=UNWIND
>> %s
>>  #
>> @@ -183,7 +183,7 @@ symbols:
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>      ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
>>      StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
>> -  - Name:            mainCRTStartup
>> +  - Name:            main
>>      Value:           0
>>      SectionNumber:   1
>>      SimpleType:      IMAGE_SYM_TYPE_NULL
>>
>> Modified: lld/trunk/test/COFF/version.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/version.test?rev=240922&r1=240921&r2=240922&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/COFF/version.test (original)
>> +++ lld/trunk/test/COFF/version.test Sun Jun 28 20:03:53 2015
>> @@ -1,18 +1,18 @@
>>  # RUN: yaml2obj < %p/Inputs/ret42.yaml > %t.obj
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=DEFAULT %s
>>
>>  DEFAULT: MajorImageVersion: 0
>>  DEFAULT: MinorImageVersion: 0
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /version:11
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj /version:11
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK1 %s
>>
>>  CHECK1: MajorImageVersion: 11
>>  CHECK1: MinorImageVersion: 0
>>
>> -# RUN: lld -flavor link2 /out:%t.exe %t.obj /version:11.22
>> +# RUN: lld -flavor link2 /out:%t.exe /entry:main %t.obj /version:11.22
>>  # RUN: llvm-readobj -file-headers %t.exe | FileCheck
>> -check-prefix=CHECK2 %s
>>
>>  CHECK2: MajorImageVersion: 11
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150713/ec40b88e/attachment.html>


More information about the llvm-commits mailing list