Index: uClibc.check/ldso/ldso/m68k/resolve.S =================================================================== --- uClibc.check/ldso/ldso/m68k/resolve.S (revision 23665) +++ uClibc.check/ldso/ldso/m68k/resolve.S (working copy) @@ -19,5 +19,10 @@ _dl_linux_resolve: # Pop parameters addq.l #8, %sp # Call real function. +#if defined __mcoldfire__ + move.l %d0,-(%sp) + rts +#else jmp (%d0) +#endif .size _dl_linux_resolve,.-_dl_linux_resolve Index: uClibc.check/libc/sysdeps/linux/m68k/vfork.S =================================================================== --- uClibc.check/libc/sysdeps/linux/m68k/vfork.S (revision 23665) +++ uClibc.check/libc/sysdeps/linux/m68k/vfork.S (working copy) @@ -22,23 +22,33 @@ .type __vfork,@function __vfork: - movl %sp@+, %a1 /* save the return address for later */ + movl %sp@+, %a1 /* save the return address for later */ movl IMM __NR_vfork,%d0 trap #0 movl IMM -4097, %d1 cmpl %d0, %d1 bcs fix_errno - jmp %a1@ /* don't return, just jmp directly */ +#if defined __mcoldfire__ + move.l %a1@,-(%sp) + rts +#else + jmp %a1@ /* don't return, just jmp directly */ +#endif fix_errno: negl %d0 -#ifndef __PIC__ /* needs handling as the other archs */ +#ifndef __PIC__ /* needs handling as the other archs */ movl errno, %a0 #else movl errno@GOT(%a5), %a0 #endif movl %d0, %a0@ movl IMM -1, %d0 - jmp %a1@ /* don't return, just jmp directly */ +#if defined __mcoldfire__ + move.l %a1@,-(%sp) + rts +#else + jmp %a1@ /* don't return, just jmp directly */ +#endif .size __vfork,.-__vfork weak_alias(__vfork,vfork)