Sat Jun 4 16:41:20 CEST 2011

Synthetic target fix

After checking what ".type" and ".size" actually mean (they annotate a
symbol with type and size), it seems likely that what is meant here is
to just refer to the "cyg_hal_sys_restore" symbol, and not the
"__restore" symbol?  I.e. the code probably has changed at some point
to incorporate a name change, but somebody forgot to update that
directive.  It's not necessary for the code to work so it is only
detected now that binutils got stricter about it's input.

If this is the case, see the fix below


? synth_fix.patch
Index: syscall-i386-linux-1.0.S
RCS file: /cvs/ecos/ecos/packages/hal/synth/i386linux/current/src/syscall-i386-linux-1.0.S,v
retrieving revision 1.13
diff -u -8 -p -r1.13 syscall-i386-linux-1.0.S
--- syscall-i386-linux-1.0.S	23 Aug 2009 11:34:45 -0000	1.13
+++ syscall-i386-linux-1.0.S	4 Jun 2011 14:40:09 -0000
@@ -439,20 +439,20 @@ SYSCALL5(ipc)
 // via another system call.         
         .align 16
         .global cyg_hal_sys_restore_rt
         movl    $SYS_rt_sigreturn, %eax
         int     $0x80
-        .type __restore_rt,@function
-        .size __restore_rt,1b - __restore_rt
+        .type cyg_hal_sys_restore_rt,@function
+        .size cyg_hal_sys_restore_rt,1b - cyg_hal_sys_restore_rt
         .align 8
         .global cyg_hal_sys_restore
         popl    %eax
         movl    $SYS_sigreturn, %eax
         int     $0x80
-        .type __restore,@function
-        .size __restore,1b - __restore
+        .type cyg_hal_sys_restore,@function
+        .size cyg_hal_sys_restore,1b - cyg_hal_sys_restore