[PATCH] ARM: Fix clone code when built for Thumb.

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] ARM: Fix clone code when built for Thumb.

Will Newton

The mov lr, pc instruction will lose the Thumb bit from the return address
so use blx lr instead.

ports/ChangeLog.arm:

2013-08-29  Will Newton  <[hidden email]>

        * sysdeps/unix/sysv/linux/arm/clone.S (__clone): Use blx
        instead of mov lr, pc.
---
 ports/sysdeps/unix/sysv/linux/arm/clone.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ports/sysdeps/unix/sysv/linux/arm/clone.S b/ports/sysdeps/unix/sysv/linux/arm/clone.S
index ce9c2a5..6e74fa7 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/arm/clone.S
@@ -93,8 +93,8 @@ PSEUDO_END (__clone)
  mov lr, pc
  bx      ip
 #else
- mov lr, pc
- ldr pc, [sp], #8
+ ldr lr, [sp], #8
+ blx lr
 #endif

  @ and we are done, passing the return value through r0
--
1.8.1.4

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] ARM: Fix clone code when built for Thumb.

Joseph Myers
On Thu, 29 Aug 2013, Will Newton wrote:

> The mov lr, pc instruction will lose the Thumb bit from the return address
> so use blx lr instead.
>
> ports/ChangeLog.arm:
>
> 2013-08-29  Will Newton  <[hidden email]>
>
> * sysdeps/unix/sysv/linux/arm/clone.S (__clone): Use blx
> instead of mov lr, pc.

OK given a bug filed in Bugzilla and appropriate [BZ #N] notation and
addition of the fixed bug number to NEWS.  Since this is a regression
arising from the changes to build .S files as Thumb, you should also
cherry-pick the fix to 2.18 branch.

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] ARM: Fix clone code when built for Thumb.

Will Newton
On 29 August 2013 20:26, Joseph S. Myers <[hidden email]> wrote:

Hi Joseph,

>> The mov lr, pc instruction will lose the Thumb bit from the return address
>> so use blx lr instead.
>>
>> ports/ChangeLog.arm:
>>
>> 2013-08-29  Will Newton  <[hidden email]>
>>
>>       * sysdeps/unix/sysv/linux/arm/clone.S (__clone): Use blx
>>       instead of mov lr, pc.
>
> OK given a bug filed in Bugzilla and appropriate [BZ #N] notation and
> addition of the fixed bug number to NEWS.  Since this is a regression
> arising from the changes to build .S files as Thumb, you should also
> cherry-pick the fix to 2.18 branch.

I've filed a bug and posted a v2. I don't have commit access so I'm
not sure what the best way to facilitate the cherry pick is. Apart
from the NEWS entry the merge should be trivial.


--
Will Newton
Toolchain Working Group, Linaro
Reply | Threaded
Open this post in threaded view
|

Add willnewton to glibc group

Joseph Myers
On Thu, 29 Aug 2013, Will Newton wrote:

> I've filed a bug and posted a v2. I don't have commit access so I'm
> not sure what the best way to facilitate the cherry pick is. Apart
> from the NEWS entry the merge should be trivial.

It's time for you to get commit access to commit your own patches once
they've been approved.  Overseers, please add user willnewton to the glibc
group.

--
Joseph S. Myers
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] ARM: Fix clone code when built for Thumb.

Will Newton
In reply to this post by Joseph Myers
On 29 August 2013 20:26, Joseph S. Myers <[hidden email]> wrote:

> On Thu, 29 Aug 2013, Will Newton wrote:
>
>> The mov lr, pc instruction will lose the Thumb bit from the return address
>> so use blx lr instead.
>>
>> ports/ChangeLog.arm:
>>
>> 2013-08-29  Will Newton  <[hidden email]>
>>
>>       * sysdeps/unix/sysv/linux/arm/clone.S (__clone): Use blx
>>       instead of mov lr, pc.
>
> OK given a bug filed in Bugzilla and appropriate [BZ #N] notation and
> addition of the fixed bug number to NEWS.  Since this is a regression
> arising from the changes to build .S files as Thumb, you should also
> cherry-pick the fix to 2.18 branch.

Committed to master and the 2.18 branch. Let me know if I missed anything.

Thanks!


--
Will Newton
Toolchain Working Group, Linaro
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] ARM: Fix clone code when built for Thumb.

Carlos O'Donell-6
On 08/30/2013 06:18 AM, Will Newton wrote:

> On 29 August 2013 20:26, Joseph S. Myers <[hidden email]> wrote:
>> On Thu, 29 Aug 2013, Will Newton wrote:
>>
>>> The mov lr, pc instruction will lose the Thumb bit from the return address
>>> so use blx lr instead.
>>>
>>> ports/ChangeLog.arm:
>>>
>>> 2013-08-29  Will Newton  <[hidden email]>
>>>
>>>       * sysdeps/unix/sysv/linux/arm/clone.S (__clone): Use blx
>>>       instead of mov lr, pc.
>>
>> OK given a bug filed in Bugzilla and appropriate [BZ #N] notation and
>> addition of the fixed bug number to NEWS.  Since this is a regression
>> arising from the changes to build .S files as Thumb, you should also
>> cherry-pick the fix to 2.18 branch.
>
> Committed to master and the 2.18 branch. Let me know if I missed anything.

Please be aware that the release manager for 2.18 should be ACK'ing your
patches going into 2.18 (David Miller). David is responsible for the
branch and it's his responsibility if the branch gets into a bad state.

You can make it easy for David by stating that Joseph said it's OK, and
explaining your testing.

Cheers,
Carlos.