summaryrefslogtreecommitdiff
path: root/kernel.ld
diff options
context:
space:
mode:
authorAustin Clements <[email protected]>2011-09-02 14:51:55 -0400
committerAustin Clements <[email protected]>2011-09-02 14:51:55 -0400
commitdd4438b4fe934eef3f631238d45b3681a3abdd4d (patch)
tree4b885aa386da63f1de44446ef2df577ba0211dcd /kernel.ld
parentce6dd9de27a926e77e275de0287ee36fce93ce7f (diff)
downloadxv6-labs-dd4438b4fe934eef3f631238d45b3681a3abdd4d.tar.gz
xv6-labs-dd4438b4fe934eef3f631238d45b3681a3abdd4d.tar.bz2
xv6-labs-dd4438b4fe934eef3f631238d45b3681a3abdd4d.zip
Nuke data.S, since we do have a custom linker script.
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)