Question about memmove implemented for uClibc arm

夏Timothy xwllwx at hotmail.com
Fri May 23 02:02:22 UTC 2008


Sorry for the delay. Last night, I didn't have development environment when I received your mail.
 
A new arm uClibc toolchain is made after I removed "moveq r0, #0". And as you said, removing this
statement works. telnetd of busybox 1.7.2 could work correctly now. Thanks.
 
Best Regards,
Timothy



> From: vda.linux at googlemail.com> To: xwllwx at hotmail.com> Subject: Re: Question about memmove implemented for uClibc arm> Date: Thu, 22 May 2008 18:53:22 +0200> CC: uclibc at uclibc.org> > On Thursday 22 May 2008 17:55, 夏Timothy wrote:> > Yes, I agree.> > The code checks whether src address equals to dest address. If so, it returns directly with return value 0.> > However, if src equals to dest, remove_iacs of busybox 1.10.2 would return ptr0. And only if src does not> > equal to dest, remove_ias of busybox 1.10.2 would return with the return value from memmove. > > > > Hence, I believe that this bug would not affect the telnetd of busybox 1.10.2. Thanks a lot for your help.> > And thanks for the help from Khem Raj as well.> > I'm sorry, but you didn't answer my question.> If you will do this small test and confirm that it works,> I can fix the bug in svn.> > (The question is below in quoted text)> > > Best Regards,> > Timothy> > ----------------------------------------> > > From: vda.linux at googlemail.com> > > To: uclibc at uclibc.org> > > Subject: Re: Question about memmove implemented for uClibc arm> > > Date: Thu, 22 May 2008 14:27:40 +0200> > > CC: xwllwx at hotmail.com> > > > > > On Thursday 22 May 2008 10:43, 夏Timothy wrote:> > >> Hi, > > >> Thanks for the help. I have disassembled the code. However.if I post them here, > > >> the mail would be very very long.> > >> > > >> Actually, I think the assembly code for memmove and memcopy could be found in > > >> uClibc/libc/string/arm/memmove.S and uClibc/libc/string/arm/_memcpy.S respectively.> > > > > > I believe bug is here:> > > > > > _memcpy:> > > /* Determine copy direction */> > > cmp r1, r0> > > bcc .Lmemcpy_backwards> > > > > > IT(tt, eq)> > > moveq r0, #0 /* Quick abort for len=0 */> > > #if defined(__USE_BX__)> > > bxeq lr> > > #else> > > moveq pc, lr> > > #endif> > > > > > Does removing just one instruction "moveq r0, #0" help?> > > If not, you probably need to replace it with "moveq r0, r1"> > > --> > > vda> > > > _________________________________________________________________> > 新年换新颜,快来妆扮自己的MSN给心仪的TA一个惊喜!> > http://im.live.cn/emoticons/?ID=18> > 
_________________________________________________________________
Windows Live Photo gallery 数码相机的超级伴侣,轻松管理和编辑照片,还能制作全景美图!
http://get.live.cn/product/photo.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.busybox.net/pipermail/uclibc/attachments/20080523/f3f4a236/attachment-0002.htm 


More information about the uClibc mailing list