[lld] r189776 - Partially revert r189718 to add entry symbol to dead strip root.
Shankar Easwaran
shankare at codeaurora.org
Mon Sep 2 18:50:33 PDT 2013
Hi Ruiu,
This cannot be done, there is a genuine case that if you set the entry
symbol twice like this
lld -flavor gnu -target x86_64 -e _start -e main
I want to take only the last entry symbol, now this will trigger an
undefine symbol twice.
Can you please revert this change as it breaks ELF ?
Thanks
Shankar Easwaran
On 9/2/2013 8:00 PM, Rui Ueyama wrote:
> Author: ruiu
> Date: Mon Sep 2 20:00:01 2013
> New Revision: 189776
>
> URL: http://llvm.org/viewvc/llvm-project?rev=189776&view=rev
> Log:
> 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.
>
> Added:
> lld/trunk/test/pecoff/entry.test
> Modified:
> lld/trunk/include/lld/Core/LinkingContext.h
>
> Modified: lld/trunk/include/lld/Core/LinkingContext.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/LinkingContext.h?rev=189776&r1=189775&r2=189776&view=diff
> ==============================================================================
> --- lld/trunk/include/lld/Core/LinkingContext.h (original)
> +++ lld/trunk/include/lld/Core/LinkingContext.h Mon Sep 2 20:00:01 2013
> @@ -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;
> }
>
>
> Added: lld/trunk/test/pecoff/entry.test
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/entry.test?rev=189776&view=auto
> ==============================================================================
> --- lld/trunk/test/pecoff/entry.test (added)
> +++ lld/trunk/test/pecoff/entry.test Mon Sep 2 20:00:01 2013
> @@ -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
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
More information about the llvm-commits
mailing list