Browse Source

module: set .init_array alignment to 8

The proper idiom for aligning linker sections in modules is different
than for built-in sections.  ". = ALIGN();" followed by a forced
output address of 0 does nothing, as forcing the address changes the
value of ".".

Use output section alignment specifier instead.

Fixes: 9ddf82521c86 ("kernel: add support for .init_array.* constructors")
Reviewed-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Jessica Yu <jeyu@redhat.com>
David Daney 8 years ago
parent
commit
5bd933fe44
1 changed files with 1 additions and 2 deletions
  1. 1 2
      scripts/module-common.lds

+ 1 - 2
scripts/module-common.lds

@@ -20,8 +20,7 @@ SECTIONS {
 	__kcrctab_unused_gpl	0 : { *(SORT(___kcrctab_unused_gpl+*)) }
 	__kcrctab_gpl_future	0 : { *(SORT(___kcrctab_gpl_future+*)) }
 
-	. = ALIGN(8);
-	.init_array		0 : { *(SORT(.init_array.*)) *(.init_array) }
+	.init_array		0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) }
 
 	__jump_table		0 : ALIGN(8) { KEEP(*(__jump_table)) }
 }