[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