Refactor linker-generated arrays

Refactor linker-generated array code so that symbols
which were previously linker-generated are now compiler-
generated. This causes relocation records of type
R_ARM_ABS32 to become R_ARM_RELATIVE, which makes
code which uses LGA able to run before relocation as
well as after.

Note: this affects more than ARM targets, as linker-
lists span possibly all target architectures, notably
PowerPC.

Conflicts:
	arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
	arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
	arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
	board/ait/cam_enc_4xx/u-boot-spl.lds
	board/davinci/da8xxevm/u-boot-spl-da850evm.lds
	board/davinci/da8xxevm/u-boot-spl-hawk.lds
	board/vpac270/u-boot-spl.lds

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index 2c151f2..f3c9ed8 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -72,7 +72,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index dbd6f6a..ae0a48d 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index 00932ae..603858b 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index d054f20..7421eec 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index f8116f6..6838247 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -72,7 +72,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index d054f20..7421eec 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 133ec01..e222e80 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index d054f20..7421eec 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index fc68de1..c18758a 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index ad49874..20f6c47 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -71,7 +71,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index d25a36f..15dfa7d 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -74,7 +74,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index 6616594..5013ff4 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -72,7 +72,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index bc40fd6..5ee8fcc 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -72,7 +72,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m54418twr/u-boot.lds b/board/freescale/m54418twr/u-boot.lds
index 36a4c26..2df386b 100644
--- a/board/freescale/m54418twr/u-boot.lds
+++ b/board/freescale/m54418twr/u-boot.lds
@@ -69,7 +69,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 91328a4..4440d61 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -69,7 +69,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index 36a4c26..2df386b 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -69,7 +69,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index de4d0eb..269bf8a 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -69,7 +69,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index fbbe0c5..68bdad4 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -69,7 +69,7 @@
 
   . = ALIGN(4);
   .u_boot_list : {
-	#include <u-boot.lst>
+	KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 12d7c12..2d08fea 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -60,7 +60,7 @@
 
 	. = ALIGN(4);
 	.u_boot_list : {
-	#include <u-boot.lst>
+		KEEP(*(SORT(.u_boot_list*)));
 	}
 
 	. = ALIGN(4);