Hi Vijay, In the future, it helps if report bugs, or potential bugs, via the binutils bugzilla system. This allows us to track bugs individually and also add comments in the code that refer back to the bug report. https://sourceware.org/bugzilla/
clang reprod.c -ffreestanding -c -o reprod.img
Which architecture is this for ? Which versions of clang and the binutils are you using ?
ld.lld --defsym VMA_START=0xffffffff80100000 --defsym LMA_START=0x4800000 -T l.ld reprod.img -o reprod.img objcopy --change-section-lma .*-0xffffffff80000000 reprod.img objcopy --adjust-start -0xffffffff80000000 reprod.img lld dosen't seem to consider tbss section to have proper lma of lld TLS 0x0000000000002058 0xffffffff80100060 (vma) 0xffffffff80100060 (lma) 0x0000000000000000 0x0000000000000004 R 0x4 03 .tbss Ld Linker TLS 0x0000000000100098 0xffffffff801000a0 (vma) 0xffffffffc81000a0 (lma) 0x0000000000000000 0x0000000000000004 R 0x4
I am sorry, but I did not understand what is wrong with the LMA. Please could you explain some more. Also, you say that objcopy does not consider the .tbss section to be part of a PT_LOAD segment. This is correct. It is part of a PT_TLS segment. PT_TLS segments are considered to be inherently loadable, so it is OK to use PT_TLS for thread local data rather than PT_LOAD. Cheers Nick