[lld] r240922 - COFF: Fix logic to find default entry name or subsystem.
Rui Ueyama
ruiu at google.com
Thu Jul 16 15:02:06 PDT 2015
On Thu, Jul 16, 2015 at 2:51 PM, Sean Silva <chisophugis at gmail.com> wrote:
> Ok, I was looking at the wrong error. I think the root causes is that
> lib.exe is not being found. Filipe should have more info in r239937.
>
Thank you for investigating, and sorry for the breakage. I think it should
be fixed by REQUIRES: winlib to the test file. Can you verify that that
works?
>
> -- Sean Silva
>
> On Wed, Jul 15, 2015 at 3:46 PM, Sean Silva <chisophugis at gmail.com> wrote:
>
>> Thanks for the info. We've been a bit swamped internally this week but we
>> will try to dig into this based on your hint.
>>
>> -- Sean Silva
>>
>> On Mon, Jul 13, 2015 at 8:22 PM, Rui Ueyama <ruiu at google.com> wrote:
>>
>>> 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/20150716/db32411a/attachment.html>
More information about the llvm-commits
mailing list