[PATCH] newlib/configure.host: Turn off sti/cli for i386 setjmp for i386-rtems*
Joel Sherrill
joel.sherrill@oarcorp.com
Fri Feb 26 10:54:00 GMT 2016
On 2/26/2016 4:44 AM, Corinna Vinschen wrote:
> On Feb 25 14:44, Joel Sherrill wrote:
>> When running RTEMS paravirtualized in user space, the cli/sti instructions
>> can't be used. But I can't see why they are needed in either user or
>> supervisor state. Turning the use of them off for RTEMS.
>>
>> This code is unmodified since the beginning of the repository, so I have
>> no insight into why it was done. I may even have been the one to add them.
>> Absolutely no idea except they aren't necessary.
>>
>> ---
>> newlib/configure.host | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/newlib/configure.host b/newlib/configure.host
>> index 5fa37d4..f6abb5c 100644
>> --- a/newlib/configure.host
>> +++ b/newlib/configure.host
>> @@ -592,6 +592,8 @@ case "${host}" in
>> newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL -DHAVE_ASSERT_FUNC"
>> # turn off unsupported items in posix directory
>> newlib_cflags="${newlib_cflags} -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET -D_NO_WORDEXP -D_NO_POPEN -D_NO_POSIX_SPAWN"
>> + # turn off using cli/sti in i386 setjmp/longjmp
>> + newlib_cflags="${newlib_cflags} -D_I386MACH_ALLOW_HW_INTERRUPTS"
>> ;;
>> # VxWorks supplies its own version of malloc, and the newlib one
>> # doesn't work because VxWorks does not have sbrk.
>
> Patch is ok, please apply.
>
> Would it make sense to enable _I386MACH_ALLOW_HW_INTERRUPTS by default
> on x86/x86_64?
I can't see any downside. I spot checked other ports and no other port seemed to have comparable code. I would be OK with that. Where is it defaulted?
Also FWIW, I would like to see this resolved before the next newlib snapshot
so the RTEMS tools can include this. We are due for a tool update and I don't
want to impact users too much in a single month. :)
> Thanks,
> Corinna
>
--joel
More information about the Newlib
mailing list