aboutsummaryrefslogtreecommitdiffstats
path: root/mbr/x86_64
diff options
context:
space:
mode:
authorchandramouli narayanan <mouli@linux.intel.com>2012-06-25 12:43:03 -0700
committerchandramouli narayanan <mouli@linux.intel.com>2012-06-25 12:43:03 -0700
commitd8eede3f2a360163235fad222a0190cd7c5bef38 (patch)
tree5e1b28e31fc14c44d8fdfffda00a30aaad2b7b7b /mbr/x86_64
parentb664835d1583be53f34b412b38df53f21f100e24 (diff)
downloadsyslinux-d8eede3f2a360163235fad222a0190cd7c5bef38.tar.gz
syslinux-d8eede3f2a360163235fad222a0190cd7c5bef38.tar.xz
syslinux-d8eede3f2a360163235fad222a0190cd7c5bef38.zip
This is a giant patch that splits the linker scripts for libraries, modules and executables into
the architecture-dependent scripts to facilitate building syslinux modules/executables for i386 and x86_64 environments. The x86_64 linker scripts are derived from the earlier i386 counterparts. Subdirectories i386 and x86_64 hold the respective linker scripts mentioned below. com32/lib/sylinux.ld com32/lib/elf.ld core/syslinux.ld efi/syslinux.ld mbr/mbr.ld memdisk/memdisk.ld Remanants of the unused old i386-only files, if any, need to be pruned.
Diffstat (limited to 'mbr/x86_64')
-rw-r--r--mbr/x86_64/mbr.ld72
1 files changed, 72 insertions, 0 deletions
diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld
new file mode 100644
index 00000000..ae27d49a
--- /dev/null
+++ b/mbr/x86_64/mbr.ld
@@ -0,0 +1,72 @@
+/*
+ * Linker script for MBR
+ */
+
+/* Script for -z combreloc: combine and sort reloc sections */
+OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
+OUTPUT_ARCH(i386:x86-64)
+EXTERN(_start)
+ENTRY(_start)
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ . = 0x600;
+ .text :
+ {
+ *(.text*)
+ *(.rodata*)
+ } =0x90909090
+
+ . = ALIGN(4);
+ .data :
+ {
+ *(.data*)
+ }
+
+ . = ALIGN(128);
+ .bss :
+ {
+ *(.bss*)
+ }
+
+ . = 0x7c00;
+ .bootsec :
+ {
+ *(.bootsec)
+ }
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+ /* DWARF debug sections.
+ Symbols in the DWARF debugging sections are relative to the beginning
+ of the section so we begin them at 0. */
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ /DISCARD/ : { *(.note.GNU-stack) }
+}