aboutsummaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorTianhao Wang <shrik3@mailbox.org>2024-04-16 18:23:45 +0200
committerTianhao Wang <shrik3@mailbox.org>2024-06-11 15:13:40 +0200
commitf72b2b11b8603f8afdd0a2d0d16d51c64747c4ea (patch)
treee0309a11258e0809794be679a1fe432a9ef37ce0 /compiler
parent425e3fd1fd97e50041d8272bf4bcc7c1107571a1 (diff)
re-organize code
Diffstat (limited to 'compiler')
-rw-r--r--compiler/x86_64-linker.ld76
-rw-r--r--compiler/x86_64-rustubs.json13
2 files changed, 89 insertions, 0 deletions
diff --git a/compiler/x86_64-linker.ld b/compiler/x86_64-linker.ld
new file mode 100644
index 0000000..b484366
--- /dev/null
+++ b/compiler/x86_64-linker.ld
@@ -0,0 +1,76 @@
+SECTIONS
+{
+ . = 0x100000; /* system's start address */
+
+ .text :
+ {
+ *(".text")
+ *(".text.*")
+ *(".text$")
+ *(".init")
+ *(".fini")
+ *(".gnu.linkonce.*")
+ }
+
+ .init_array :
+ {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ KEEP (*(".ctors"))
+ KEEP (*(".ctor"))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ }
+
+ .fini_array :
+ {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT(.fini_array.*)))
+ KEEP (*(.fini_array))
+ KEEP (*(".dtors"))
+ KEEP (*(".dtor"))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ }
+
+ .data :
+ {
+ *(".data")
+ *(".data$")
+ *(".rodata")
+ *(".rodata.*")
+ *(".got")
+ *(".got.plt")
+ *(".eh_frame")
+ *(".eh_fram")
+ *(".jcr")
+ *(".note.*")
+ }
+
+ .bss :
+ {
+ ___BSS_START__ = .;
+ *(".bss")
+ *(".bss.*")
+ ___BSS_END__ = .;
+ }
+
+ /* global page table for 64-bit long mode */
+ .global_pagetable ALIGN(4096) (NOLOAD) :
+ {
+ *(".global_pagetable")
+ }
+
+/*
+ /DISCARD/ :
+ {
+ *(".note")
+ *(".comment")
+ *(".debug_line")
+ *(".debug_info")
+ *(".debug_abbrev")
+ *(".debug_aranges")
+ }
+*/
+ . = ALIGN(4096);
+ PROVIDE (___KERNEL_END__ = .);
+}
diff --git a/compiler/x86_64-rustubs.json b/compiler/x86_64-rustubs.json
new file mode 100644
index 0000000..93512ed
--- /dev/null
+++ b/compiler/x86_64-rustubs.json
@@ -0,0 +1,13 @@
+{
+ "llvm-target": "x86_64-unknown-none",
+ "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128",
+ "linker-flavor": "gcc",
+ "target-endian": "little",
+ "target-pointer-width": "64",
+ "target-c-int-width": "32",
+ "arch": "x86_64",
+ "os": "none",
+ "disable-redzone": true,
+ "features": "-mmx,-sse,-avx,+soft-float",
+ "frame-pointer": "always"
+}