summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2013-12-29 20:33:26 +0100
committerSylvain Munaut <tnt@246tNt.com>2014-02-04 18:32:02 +0100
commit07ce6faff389dcaedc9b11ee4245d2a310f7612b (patch)
treea446619dc2c8c60b2120e714243abc729478ba8e
parent44649961dd678ce5b1bb8fd8e59719acd9052d2e (diff)
fw: tell linker to add init_array to ctor sectionsylvain/burst_ind
Starting with version 4.8, gcc places functions with __attribute__ ((constructor)) in .init_array instead of .ctors by default. This broke firmware images built with gcc >= 4.8. Signed-off-by: Steve Markgraf <steve@steve-m.de>
-rw-r--r--src/target/firmware/board/compal/highram.lds1
-rw-r--r--src/target/firmware/board/compal/ram.lds1
-rw-r--r--src/target/firmware/board/compal_e88/flash.lds1
-rw-r--r--src/target/firmware/board/compal_e88/loader.lds1
-rw-r--r--src/target/firmware/board/mediatek/ram.lds1
5 files changed, 5 insertions, 0 deletions
diff --git a/src/target/firmware/board/compal/highram.lds b/src/target/firmware/board/compal/highram.lds
index 1f0a5a67..a6129fe4 100644
--- a/src/target/firmware/board/compal/highram.lds
+++ b/src/target/firmware/board/compal/highram.lds
@@ -60,6 +60,7 @@ SECTIONS
LONG(SIZEOF(.ctors) / 4 - 2)
/* ctor pointers */
KEEP(*(SORT(.ctors)))
+ KEEP(*(SORT(.init_array)))
/* end of list */
LONG(0)
} > LRAM
diff --git a/src/target/firmware/board/compal/ram.lds b/src/target/firmware/board/compal/ram.lds
index 342870dc..fe75418d 100644
--- a/src/target/firmware/board/compal/ram.lds
+++ b/src/target/firmware/board/compal/ram.lds
@@ -62,6 +62,7 @@ SECTIONS
LONG(SIZEOF(.ctors) / 4 - 2)
/* ctor pointers */
KEEP(*(SORT(.ctors)))
+ KEEP(*(SORT(.init_array)))
/* end of list */
LONG(0)
} > LRAM
diff --git a/src/target/firmware/board/compal_e88/flash.lds b/src/target/firmware/board/compal_e88/flash.lds
index cf0f6a41..67d727ff 100644
--- a/src/target/firmware/board/compal_e88/flash.lds
+++ b/src/target/firmware/board/compal_e88/flash.lds
@@ -54,6 +54,7 @@ SECTIONS
LONG(SIZEOF(.ctors) / 4 - 2)
/* ctor pointers */
KEEP(*(SORT(.ctors)))
+ KEEP(*(SORT(.init_array)))
/* end of list */
LONG(0)
} > FLASH
diff --git a/src/target/firmware/board/compal_e88/loader.lds b/src/target/firmware/board/compal_e88/loader.lds
index a7a001fc..22febff4 100644
--- a/src/target/firmware/board/compal_e88/loader.lds
+++ b/src/target/firmware/board/compal_e88/loader.lds
@@ -67,6 +67,7 @@ SECTIONS
LONG(SIZEOF(.ctors) / 4 - 2)
/* ctor pointers */
KEEP(*(SORT(.ctors)))
+ KEEP(*(SORT(.init_array)))
/* end of list */
LONG(0)
} > FLASH
diff --git a/src/target/firmware/board/mediatek/ram.lds b/src/target/firmware/board/mediatek/ram.lds
index a2af5609..7083c273 100644
--- a/src/target/firmware/board/mediatek/ram.lds
+++ b/src/target/firmware/board/mediatek/ram.lds
@@ -51,6 +51,7 @@ SECTIONS
LONG(SIZEOF(.ctors) / 4 - 2)
/* ctor pointers */
KEEP(*(SORT(.ctors)))
+ KEEP(*(SORT(.init_array)))
/* end of list */
LONG(0)
} > LRAM