Make DSC files relocatable.

* Make the header const. It will be modified after loading, but making
it non-const would need a gsinit, wasting disk space and RAM.
diff --git a/contiki-cpc/Makefile.programs b/contiki-cpc/Makefile.programs
index ab7a742..f358863 100644
--- a/contiki-cpc/Makefile.programs
+++ b/contiki-cpc/Makefile.programs
@@ -86,8 +86,8 @@
 
 # conversion of intel hex record to binary, cpc binary with header, then inject into disc image
 define MAKE_DSC
-echo -i $(@:.dsc=.ihx) > $@.lnk
-	echo arch/crt0-prg.o >> $@.lnk
+echo -ihn $(@:.dsc=.ihx) > $@.lnk
+	echo arch/crt0-dsc.o >> $@.lnk
 	echo $< >> $@.lnk
 	echo -e >> $@.lnk
 	$(LD) -f $@.lnk
diff --git a/contiki-cpc/apps/configedit-dsc.c b/contiki-cpc/apps/configedit-dsc.c
index fcb9250..8586d94 100644
--- a/contiki-cpc/apps/configedit-dsc.c
+++ b/contiki-cpc/apps/configedit-dsc.c
@@ -35,7 +35,6 @@
 
 #include "dsc.h"
 
-extern const struct ctk_icon configedit_icon;
 /*-----------------------------------------------------------------------------------*/
 DSC(configedit_dsc,
     "Edit Contiki configuration",
@@ -67,6 +66,6 @@
 };
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
-const struct ctk_icon configedit_icon =
+static const struct ctk_icon configedit_icon =
   {CTK_ICON("Configuration", tcpipconficon_bitmap, tcpipconficon_textmap)};
 /*-----------------------------------------------------------------------------------*/
diff --git a/contiki-cpc/apps/directory-dsc.c b/contiki-cpc/apps/directory-dsc.c
index 0ddca7b..caa0b63 100644
--- a/contiki-cpc/apps/directory-dsc.c
+++ b/contiki-cpc/apps/directory-dsc.c
@@ -35,7 +35,6 @@
 
 #include "dsc.h"
 
-extern const struct ctk_icon directory_icon;
 /*-----------------------------------------------------------------------------------*/
 const DSC(directory_dsc,
     "Directory reader",
@@ -67,6 +66,6 @@
 };
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
-const struct ctk_icon directory_icon =
+static const struct ctk_icon directory_icon =
   {CTK_ICON("Directory", directoryicon_bitmap, directoryicon_textmap)};
 /*-----------------------------------------------------------------------------------*/
diff --git a/contiki-cpc/arch/crt0-dsc.s b/contiki-cpc/arch/crt0-dsc.s
index 381bc27..b7b3974 100644
--- a/contiki-cpc/arch/crt0-dsc.s
+++ b/contiki-cpc/arch/crt0-dsc.s
@@ -11,6 +11,7 @@
 	;; Ordering of segments for the linker.
 	.area	_HOME (REL)
 	.area	_CODE (REL)
+	.dw 0 ; Will be replaced by relocation data
     .area   _GSINIT (REL)
     .area   _GSFINAL (REL)
         
diff --git a/contiki/apps/about-dsc.c b/contiki/apps/about-dsc.c
index 83a208b..2814ee1 100644
--- a/contiki/apps/about-dsc.c
+++ b/contiki/apps/about-dsc.c
@@ -67,7 +67,7 @@
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
 #if CTK_CONF_ICONS
-static struct ctk_icon about_icon =
+static const struct ctk_icon about_icon =
   {CTK_ICON("About Contiki", abouticon_bitmap, abouticon_textmap)};
 #else
 extern struct ctk_icon about_icon;
diff --git a/contiki/apps/calc-dsc.c b/contiki/apps/calc-dsc.c
index 7b8355c..48ba8e6 100644
--- a/contiki/apps/calc-dsc.c
+++ b/contiki/apps/calc-dsc.c
@@ -67,7 +67,7 @@
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
 #if CTK_CONF_ICONS
-static struct ctk_icon calc_icon =
+static const struct ctk_icon calc_icon =
   {CTK_ICON("Calculator", calcicon_bitmap, calcicon_textmap)};
 #else
 extern struct ctk_icon calc_icon;
diff --git a/contiki/apps/editor-dsc.c b/contiki/apps/editor-dsc.c
index 59d5ba3..308b78f 100644
--- a/contiki/apps/editor-dsc.c
+++ b/contiki/apps/editor-dsc.c
@@ -67,7 +67,7 @@
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
 #if CTK_CONF_ICONS
-static struct ctk_icon editor_icon =
+static const struct ctk_icon editor_icon =
   {CTK_ICON("Editor", editoricon_bitmap, editoricon_textmap)};
 #else
 extern struct ctk_icon editor_icon;
diff --git a/contiki/apps/netconf-dsc.c b/contiki/apps/netconf-dsc.c
index 33858e0..609e0bc 100644
--- a/contiki/apps/netconf-dsc.c
+++ b/contiki/apps/netconf-dsc.c
@@ -67,7 +67,7 @@
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
 #if CTK_CONF_ICONS
-static struct ctk_icon netconf_icon =
+static const struct ctk_icon netconf_icon =
   {CTK_ICON("Network setup", tcpipconficon_bitmap, tcpipconficon_textmap)};
 #else
 extern struct ctk_icon netconf_icon;
diff --git a/contiki/apps/processes-dsc.c b/contiki/apps/processes-dsc.c
index e2c37df..e289818 100644
--- a/contiki/apps/processes-dsc.c
+++ b/contiki/apps/processes-dsc.c
@@ -38,7 +38,7 @@
 /*-----------------------------------------------------------------------------------*/
 DSC(processes_dsc,
     "Process information",
-    "processes.prg",
+    "process.prg",
     processes_init,
     &processes_icon);
 /*-----------------------------------------------------------------------------------*/
@@ -67,7 +67,7 @@
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
 #if CTK_CONF_ICONS
-static struct ctk_icon processes_icon =
+static const struct ctk_icon processes_icon =
   {CTK_ICON("Processes", processesicon_bitmap, processesicon_textmap)};
 #else
 extern struct ctk_icon processes_icon;
diff --git a/contiki/apps/shell-dsc.c b/contiki/apps/shell-dsc.c
index 8268838..73a9430 100644
--- a/contiki/apps/shell-dsc.c
+++ b/contiki/apps/shell-dsc.c
@@ -67,7 +67,7 @@
 #endif /* CTK_CONF_ICON_TEXTMAPS */
 
 #if CTK_CONF_ICONS
-static struct ctk_icon shell_icon =
+static const struct ctk_icon shell_icon =
   {CTK_ICON("Command shell", shellicon_bitmap, shellicon_textmap)};
 #else
 extern struct ctk_icon shell_icon;