[PATCH v5] i386 and x86_fenv.h support

joel@rtems.org joel@rtems.org
Wed Sep 25 15:09:00 GMT 2019


From: Joel Sherrill <joel@rtems.org>

Hi

I have posted multiple versions of this patch. The i386 builds
and tests fine on RTEMS. I cannot get the configure/Makefile
magic right for x86_64. Help is appreciated.

I added x86_64 to configure.host for libm_machine_dir and
x86_64 to libm/machine/configure.in.

The error messages in the log indicate that NEWLIB_CONFIGURE isn't
being expanded but libm/machine/x86_64/configure.in diffs as
nearly identical to the i386 and arm versions.

././config.cache --srcdir=../../../../../../newlib-cygwin/newlib/libm/machine/x86_64
configure: loading cache ../../.././config.cache
../../../../../../newlib-cygwin/newlib/libm/machine/x86_64/configure: line 1679: syntax error near unexpected token `../../..'
../../../../../../newlib-cygwin/newlib/libm/machine/x86_64/configure: line 1679: `NEWLIB_CONFIGURE(../../..)'
configure: error: ../../../../../../newlib-cygwin/newlib/libm/machine/x86_64/configure failed for x86_64
configure: error: ../../../../../newlib-cygwin/newlib/libm/machine/configure failed for machine
configure: error: ../../../../newlib-cygwin/newlib/libm/configure failed for libm

I really would appreciate help in figuring out what's not
bootstrapping correctly.

Thanks.

--joel


Joel Sherrill (1):
  Add i386 and x86_64 fenv support from Cygwin.

 newlib/configure.host                        |   1 +
 newlib/libc/machine/i386/sys/fenv.h          |   1 +
 newlib/libc/machine/x86_64/sys/fenv.h        | 143 ++++++++
 newlib/libm/fenv/fenv_stub.c                 |  23 ++
 newlib/libm/machine/configure.in             |   1 +
 newlib/libm/machine/i386/Makefile.am         |   6 +-
 newlib/libm/machine/i386/feclearexcept.c     |   1 +
 newlib/libm/machine/i386/fegetenv.c          |   1 +
 newlib/libm/machine/i386/fegetexceptflag.c   |   1 +
 newlib/libm/machine/i386/fegetround.c        |   1 +
 newlib/libm/machine/i386/feholdexcept.c      |   1 +
 newlib/libm/machine/i386/fenv.c              |   1 +
 newlib/libm/machine/i386/feraiseexcept.c     |   1 +
 newlib/libm/machine/i386/fesetenv.c          |   1 +
 newlib/libm/machine/i386/fesetexceptflag.c   |   1 +
 newlib/libm/machine/i386/fesetround.c        |   1 +
 newlib/libm/machine/i386/fetestexcept.c      |   1 +
 newlib/libm/machine/i386/feupdateenv.c       |   1 +
 newlib/libm/machine/x86_64/Makefile.am       |  20 ++
 newlib/libm/machine/x86_64/configure.in      |  25 ++
 newlib/libm/machine/x86_64/feclearexcept.c   |   1 +
 newlib/libm/machine/x86_64/fegetenv.c        |   1 +
 newlib/libm/machine/x86_64/fegetexceptflag.c |   1 +
 newlib/libm/machine/x86_64/fegetround.c      |   1 +
 newlib/libm/machine/x86_64/feholdexcept.c    |   1 +
 newlib/libm/machine/x86_64/fenv.c            | 477 +++++++++++++++++++++++++++
 newlib/libm/machine/x86_64/feraiseexcept.c   |   1 +
 newlib/libm/machine/x86_64/fesetenv.c        |   1 +
 newlib/libm/machine/x86_64/fesetexceptflag.c |   1 +
 newlib/libm/machine/x86_64/fesetround.c      |   1 +
 newlib/libm/machine/x86_64/fetestexcept.c    |   1 +
 newlib/libm/machine/x86_64/feupdateenv.c     |   1 +
 32 files changed, 718 insertions(+), 2 deletions(-)
 create mode 120000 newlib/libc/machine/i386/sys/fenv.h
 create mode 100644 newlib/libc/machine/x86_64/sys/fenv.h
 create mode 100644 newlib/libm/fenv/fenv_stub.c
 create mode 120000 newlib/libm/machine/i386/feclearexcept.c
 create mode 120000 newlib/libm/machine/i386/fegetenv.c
 create mode 120000 newlib/libm/machine/i386/fegetexceptflag.c
 create mode 120000 newlib/libm/machine/i386/fegetround.c
 create mode 120000 newlib/libm/machine/i386/feholdexcept.c
 create mode 120000 newlib/libm/machine/i386/fenv.c
 create mode 120000 newlib/libm/machine/i386/feraiseexcept.c
 create mode 120000 newlib/libm/machine/i386/fesetenv.c
 create mode 120000 newlib/libm/machine/i386/fesetexceptflag.c
 create mode 120000 newlib/libm/machine/i386/fesetround.c
 create mode 120000 newlib/libm/machine/i386/fetestexcept.c
 create mode 120000 newlib/libm/machine/i386/feupdateenv.c
 create mode 100644 newlib/libm/machine/x86_64/Makefile.am
 create mode 100644 newlib/libm/machine/x86_64/configure.in
 create mode 120000 newlib/libm/machine/x86_64/feclearexcept.c
 create mode 120000 newlib/libm/machine/x86_64/fegetenv.c
 create mode 120000 newlib/libm/machine/x86_64/fegetexceptflag.c
 create mode 120000 newlib/libm/machine/x86_64/fegetround.c
 create mode 120000 newlib/libm/machine/x86_64/feholdexcept.c
 create mode 100644 newlib/libm/machine/x86_64/fenv.c
 create mode 120000 newlib/libm/machine/x86_64/feraiseexcept.c
 create mode 120000 newlib/libm/machine/x86_64/fesetenv.c
 create mode 120000 newlib/libm/machine/x86_64/fesetexceptflag.c
 create mode 120000 newlib/libm/machine/x86_64/fesetround.c
 create mode 120000 newlib/libm/machine/x86_64/fetestexcept.c
 create mode 120000 newlib/libm/machine/x86_64/feupdateenv.c

-- 
1.8.3.1



More information about the Newlib mailing list