Partially revert r189718 to add entry symbol to dead strip root.

Also added a test to verify that entry symbol is not stripped even if
dead stripping is enabled.

llvm-svn: 189776
This commit is contained in:
Rui Ueyama 2013-09-03 01:00:01 +00:00
parent 4313451ba4
commit 504962f714
2 changed files with 12 additions and 1 deletions

View File

@ -184,7 +184,9 @@ public:
// Set the entry symbol name. You may also need to call addDeadStripRoot() for
// the symbol if your platform supports dead-stripping, so that the symbol
// will not be removed from the output.
virtual void setEntrySymbolName(StringRef name) {
void setEntrySymbolName(StringRef name) {
// Entry function have to be resolved as an undefined symbol.
addInitialUndefinedSymbol(name);
_entrySymbolName = name;
}

View File

@ -0,0 +1,9 @@
# REQUIRES: debug
# Verify that entry atom will not be dead-stripped.
# RUN: yaml2obj %p/Inputs/main.obj.yaml > %t.obj
# RUN: lld -flavor link /mllvm -debug-only=WriterPECOFF /out:%t.exe \
# RUN: /subsystem:console /entry:_main /force -- %t.obj >& %t.log
# RUN: FileCheck %s < %t.log
CHECK: : _main