[llvm-dev] [lld] dynamic section question.
'Fāng-ruì Sòng' via llvm-dev
llvm-dev at lists.llvm.org
Fri May 22 13:29:30 PDT 2020
On 2020-05-22, sidneym at codeaurora.org wrote:
>This program:
>
>.global _start
>
>_start:
>
> movl $1, %eax
>
> movl $42, %ebx
>
> int $0x80
>
>
>
>“./clang -nostdlib x.s”
>
>
>
>Will not get a dynamic section unless -E passed to lld and because of that will segfault. If the .interp section is omitted (static) then the dynamic section isn’t needed and the program will run.
>
>
>
>Can lld recognize that an .interp is not needed (no DT_NEEDED) and omit the section even when the user/driver adds –dynamic-linker=xxx? Or should the .dynamic section be present as in the case when -E is used?
clang passes --dynamic-linker to the linker. GNU ld has quite involved logic not to create .interp
It is not at all clear to me that LLD should adopt that.
clang -static -nostdlib a.s -o a # is probably more correct.
-static suppresses --dynamic-linker
More information about the llvm-dev
mailing list