1bdc37934SDmitry Chagin/* 2bdc37934SDmitry Chagin * Linker script for 32-bit vDSO. 3bdc37934SDmitry Chagin * Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S 4bdc37934SDmitry Chagin * and arch/x86/vdso/vdso32/vdso32.lds.S 5bdc37934SDmitry Chagin */ 6bdc37934SDmitry Chagin 7bdc37934SDmitry ChaginSECTIONS 8bdc37934SDmitry Chagin{ 9bdc37934SDmitry Chagin . = . + SIZEOF_HEADERS; 10bdc37934SDmitry Chagin 11bdc37934SDmitry Chagin .hash : { *(.hash) } :text 12bdc37934SDmitry Chagin .gnu.hash : { *(.gnu.hash) } 13bdc37934SDmitry Chagin .dynsym : { *(.dynsym) } 14bdc37934SDmitry Chagin .dynstr : { *(.dynstr) } 15bdc37934SDmitry Chagin .gnu.version : { *(.gnu.version) } 16bdc37934SDmitry Chagin .gnu.version_d : { *(.gnu.version_d) } 17bdc37934SDmitry Chagin .gnu.version_r : { *(.gnu.version_r) } 18bdc37934SDmitry Chagin 19bdc37934SDmitry Chagin .note : { *(.note.*) } :text :note 20bdc37934SDmitry Chagin 21bdc37934SDmitry Chagin .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr 22bdc37934SDmitry Chagin .eh_frame : { KEEP (*(.eh_frame)) } :text 23bdc37934SDmitry Chagin 24bdc37934SDmitry Chagin .dynamic : { *(.dynamic) } :text :dynamic 25bdc37934SDmitry Chagin 26bdc37934SDmitry Chagin .rodata : { *(.rodata*) } :text 27bdc37934SDmitry Chagin .data : { 28bdc37934SDmitry Chagin *(.data*) 29bdc37934SDmitry Chagin *(.sdata*) 30bdc37934SDmitry Chagin *(.got.plt) *(.got) 31bdc37934SDmitry Chagin *(.gnu.linkonce.d.*) 32bdc37934SDmitry Chagin *(.bss*) 33bdc37934SDmitry Chagin *(.dynbss*) 34bdc37934SDmitry Chagin *(.gnu.linkonce.b.*) 35bdc37934SDmitry Chagin } 36bdc37934SDmitry Chagin 37bdc37934SDmitry Chagin .altinstructions : { *(.altinstructions) } 38bdc37934SDmitry Chagin .altinstr_replacement : { *(.altinstr_replacement) } 39bdc37934SDmitry Chagin 40bdc37934SDmitry Chagin . = ALIGN(0x100); 41bdc37934SDmitry Chagin .text : { *(.text*) } :text =0x90909090 42bdc37934SDmitry Chagin} 43bdc37934SDmitry Chagin 44bdc37934SDmitry ChaginPHDRS 45bdc37934SDmitry Chagin{ 46bdc37934SDmitry Chagin text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ 47bdc37934SDmitry Chagin dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ 48bdc37934SDmitry Chagin note PT_NOTE FLAGS(4); /* PF_R */ 49bdc37934SDmitry Chagin eh_frame_hdr PT_GNU_EH_FRAME; 50bdc37934SDmitry Chagin} 51bdc37934SDmitry Chagin 52bdc37934SDmitry ChaginVERSION 53bdc37934SDmitry Chagin{ 549931033bSDmitry Chagin LINUX_2.6 { 559931033bSDmitry Chagin global: 569931033bSDmitry Chagin __vdso_clock_gettime; 579931033bSDmitry Chagin __vdso_gettimeofday; 589931033bSDmitry Chagin __vdso_time; 595a6a4fb2SDmitry Chagin __vdso_getcpu; 609931033bSDmitry Chagin __vdso_clock_getres; 619931033bSDmitry Chagin __vdso_clock_gettime64; 629931033bSDmitry Chagin }; 639931033bSDmitry Chagin 64bdc37934SDmitry Chagin LINUX_2.5 { 65bdc37934SDmitry Chagin global: 669931033bSDmitry Chagin __kernel_vsyscall; 679931033bSDmitry Chagin __kernel_sigreturn; 689931033bSDmitry Chagin __kernel_rt_sigreturn; 699931033bSDmitry Chagin local: *; 709931033bSDmitry Chagin }; 719931033bSDmitry Chagin 729931033bSDmitry Chagin LINUX_0.0 { 739931033bSDmitry Chagin global: 740020bdf1SDmitry Chagin linux_platform; 759931033bSDmitry Chagin kern_timekeep_base; 769931033bSDmitry Chagin kern_tsc_selector; 775a6a4fb2SDmitry Chagin kern_cpu_selector; 78*8f9635dcSDmitry Chagin linux32_vdso_sigcode; 79*8f9635dcSDmitry Chagin linux32_vdso_rt_sigcode; 80bdc37934SDmitry Chagin local: *; 81bdc37934SDmitry Chagin }; 82bdc37934SDmitry Chagin} 83