1d01c382eSEd Maste/* 29931033bSDmitry Chagin * Linker script for 64-bit vDSO. 3c56480a8SDmitry Chagin * Copied from Linux kernel arch/arm64/kernel/vdso/vdso.lds.S 4d01c382eSEd Maste */ 5d01c382eSEd Maste 6d01c382eSEd MasteSECTIONS 7d01c382eSEd Maste{ 8d01c382eSEd Maste . = . + SIZEOF_HEADERS; 99931033bSDmitry Chagin 109931033bSDmitry Chagin .hash : { *(.hash) } :text 11d01c382eSEd Maste .gnu.hash : { *(.gnu.hash) } 12d01c382eSEd Maste .dynsym : { *(.dynsym) } 13d01c382eSEd Maste .dynstr : { *(.dynstr) } 14d01c382eSEd Maste .gnu.version : { *(.gnu.version) } 15d01c382eSEd Maste .gnu.version_d : { *(.gnu.version_d) } 16d01c382eSEd Maste .gnu.version_r : { *(.gnu.version_r) } 179931033bSDmitry Chagin 18c56480a8SDmitry Chagin /DISCARD/ : { 19c56480a8SDmitry Chagin *(.note.GNU-stack .note.gnu.property) 20c56480a8SDmitry Chagin } 21c56480a8SDmitry Chagin 229931033bSDmitry Chagin .note : { *(.note.*) } :text :note 239931033bSDmitry Chagin 24c56480a8SDmitry Chagin . = ALIGN(0x100); 25c56480a8SDmitry Chagin 26c56480a8SDmitry Chagin .text : { *(.text*) } :text =0x90909090 27c56480a8SDmitry Chagin PROVIDE (__etext = .); 28c56480a8SDmitry Chagin PROVIDE (_etext = .); 29c56480a8SDmitry Chagin PROVIDE (etext = .); 309931033bSDmitry Chagin 319931033bSDmitry Chagin .dynamic : { *(.dynamic) } :text :dynamic 329931033bSDmitry Chagin 339931033bSDmitry Chagin .rodata : { *(.rodata*) } :text 349931033bSDmitry Chagin .data : { 359931033bSDmitry Chagin *(.data*) 369931033bSDmitry Chagin } 379931033bSDmitry Chagin 38c56480a8SDmitry Chagin _end = .; 39c56480a8SDmitry Chagin PROVIDE(end = .); 409931033bSDmitry Chagin 41c56480a8SDmitry Chagin /DISCARD/ : { 42c56480a8SDmitry Chagin *(.eh_frame .eh_frame_hdr) 43c56480a8SDmitry Chagin } 449931033bSDmitry Chagin} 459931033bSDmitry Chagin 469931033bSDmitry ChaginPHDRS 479931033bSDmitry Chagin{ 489931033bSDmitry Chagin text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ 499931033bSDmitry Chagin dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ 509931033bSDmitry Chagin note PT_NOTE FLAGS(4); /* PF_R */ 519931033bSDmitry Chagin} 529931033bSDmitry Chagin 539931033bSDmitry Chagin/* 549931033bSDmitry Chagin * This controls what symbols we export from the DSO. 559931033bSDmitry Chagin */ 569931033bSDmitry ChaginVERSION 579931033bSDmitry Chagin{ 589931033bSDmitry Chagin LINUX_2.6.39 { 599931033bSDmitry Chagin global: 609931033bSDmitry Chagin __kernel_rt_sigreturn; 619931033bSDmitry Chagin __kernel_gettimeofday; 629931033bSDmitry Chagin __kernel_clock_gettime; 639931033bSDmitry Chagin __kernel_clock_getres; 649931033bSDmitry Chagin local: *; 659931033bSDmitry Chagin }; 669931033bSDmitry Chagin 679931033bSDmitry Chagin LINUX_0.0 { 689931033bSDmitry Chagin global: 699931033bSDmitry Chagin linux_platform; 709931033bSDmitry Chagin kern_timekeep_base; 71*d957343fSDmitry Chagin __user_rt_sigreturn; 729931033bSDmitry Chagin local: *; 739931033bSDmitry Chagin }; 74d01c382eSEd Maste} 75