diff options
Diffstat (limited to 'arch/x86/vdso/vdso-layout.lds.S')
| -rw-r--r-- | arch/x86/vdso/vdso-layout.lds.S | 19 | 
1 files changed, 8 insertions, 11 deletions
| diff --git a/arch/x86/vdso/vdso-layout.lds.S b/arch/x86/vdso/vdso-layout.lds.S index 2e263f367b13..9df017ab2285 100644 --- a/arch/x86/vdso/vdso-layout.lds.S +++ b/arch/x86/vdso/vdso-layout.lds.S @@ -9,12 +9,9 @@ SECTIONS  #ifdef BUILD_VDSO32  #include <asm/vdso32.h> -	.hpet_sect : { -		hpet_page = . - VDSO_OFFSET(VDSO_HPET_PAGE); -	} :text :hpet_sect +	hpet_page = . - VDSO_OFFSET(VDSO_HPET_PAGE); -	.vvar_sect : { -		vvar = . - VDSO_OFFSET(VDSO_VVAR_PAGE); +	vvar = . - VDSO_OFFSET(VDSO_VVAR_PAGE);  	/* Place all vvars at the offsets in asm/vvar.h. */  #define EMIT_VVAR(name, offset) vvar_ ## name = vvar + offset; @@ -22,7 +19,6 @@ SECTIONS  #include <asm/vvar.h>  #undef __VVAR_KERNEL_LDS  #undef EMIT_VVAR -	} :text :vvar_sect  #endif  	. = SIZEOF_HEADERS; @@ -61,7 +57,12 @@ SECTIONS  	 */  	. = ALIGN(0x100); -	.text		: { *(.text*) }			:text	=0x90909090 +	.text		: { *(.text*) }			:text	=0x90909090, + +	/* +	 * The comma above works around a bug in gold: +	 * https://sourceware.org/bugzilla/show_bug.cgi?id=16804 +	 */  	/DISCARD/ : {  		*(.discard) @@ -84,8 +85,4 @@ PHDRS  	dynamic		PT_DYNAMIC	FLAGS(4);		/* PF_R */  	note		PT_NOTE		FLAGS(4);		/* PF_R */  	eh_frame_hdr	PT_GNU_EH_FRAME; -#ifdef BUILD_VDSO32 -	vvar_sect	PT_NULL		FLAGS(4);		/* PF_R */ -	hpet_sect	PT_NULL		FLAGS(4);		/* PF_R */ -#endif  } | 
