diff packages/hal/mips/arch/current/src/hal_misc.c @ 16:4f2df4ab82c8 ecos-sw-1999-06-18

Merge from eCos master repository on 1999-06-18-15:25:04-BST
author jlarmour
date Fri, 18 Jun 1999 07:59:09 +0000
parents 4cc3eff958ab
children 7253dcc42a09
line wrap: on
line diff
--- a/packages/hal/mips/arch/current/src/hal_misc.c
+++ b/packages/hal/mips/arch/current/src/hal_misc.c
@@ -111,16 +111,18 @@ externC cyg_uint32 hal_default_isr(CYG_A
 /*------------------------------------------------------------------------*/
 /* data copy and bss zero functions                                       */
 
-typedef void (CYG_ROM_ADDRESS)(void);
+typedef void (CYG_SYM_ADDRESS)(void);
 
-extern char __ram_data_start;
-extern char __ram_data_end;
-extern CYG_ROM_ADDRESS __rom_data_start;    
+// All these must use this type of address to stop them being given relocations
+// relative to $gp (i.e. assuming they would be in .sdata)
+extern CYG_SYM_ADDRESS __ram_data_start;
+extern CYG_SYM_ADDRESS __ram_data_end;
+extern CYG_SYM_ADDRESS __rom_data_start;    
 
 #ifdef CYG_HAL_STARTUP_ROM      
 void hal_copy_data(void)
 {
-    char *p = &__ram_data_start;
+    char *p = (char *)&__ram_data_start;
     char *q = (char *)&__rom_data_start;
     
     while( p != (char *)&__ram_data_end )
@@ -128,8 +130,8 @@ void hal_copy_data(void)
 }
 #endif
 
-extern CYG_ROM_ADDRESS __bss_start;
-extern CYG_ROM_ADDRESS __bss_end;
+extern CYG_SYM_ADDRESS __bss_start;
+extern CYG_SYM_ADDRESS __bss_end;
 
 void hal_zero_bss(void)
 {