提交 558da756 编写于 作者: R Roland McGrath 提交者: Linus Torvalds

powerpc64 vDSO: linker script indentation

This cleans up the formatting in the vDSO linker script, mostly just the
use of whitespace.  It's intended to approximate the kernel standard
conventions for indenting C, treating elements of the linker script about
like initialized variable definitions.
Signed-off-by: NRoland McGrath <roland@redhat.com>
Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 c4eecc99
...@@ -10,100 +10,114 @@ ENTRY(_start) ...@@ -10,100 +10,114 @@ ENTRY(_start)
SECTIONS SECTIONS
{ {
. = VDSO64_LBASE + SIZEOF_HEADERS; . = VDSO64_LBASE + SIZEOF_HEADERS;
.hash : { *(.hash) } :text
.gnu.hash : { *(.gnu.hash) } .hash : { *(.hash) } :text
.dynsym : { *(.dynsym) } .gnu.hash : { *(.gnu.hash) }
.dynstr : { *(.dynstr) } .dynsym : { *(.dynsym) }
.gnu.version : { *(.gnu.version) } .dynstr : { *(.dynstr) }
.gnu.version_d : { *(.gnu.version_d) } .gnu.version : { *(.gnu.version) }
.gnu.version_r : { *(.gnu.version_r) } .gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.note : { *(.note.*) } :text :note
.note : { *(.note.*) } :text :note
. = ALIGN (16);
.text : . = ALIGN(16);
{ .text : {
*(.text .stub .text.* .gnu.linkonce.t.*) *(.text .stub .text.* .gnu.linkonce.t.*)
*(.sfpr .glink) *(.sfpr .glink)
} :text } :text
PROVIDE (__etext = .); PROVIDE(__etext = .);
PROVIDE (_etext = .); PROVIDE(_etext = .);
PROVIDE (etext = .); PROVIDE(etext = .);
. = ALIGN(8); . = ALIGN(8);
__ftr_fixup : { __ftr_fixup : { *(__ftr_fixup) }
*(__ftr_fixup)
} . = ALIGN(8);
__fw_ftr_fixup : { *(__fw_ftr_fixup) }
. = ALIGN(8);
__fw_ftr_fixup : { /*
*(__fw_ftr_fixup) * Other stuff is appended to the text segment:
} */
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
/* Other stuff is appended to the text segment: */ .rodata1 : { *(.rodata1) }
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr
.eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr .eh_frame : { KEEP (*(.eh_frame)) } :text
.eh_frame : { KEEP (*(.eh_frame)) } :text .gcc_except_table : { *(.gcc_except_table) }
.gcc_except_table : { *(.gcc_except_table) }
.opd ALIGN(8) : { KEEP (*(.opd)) }
.opd ALIGN(8) : { KEEP (*(.opd)) } .got ALIGN(8) : { *(.got .toc) }
.got ALIGN(8) : { *(.got .toc) } .rela.dyn ALIGN(8) : { *(.rela.dyn) }
.rela.dyn ALIGN(8) : { *(.rela.dyn) }
.dynamic : { *(.dynamic) } :text :dynamic
.dynamic : { *(.dynamic) } :text :dynamic
_end = .;
_end = .; PROVIDE(end = .);
PROVIDE (end = .);
/*
/* Stabs debugging sections are here too * Stabs debugging sections are here too.
*/ */
.stab 0 : { *(.stab) } .stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) } .stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) } .stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) } .stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) } .stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) } .stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) } .comment 0 : { *(.comment) }
/* DWARF debug sectio/ns.
Symbols in the DWARF debugging sections are relative to the beginning /*
of the section so we begin them at 0. */ * DWARF debug sections.
/* DWARF 1 */ * Symbols in the DWARF debugging sections are relative to the beginning
.debug 0 : { *(.debug) } * of the section so we begin them at 0.
.line 0 : { *(.line) } */
/* GNU DWARF 1 extensions */ /* DWARF 1 */
.debug_srcinfo 0 : { *(.debug_srcinfo) } .debug 0 : { *(.debug) }
.debug_sfnames 0 : { *(.debug_sfnames) } .line 0 : { *(.line) }
/* DWARF 1.1 and DWARF 2 */ /* GNU DWARF 1 extensions */
.debug_aranges 0 : { *(.debug_aranges) } .debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_pubnames 0 : { *(.debug_pubnames) } .debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 2 */ /* DWARF 1.1 and DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_aranges 0 : { *(.debug_aranges) }
.debug_abbrev 0 : { *(.debug_abbrev) } .debug_pubnames 0 : { *(.debug_pubnames) }
.debug_line 0 : { *(.debug_line) } /* DWARF 2 */
.debug_frame 0 : { *(.debug_frame) } .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_str 0 : { *(.debug_str) } .debug_abbrev 0 : { *(.debug_abbrev) }
.debug_loc 0 : { *(.debug_loc) } .debug_line 0 : { *(.debug_line) }
.debug_macinfo 0 : { *(.debug_macinfo) } .debug_frame 0 : { *(.debug_frame) }
/* SGI/MIPS DWARF 2 extensions */ .debug_str 0 : { *(.debug_str) }
.debug_weaknames 0 : { *(.debug_weaknames) } .debug_loc 0 : { *(.debug_loc) }
.debug_funcnames 0 : { *(.debug_funcnames) } .debug_macinfo 0 : { *(.debug_macinfo) }
.debug_typenames 0 : { *(.debug_typenames) } /* SGI/MIPS DWARF 2 extensions */
.debug_varnames 0 : { *(.debug_varnames) } .debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
/DISCARD/ : { *(.note.GNU-stack) } .debug_typenames 0 : { *(.debug_typenames) }
/DISCARD/ : { *(.branch_lt) } .debug_varnames 0 : { *(.debug_varnames) }
/DISCARD/ : { *(.data .data.* .gnu.linkonce.d.*) }
/DISCARD/ : { *(.bss .sbss .dynbss .dynsbss) } /DISCARD/ : {
*(.note.GNU-stack)
*(.branch_lt)
*(.data .data.* .gnu.linkonce.d.* .sdata*)
*(.bss .sbss .dynbss .dynsbss)
}
} }
/*
* Very old versions of ld do not recognize this name token; use the constant.
*/
#define PT_GNU_EH_FRAME 0x6474e550
/*
* We must supply the ELF program headers explicitly to get just one
* PT_LOAD segment, and set the flags explicitly to make segments read-only.
*/
PHDRS PHDRS
{ {
text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */ text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */
note PT_NOTE FLAGS(4); /* PF_R */ dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ note PT_NOTE FLAGS(4); /* PF_R */
eh_frame_hdr 0x6474e550; /* PT_GNU_EH_FRAME, but ld doesn't match the name */ eh_frame_hdr PT_GNU_EH_FRAME;
} }
/* /*
...@@ -111,17 +125,22 @@ PHDRS ...@@ -111,17 +125,22 @@ PHDRS
*/ */
VERSION VERSION
{ {
VDSO_VERSION_STRING { VDSO_VERSION_STRING {
global: global:
__kernel_datapage_offset; /* Has to be there for the kernel to find */ /*
__kernel_get_syscall_map; * Has to be there for the kernel to find
__kernel_gettimeofday; */
__kernel_clock_gettime; __kernel_datapage_offset;
__kernel_clock_getres;
__kernel_get_tbfreq; __kernel_get_syscall_map;
__kernel_sync_dicache; __kernel_gettimeofday;
__kernel_sync_dicache_p5; __kernel_clock_gettime;
__kernel_sigtramp_rt64; __kernel_clock_getres;
local: *; __kernel_get_tbfreq;
}; __kernel_sync_dicache;
__kernel_sync_dicache_p5;
__kernel_sigtramp_rt64;
local: *;
};
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册