Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Mon, 30 Apr 2018 12:32:53 +1000
From: Patrick Oppenlander <patrick.oppenlander@...il.com>
To: Rich Felker <dalias@...c.org>
Cc: musl@...ts.openwall.com
Subject: Re: [PATCH] arm asm for vfork

You're right, it's not particularly pleasant. I have an MIMXRT1050-EVK
board which is what this is for -- it's a 600MHz Cortex-M7 with a
32MiB DRAM for about $80USD. More than enough to run my kernel and a
few other bits and pieces for now even with the overhead of copying
the program text.

Are there plans for fdpic in musl as soon as GCC supports it?

SVC is just a name change from SWI. Old habits die hard I guess. In my
brain SWI makes more sense as it really is an interrupt and not a
call.

I won't bother resubmitting a patch for that though.

Patrick




On Mon, Apr 30, 2018 at 12:09 PM, Rich Felker <dalias@...c.org> wrote:
> On Mon, Apr 30, 2018 at 11:36:22AM +1000, patrick.oppenlander@...il.com wrote:
>> From: Patrick Oppenlander <patrick.oppenlander@...il.com>
>>
>> ---
>>  src/process/arm/vfork.s | 12 ++++++++++++
>>  1 file changed, 12 insertions(+)
>>  create mode 100644 src/process/arm/vfork.s
>>
>> diff --git a/src/process/arm/vfork.s b/src/process/arm/vfork.s
>> new file mode 100644
>> index 00000000..f01fe1d0
>> --- /dev/null
>> +++ b/src/process/arm/vfork.s
>> @@ -0,0 +1,12 @@
>> +.syntax unified
>> +.global __vfork
>> +.weak vfork
>> +.type __vfork,%function
>> +.type vfork,%function
>> +__vfork:
>> +vfork:
>> +     mov ip, r7
>> +     mov r7, 190
>> +     swi 0
>> +     mov r7, ip
>> +     b __syscall_ret
>> --
>> 2.17.0
>
> Thanks. We'll need this for nommu users; right now that's not so
> practical but it will be once we get fdpic added.
>
> I haven't tested, but the patch looks right. Elsewhere we use svc
> instead of swi; not sure if that matters.
>
> Rich

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ