<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/115589>115589</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LLD linker script link non stantard sections at address 0x0
</td>
</tr>
<tr>
<th>Labels</th>
<td>
lld
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
AntoninRuan
</td>
</tr>
</table>
<pre>
I was trying to link using a custom linker script that contains a non stantards sections for the output. And this sections always ends up at address ``0x0`` no matters where I put it in the script. Linking using gnu ld doesn't have this behavior and gives what seems the logical output for me. I realized I may not need these custom sections but I'm still curious why is it happening and if I'm missing something or if it is a bug
Here's my linking command
```
ld.lld -n -T kernel/arch/x86-64/linker.ld -o sysroot/boot/colibri.kernel <all my objects files> --Map build/kernel.map
```
<details><summary>My linker script</summary>
<p>
```
ENTRY(_start)
SECTIONS
{
. = 2M;
.protected_mode :
{
*(.protected_mode)
}
.text ALIGN(4K) :
{
*(.multiboot)
*(.text)
}
/* Read-only data. */
.rodata ALIGN(4K) :
{
*(.rodata)
}
/* Read-write data (initialized) */
.data ALIGN(4K) :
{
*(.data)
}
/* Read-write data (uninitialized) and stack */
.bss ALIGN(4K) :
{
*(COMMON)
*(.bss)
}
}
```
</p>
</details>
Here the memory map output of both lld and gnu ld:
[lld.txt](https://github.com/user-attachments/files/17686350/lld.txt)
[gnu_ld.txt](https://github.com/user-attachments/files/17686349/gnu_ld.txt)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyslUtv4zYQgH8NfRlYkCg_5IMOjh21RpMssLuXngJKHFtsKFIgh0ncX19QcmLHGxTdtoagBzmPb4aeGeG9OhjEks1v2Hw7EYFa68q1IWuU-RqEmdRWHssdvAgP5I7KHIAsaGWeIPj4JaAJnmw3rKED3zjVE1ArCBprSCjjQYCxBjwJQ8JJDx4bUtZ42FsH1CLYQH2gBNZGArXqQkLoF3H0gEZ6CD0IAiGlQ--BLVK2SNPXdHwBY6ETROg8vLToEHbQBwJFoMzgZERL4E6Zp4g-BnAwAbQEadEbxpcErXjGEaLGVjwr60AYCQf1jNGyIPCInR9MantQjdAn_iGcDhPYgUOh1Z8oYQedOIKxBAYxBoce31L2HmQdCHaMLzvwpLSGJjhlQ_R2BOVjCK3oezRDwo0EtT-Jd8oPQXjbIbXxzbq4G4OOaa_DgaVblq7H-6_okPGlh-44nFdUaGzXCSMvxcaExmv41DLRWsLUwPQ7PKEzqBmvhGtaxqvXYjFdzBivxvNPoqAFf_TOWmK8qsdHY7WqnUpGdQCWb4TWkcPWf2BDHvZKo2f5LcB0ei96qIPSkvFq1Eg60X8Kd7rnG4kklI4WWL7xoeuEO7L89v748Z_J8g3j1Xn_Xb8_f3zm5_bh-9ffGS8ePQlHjK8uZb_dbr7vvjx8O60tb942VwmwfAv8nuU3lwow_JLeWcKGUD52ViKw_MP2ux1gfM14cSX-zvAmvf2An64SwleC9d3ulwfGi9lvjK_OLli6uuSM1-ikC5rUeGqrT7ajzQ87P7hlvGJ8DV9RyKk1-ghSkEjGGKoznLNx_afxRrV_TvDiFOGAAIwXyihSY2UO7q6Y_hXRf-EJ5oooVrcn0Tz9wFZ7_7Nomy_3918ePj_H2vvPod9frupsqJv-smIYr85FB9d9ZuiPHXbWHaET_VuLtHuoLbUQO8rQVof2exHKcJ_faC0TeiU23zJetES9jzIxkdVBURvqpLEd41Xw6KaCSDRth4Y849XYSXiVLRfFIp-nsTmdrH0sWza_OZjw-H95msWDvjD45mwiy1yu8pWYYJkt8yzLF-kqm7TlDOti2TTLup5jwxdFU_BFU-B-uZ_P5jxbTlTJUz7LsnSVLtMiy5IsnWVpKkS-39eFTDmbpdgJpROtn7vEusNEeR-wzLL5vFhNtKhR-2G6c65jO-VxzLsyik_rcPBslmrlyZ8NkCKN5d3d9mqiDzP_coxfzOjzUE5f00lwuvybPEZPp8e0dzZ2f8argXvI5Yj-XPK_AgAA__9x94bW">