[Driver] Properly handle -entry for X86 Linux.
llvm-svn: 169718
This commit is contained in:
		
							parent
							
								
									3825760550
								
							
						
					
					
						commit
						99b99d26bb
					
				| 
						 | 
					@ -118,7 +118,8 @@ public:
 | 
				
			||||||
    if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_entry))
 | 
					    if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_entry))
 | 
				
			||||||
      newArgs->AddJoinedArg(A, _core.getOption(core::OPT_entry), A->getValue());
 | 
					      newArgs->AddJoinedArg(A, _core.getOption(core::OPT_entry), A->getValue());
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      newArgs->AddJoinedArg(nullptr, _core.getOption(core::OPT_entry), "start");
 | 
					      newArgs->AddJoinedArg(nullptr, _core.getOption(core::OPT_entry),
 | 
				
			||||||
 | 
					                            "_start");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_output))
 | 
					    if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_output))
 | 
				
			||||||
      newArgs->AddJoinedArg(A, _core.getOption(core::OPT_output),
 | 
					      newArgs->AddJoinedArg(A, _core.getOption(core::OPT_output),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@ using namespace lld;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class X86LinuxTarget final : public Target {
 | 
					class X86LinuxTarget final : public Target {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  X86LinuxTarget(const LinkerOptions &lo) : Target(lo), _woe() {
 | 
					  X86LinuxTarget(const LinkerOptions &lo) : Target(lo), _woe(lo._entrySymbol) {
 | 
				
			||||||
    _readerELF.reset(createReaderELF(_roe, _roa));
 | 
					    _readerELF.reset(createReaderELF(_roe, _roa));
 | 
				
			||||||
    _readerYAML.reset(createReaderYAML(_roy));
 | 
					    _readerYAML.reset(createReaderYAML(_roy));
 | 
				
			||||||
    _writer.reset(createWriterELF(_woe));
 | 
					    _writer.reset(createWriterELF(_woe));
 | 
				
			||||||
| 
						 | 
					@ -63,12 +63,12 @@ private:
 | 
				
			||||||
  } _roy;
 | 
					  } _roy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  struct WOpts : lld::WriterOptionsELF {
 | 
					  struct WOpts : lld::WriterOptionsELF {
 | 
				
			||||||
    WOpts() {
 | 
					    WOpts(StringRef entry) {
 | 
				
			||||||
      _endianness = llvm::support::little;
 | 
					      _endianness = llvm::support::little;
 | 
				
			||||||
      _is64Bit = false;
 | 
					      _is64Bit = false;
 | 
				
			||||||
      _type = llvm::ELF::ET_EXEC;
 | 
					      _type = llvm::ELF::ET_EXEC;
 | 
				
			||||||
      _machine = llvm::ELF::EM_386;
 | 
					      _machine = llvm::ELF::EM_386;
 | 
				
			||||||
      _entryPoint = "_start";
 | 
					      _entryPoint = entry;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  } _woe;
 | 
					  } _woe;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue