This is the mail archive of the mailing list for the newlib project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] newlib/ Turn off sti/cli for i386 setjmp for i386-rtems*

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/ | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/newlib/ b/newlib/
index 5fa37d4..f6abb5c 100644
--- a/newlib/
+++ b/newlib/
@@ -592,6 +592,8 @@ case "${host}" in
          # turn off unsupported items in posix directory
+        # 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. :)



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]