summaryrefslogtreecommitdiff
path: root/kernel.ld
diff options
context:
space:
mode:
Diffstat (limited to 'kernel.ld')
-rw-r--r--kernel.ld8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel.ld b/kernel.ld
index a778fc4..e24c860 100644
--- a/kernel.ld
+++ b/kernel.ld
@@ -41,6 +41,14 @@ SECTIONS
/* Adjust the address for the data segment to the next page */
. = ALIGN(0x1000);
+ /* Conventionally, Unix linkers provide pseudo-symbols
+ * etext, edata, and end, at the end of the text, data, and bss.
+ * For the kernel mapping, we need the address at the beginning
+ * of the data section, but that's not one of the conventional
+ * symbols, because the convention started before there was a
+ * read-only rodata section between text and data. */
+ PROVIDE(data = .);
+
/* The data segment */
.data : {
*(.data)