diff options
author | Khem Raj <raj.khem@gmail.com> | 2009-07-20 13:41:28 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2009-07-20 13:41:28 -0700 |
commit | 8145c8e9b5d984af10e4510cac7fba9e5ed3d8ae (patch) | |
tree | d9b8d9371fa61fccf9aabf1944a450c04f7bf9b2 /libc/sysdeps/linux/mips/clone.S | |
parent | 83b3c2f4e06b5c666df523c9280d2cdf064e6d40 (diff) |
It fixes the following warnings seen on mips build.
libc/sysdeps/linux/mips/clone.S: Assembler messages:
libc/sysdeps/linux/mips/clone.S:122: Warning: No .frame pseudo-op used in PIC code
libc/sysdeps/linux/mips/clone.S:75: Warning: Pretending global symbol used as branch target is local.
libc/sysdeps/linux/mips/crt1.S: Assembler messages:
libc/sysdeps/linux/mips/crt1.S:134: Warning: No .cprestore pseudo-op used in PIC code
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'libc/sysdeps/linux/mips/clone.S')
-rw-r--r-- | libc/sysdeps/linux/mips/clone.S | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/libc/sysdeps/linux/mips/clone.S b/libc/sysdeps/linux/mips/clone.S index 716cd993f..15fa29558 100644 --- a/libc/sysdeps/linux/mips/clone.S +++ b/libc/sysdeps/linux/mips/clone.S @@ -55,8 +55,8 @@ clone: /* Sanity check arguments. */ li v0,EINVAL - beqz a0,error /* No NULL function pointers. */ - beqz a1,error /* No NULL stack pointers. */ + beqz a0,L(error) /* No NULL function pointers. */ + beqz a1,L(error) /* No NULL stack pointers. */ #if _MIPS_SIM != _MIPS_SIM_ABI32 and a1,~(16-1) /* force alignment */ @@ -71,8 +71,8 @@ clone: li v0,__NR_clone syscall - bnez a3,error - beqz v0,__thread_start + bnez a3,L(error) + beqz v0,L(__thread_start) /* Successful return from the parent */ #if _MIPS_SIM != _MIPS_SIM_ABI32 @@ -82,7 +82,7 @@ clone: j $31 ; nop /* Something bad happened -- no child created */ -error: +L(error): #if _MIPS_SIM != _MIPS_SIM_ABI32 .cpreturn #endif @@ -104,12 +104,14 @@ error: its own function so that we can terminate the stack trace with our debug info. */ -.globl __thread_start; + .globl __thread_start; .align 2; .ent __thread_start, 0; __thread_start: +L(__thread_start): #if _MIPS_SIM == _MIPS_SIM_ABI32 + .frame sp, 24, sp /* cp is already loaded. */ .cprestore 16 #endif @@ -123,5 +125,10 @@ __thread_start: /* Call _exit rather than doing it inline for breakpoint purposes. */ move a0,v0 - jal HIDDEN_JUMPTARGET(_exit) +#ifdef __PIC__ + PTR_LA t9,_exit + jalr t9 +#else + jal _exit +#endif .end __thread_start |