[haiku-commits] haiku: hrev53730 - in src/system/libroot/posix/glibc: include/arch/x86/bits string/bits include/arch/x86_64/bits include/arch/generic include/arch/m68k/bits

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 18 Jan 2020 19:18:33 -0500 (EST)

hrev53730 adds 1 changeset to branch 'master'
old head: bef15852170481c535a85443c64129e4b6a32af6
new head: f19586ee86fa01c76044879ac905c196c63444e4
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=f19586ee86fa+%5Ebef158521704

----------------------------------------------------------------------------

f19586ee86fa: libroot: Drop a lot of glibc-internal headers that are not needed.
  
  No functional change intended.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev53730
Commit:      f19586ee86fa01c76044879ac905c196c63444e4
URL:         https://git.haiku-os.org/haiku/commit/?id=f19586ee86fa
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Sun Jan 19 00:17:43 2020 UTC

----------------------------------------------------------------------------

27 files changed, 6454 deletions(-)
.../libroot/posix/glibc/arch/generic/dla.h       |  174 ---
.../glibc/include/arch/arm/bits/fenvinline.h     |    0
.../glibc/include/arch/arm/bits/mathinline.h     |    1 -
.../posix/glibc/include/arch/arm/fenv_private.h  |  251 ----
.../posix/glibc/include/arch/arm/fpu_control.h   |   75 --
.../glibc/include/arch/arm64/bits/mathinline.h   |    1 -
.../include/arch/generic/bits/floatn-common.h    |  329 -----
.../posix/glibc/include/arch/generic/dla.h       |  183 ---
.../include/arch/generic/libm-alias-ldouble.h    |   65 -
.../glibc/include/arch/generic/math-underflow.h  |   79 --
.../posix/glibc/include/arch/generic/memcopy.h   |  150 ---
.../include/arch/generic/nan-high-order-bit.h    |   27 -
.../glibc/include/arch/m68k/bits/mathinline.h    |  463 -------
.../glibc/include/arch/ppc/bits/mathinline.h     |  101 --
.../posix/glibc/include/arch/ppc/fenv_libc.h     |  106 --
.../glibc/include/arch/riscv64/bits/floatn.h     |   97 --
.../glibc/include/arch/riscv64/bits/mathinline.h |   22 -
.../posix/glibc/include/arch/sparc/bits/floatn.h |   97 --
.../glibc/include/arch/sparc/bits/mathinline.h   |   22 -
.../glibc/include/arch/sparc/fenv_private.h      |  172 ---
.../posix/glibc/include/arch/x86/bits/floatn.h   |  121 --
.../glibc/include/arch/x86/bits/mathinline.h     |  714 ----------
.../posix/glibc/include/arch/x86/bits/string.h   |  922 -------------
.../glibc/include/arch/x86_64/bits/mathinline.h  |  970 --------------
.../posix/glibc/include/bits/long-double.h       |   39 -
src/system/libroot/posix/glibc/math/math.h       |    6 -
.../libroot/posix/glibc/string/bits/string2.h    | 1267 ------------------

----------------------------------------------------------------------------

diff --git a/src/system/libroot/posix/glibc/arch/generic/dla.h 
b/src/system/libroot/posix/glibc/arch/generic/dla.h
deleted file mode 100644
index bf73fa902e..0000000000
--- a/src/system/libroot/posix/glibc/arch/generic/dla.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001 Free Software Foundation, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/***********************************************************************/
-/*MODULE_NAME: dla.h                                                   */
-/*                                                                     */
-/* This file holds C language macros for 'Double Length Floating Point */
-/* Arithmetic'. The macros are based on the paper:                     */
-/* T.J.Dekker, "A floating-point Technique for extending the           */
-/* Available Precision", Number. Math. 18, 224-242 (1971).              */
-/* A Double-Length number is defined by a pair (r,s), of IEEE double    */
-/* precision floating point numbers that satisfy,                      */
-/*                                                                     */
-/*              abs(s) <= abs(r+s)*2**(-53)/(1+2**(-53)).              */
-/*                                                                     */
-/* The computer arithmetic assumed is IEEE double precision in         */
-/* round to nearest mode. All variables in the macros must be of type  */
-/* IEEE double.                                                        */
-/***********************************************************************/
-
-/* CN = 1+2**27 = '41a0000002000000' IEEE double format */
-#define  CN   134217729.0
-
-
-/* Exact addition of two single-length floating point numbers, Dekker. */
-/* The macro produces a double-length number (z,zz) that satisfies     */
-/* z+zz = x+y exactly.                                                 */
-
-#define  EADD(x,y,z,zz)  \
-           z=(x)+(y);  zz=(ABS(x)>ABS(y)) ? (((x)-(z))+(y)) : (((y)-(z))+(x));
-
-
-/* Exact subtraction of two single-length floating point numbers, Dekker. */
-/* The macro produces a double-length number (z,zz) that satisfies        */
-/* z+zz = x-y exactly.                                                    */
-
-#define  ESUB(x,y,z,zz)  \
-           z=(x)-(y);  zz=(ABS(x)>ABS(y)) ? (((x)-(z))-(y)) : ((x)-((y)+(z)));
-
-
-/* Exact multiplication of two single-length floating point numbers,   */
-/* Veltkamp. The macro produces a double-length number (z,zz) that     */
-/* satisfies z+zz = x*y exactly. p,hx,tx,hy,ty are temporary           */
-/* storage variables of type double.                                   */
-
-#define  EMULV(x,y,z,zz,p,hx,tx,hy,ty)          \
-           p=CN*(x);  hx=((x)-p)+p;  tx=(x)-hx; \
-           p=CN*(y);  hy=((y)-p)+p;  ty=(y)-hy; \
-           z=(x)*(y); zz=(((hx*hy-z)+hx*ty)+tx*hy)+tx*ty;
-
-
-/* Exact multiplication of two single-length floating point numbers, Dekker. */
-/* The macro produces a nearly double-length number (z,zz) (see Dekker)      */
-/* that satisfies z+zz = x*y exactly. p,hx,tx,hy,ty,q are temporary          */
-/* storage variables of type double.                                         */
-
-#define  MUL12(x,y,z,zz,p,hx,tx,hy,ty,q)        \
-           p=CN*(x);  hx=((x)-p)+p;  tx=(x)-hx; \
-           p=CN*(y);  hy=((y)-p)+p;  ty=(y)-hy; \
-           p=hx*hy;  q=hx*ty+tx*hy; z=p+q;  zz=((p-z)+q)+tx*ty;
-
-
-/* Double-length addition, Dekker. The macro produces a double-length   */
-/* number (z,zz) which satisfies approximately   z+zz = x+xx + y+yy.    */
-/* An error bound: (abs(x+xx)+abs(y+yy))*4.94e-32. (x,xx), (y,yy)       */
-/* are assumed to be double-length numbers. r,s are temporary           */
-/* storage variables of type double.                                    */
-
-#define  ADD2(x,xx,y,yy,z,zz,r,s)                    \
-           r=(x)+(y);  s=(ABS(x)>ABS(y)) ?           \
-                       (((((x)-r)+(y))+(yy))+(xx)) : \
-                       (((((y)-r)+(x))+(xx))+(yy));  \
-           z=r+s;  zz=(r-z)+s;
-
-
-/* Double-length subtraction, Dekker. The macro produces a double-length  */
-/* number (z,zz) which satisfies approximately   z+zz = x+xx - (y+yy).    */
-/* An error bound: (abs(x+xx)+abs(y+yy))*4.94e-32. (x,xx), (y,yy)         */
-/* are assumed to be double-length numbers. r,s are temporary             */
-/* storage variables of type double.                                      */
-
-#define  SUB2(x,xx,y,yy,z,zz,r,s)                    \
-           r=(x)-(y);  s=(ABS(x)>ABS(y)) ?           \
-                       (((((x)-r)-(y))-(yy))+(xx)) : \
-                       ((((x)-((y)+r))+(xx))-(yy));  \
-           z=r+s;  zz=(r-z)+s;
-
-
-/* Double-length multiplication, Dekker. The macro produces a double-length  */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)*(y+yy).       */
-/* An error bound: abs((x+xx)*(y+yy))*1.24e-31. (x,xx), (y,yy)               */
-/* are assumed to be double-length numbers. p,hx,tx,hy,ty,q,c,cc are         */
-/* temporary storage variables of type double.                               */
-
-#define  MUL2(x,xx,y,yy,z,zz,p,hx,tx,hy,ty,q,c,cc)  \
-           MUL12(x,y,c,cc,p,hx,tx,hy,ty,q)          \
-           cc=((x)*(yy)+(xx)*(y))+cc;   z=c+cc;   zz=(c-z)+cc;
-
-
-/* Double-length division, Dekker. The macro produces a double-length        */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)/(y+yy).       */
-/* An error bound: abs((x+xx)/(y+yy))*1.50e-31. (x,xx), (y,yy)               */
-/* are assumed to be double-length numbers. p,hx,tx,hy,ty,q,c,cc,u,uu        */
-/* are temporary storage variables of type double.                           */
-
-#define  DIV2(x,xx,y,yy,z,zz,p,hx,tx,hy,ty,q,c,cc,u,uu)  \
-           c=(x)/(y);   MUL12(c,y,u,uu,p,hx,tx,hy,ty,q)  \
-           cc=(((((x)-u)-uu)+(xx))-c*(yy))/(y);   z=c+cc;   zz=(c-z)+cc;
-
-
-/* Double-length addition, slower but more accurate than ADD2.               */
-/* The macro produces a double-length                                        */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)+(y+yy).       */
-/* An error bound: abs(x+xx + y+yy)*1.50e-31. (x,xx), (y,yy)                 */
-/* are assumed to be double-length numbers. r,rr,s,ss,u,uu,w                 */
-/* are temporary storage variables of type double.                           */
-
-#define  ADD2A(x,xx,y,yy,z,zz,r,rr,s,ss,u,uu,w)                        \
-           r=(x)+(y);                                                  \
-           if (ABS(x)>ABS(y)) { rr=((x)-r)+(y);  s=(rr+(yy))+(xx); }   \
-           else               { rr=((y)-r)+(x);  s=(rr+(xx))+(yy); }   \
-           if (rr!=0.0) {                                              \
-             z=r+s;  zz=(r-z)+s; }                                     \
-           else {                                                      \
-             ss=(ABS(xx)>ABS(yy)) ? (((xx)-s)+(yy)) : (((yy)-s)+(xx)); \
-             u=r+s;                                                    \
-             uu=(ABS(r)>ABS(s))   ? ((r-u)+s)   : ((s-u)+r)  ;         \
-             w=uu+ss;  z=u+w;                                          \
-             zz=(ABS(u)>ABS(w))   ? ((u-z)+w)   : ((w-z)+u)  ; }
-
-
-/* Double-length subtraction, slower but more accurate than SUB2.            */
-/* The macro produces a double-length                                        */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)-(y+yy).       */
-/* An error bound: abs(x+xx - (y+yy))*1.50e-31. (x,xx), (y,yy)               */
-/* are assumed to be double-length numbers. r,rr,s,ss,u,uu,w                 */
-/* are temporary storage variables of type double.                           */
-
-#define  SUB2A(x,xx,y,yy,z,zz,r,rr,s,ss,u,uu,w)                        \
-           r=(x)-(y);                                                  \
-           if (ABS(x)>ABS(y)) { rr=((x)-r)-(y);  s=(rr-(yy))+(xx); }   \
-           else               { rr=(x)-((y)+r);  s=(rr+(xx))-(yy); }   \
-           if (rr!=0.0) {                                              \
-             z=r+s;  zz=(r-z)+s; }                                     \
-           else {                                                      \
-             ss=(ABS(xx)>ABS(yy)) ? (((xx)-s)-(yy)) : ((xx)-((yy)+s)); \
-             u=r+s;                                                    \
-             uu=(ABS(r)>ABS(s))   ? ((r-u)+s)   : ((s-u)+r)  ;         \
-             w=uu+ss;  z=u+w;                                          \
-             zz=(ABS(u)>ABS(w))   ? ((u-z)+w)   : ((w-z)+u)  ; }
-
-
-
-
-
-
-
diff --git a/src/system/libroot/posix/glibc/include/arch/arm/bits/fenvinline.h 
b/src/system/libroot/posix/glibc/include/arch/arm/bits/fenvinline.h
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/src/system/libroot/posix/glibc/include/arch/arm/bits/mathinline.h 
b/src/system/libroot/posix/glibc/include/arch/arm/bits/mathinline.h
deleted file mode 100644
index 248e6cf600..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/arm/bits/mathinline.h
+++ /dev/null
@@ -1 +0,0 @@
-#warning ARM: check mathinline.h
diff --git a/src/system/libroot/posix/glibc/include/arch/arm/fenv_private.h 
b/src/system/libroot/posix/glibc/include/arch/arm/fenv_private.h
deleted file mode 100644
index a60d676b0c..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/arm/fenv_private.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Private floating point rounding and exceptions handling.  ARM VFP version.
-   Copyright (C) 2014-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef FENV_PRIVATE_H
-#define FENV_PRIVATE_H 1
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-#  define __glibc_unlikely(x)   __builtin_expect ((x), 0)
-
-static __always_inline void
-libc_feholdexcept_vfp (fenv_t *envp)
-{
-  fpu_control_t fpscr;
-
-  _FPU_GETCW (fpscr);
-  envp->__cw = fpscr;
-
-  /* Clear exception flags and set all exceptions to non-stop.  */
-  fpscr &= ~_FPU_MASK_EXCEPT;
-  _FPU_SETCW (fpscr);
-}
-
-static __always_inline void
-libc_fesetround_vfp (int round)
-{
-  fpu_control_t fpscr;
-
-  _FPU_GETCW (fpscr);
-
-  /* Set new rounding mode if different.  */
-  if (__glibc_unlikely ((fpscr & _FPU_MASK_RM) != round))
-    _FPU_SETCW ((fpscr & ~_FPU_MASK_RM) | round);
-}
-
-static __always_inline void
-libc_feholdexcept_setround_vfp (fenv_t *envp, int round)
-{
-  fpu_control_t fpscr;
-
-  _FPU_GETCW (fpscr);
-  envp->__cw = fpscr;
-
-  /* Clear exception flags, set all exceptions to non-stop,
-     and set new rounding mode.  */
-  fpscr &= ~(_FPU_MASK_EXCEPT | _FPU_MASK_RM);
-  _FPU_SETCW (fpscr | round);
-}
-
-static __always_inline void
-libc_feholdsetround_vfp (fenv_t *envp, int round)
-{
-  fpu_control_t fpscr;
-
-  _FPU_GETCW (fpscr);
-  envp->__cw = fpscr;
-
-  /* Set new rounding mode if different.  */
-  if (__glibc_unlikely ((fpscr & _FPU_MASK_RM) != round))
-    _FPU_SETCW ((fpscr & ~_FPU_MASK_RM) | round);
-}
-
-static __always_inline void
-libc_feresetround_vfp (fenv_t *envp)
-{
-  fpu_control_t fpscr, round;
-
-  _FPU_GETCW (fpscr);
-
-  /* Check whether rounding modes are different.  */
-  round = (envp->__cw ^ fpscr) & _FPU_MASK_RM;
-
-  /* Restore the rounding mode if it was changed.  */
-  if (__glibc_unlikely (round != 0))
-    _FPU_SETCW (fpscr ^ round);
-}
-
-static __always_inline int
-libc_fetestexcept_vfp (int ex)
-{
-  fpu_control_t fpscr;
-
-  _FPU_GETCW (fpscr);
-  return fpscr & ex & FE_ALL_EXCEPT;
-}
-
-static __always_inline void
-libc_fesetenv_vfp (const fenv_t *envp)
-{
-  fpu_control_t fpscr, new_fpscr;
-
-  _FPU_GETCW (fpscr);
-  new_fpscr = envp->__cw;
-
-  /* Write new FPSCR if different (ignoring NZCV flags).  */
-  if (__glibc_unlikely (((fpscr ^ new_fpscr) & ~_FPU_MASK_NZCV) != 0))
-    _FPU_SETCW (new_fpscr);
-}
-
-static __always_inline int
-libc_feupdateenv_test_vfp (const fenv_t *envp, int ex)
-{
-  fpu_control_t fpscr, new_fpscr;
-  int excepts;
-
-  _FPU_GETCW (fpscr);
-
-  /* Merge current exception flags with the saved fenv.  */
-  excepts = fpscr & FE_ALL_EXCEPT;
-  new_fpscr = envp->__cw | excepts;
-
-  /* Write new FPSCR if different (ignoring NZCV flags).  */
-  if (__glibc_unlikely (((fpscr ^ new_fpscr) & ~_FPU_MASK_NZCV) != 0))
-    _FPU_SETCW (new_fpscr);
-
-  /* Raise the exceptions if enabled in the new FP state.  */
-  if (__glibc_unlikely (excepts & (new_fpscr >> FE_EXCEPT_SHIFT)))
-    __feraiseexcept (excepts);
-
-  return excepts & ex;
-}
-
-static __always_inline void
-libc_feupdateenv_vfp (const fenv_t *envp)
-{
-  libc_feupdateenv_test_vfp (envp, 0);
-}
-
-static __always_inline void
-libc_feholdsetround_vfp_ctx (struct rm_ctx *ctx, int r)
-{
-  fpu_control_t fpscr, round;
-
-  _FPU_GETCW (fpscr);
-  ctx->updated_status = false;
-  ctx->env.__cw = fpscr;
-
-  /* Check whether rounding modes are different.  */
-  round = (fpscr ^ r) & _FPU_MASK_RM;
-
-  /* Set the rounding mode if changed.  */
-  if (__glibc_unlikely (round != 0))
-    {
-      ctx->updated_status = true;
-      _FPU_SETCW (fpscr ^ round);
-    }
-}
-
-static __always_inline void
-libc_feresetround_vfp_ctx (struct rm_ctx *ctx)
-{
-  /* Restore the rounding mode if updated.  */
-  if (__glibc_unlikely (ctx->updated_status))
-    {
-      fpu_control_t fpscr;
-
-      _FPU_GETCW (fpscr);
-      fpscr = (fpscr & ~_FPU_MASK_RM) | (ctx->env.__cw & _FPU_MASK_RM);
-      _FPU_SETCW (fpscr);
-    }
-}
-
-static __always_inline void
-libc_fesetenv_vfp_ctx (struct rm_ctx *ctx)
-{
-  fpu_control_t fpscr, new_fpscr;
-
-  _FPU_GETCW (fpscr);
-  new_fpscr = ctx->env.__cw;
-
-  /* Write new FPSCR if different (ignoring NZCV flags).  */
-  if (__glibc_unlikely (((fpscr ^ new_fpscr) & ~_FPU_MASK_NZCV) != 0))
-    _FPU_SETCW (new_fpscr);
-}
-
-#ifndef __SOFTFP__
-
-# define libc_feholdexcept  libc_feholdexcept_vfp
-# define libc_feholdexceptf libc_feholdexcept_vfp
-# define libc_feholdexceptl libc_feholdexcept_vfp
-
-# define libc_fesetround  libc_fesetround_vfp
-# define libc_fesetroundf libc_fesetround_vfp
-# define libc_fesetroundl libc_fesetround_vfp
-
-# define libc_feresetround  libc_feresetround_vfp
-# define libc_feresetroundf libc_feresetround_vfp
-# define libc_feresetroundl libc_feresetround_vfp
-
-# define libc_feresetround_noex  libc_fesetenv_vfp
-# define libc_feresetround_noexf libc_fesetenv_vfp
-# define libc_feresetround_noexl libc_fesetenv_vfp
-
-# define libc_feholdexcept_setround  libc_feholdexcept_setround_vfp
-# define libc_feholdexcept_setroundf libc_feholdexcept_setround_vfp
-# define libc_feholdexcept_setroundl libc_feholdexcept_setround_vfp
-
-# define libc_feholdsetround  libc_feholdsetround_vfp
-# define libc_feholdsetroundf libc_feholdsetround_vfp
-# define libc_feholdsetroundl libc_feholdsetround_vfp
-
-# define libc_fetestexcept  libc_fetestexcept_vfp
-# define libc_fetestexceptf libc_fetestexcept_vfp
-# define libc_fetestexceptl libc_fetestexcept_vfp
-
-# define libc_fesetenv  libc_fesetenv_vfp
-# define libc_fesetenvf libc_fesetenv_vfp
-# define libc_fesetenvl libc_fesetenv_vfp
-
-# define libc_feupdateenv  libc_feupdateenv_vfp
-# define libc_feupdateenvf libc_feupdateenv_vfp
-# define libc_feupdateenvl libc_feupdateenv_vfp
-
-# define libc_feupdateenv_test  libc_feupdateenv_test_vfp
-# define libc_feupdateenv_testf libc_feupdateenv_test_vfp
-# define libc_feupdateenv_testl libc_feupdateenv_test_vfp
-
-/* We have support for rounding mode context.  */
-#define HAVE_RM_CTX 1
-
-# define libc_feholdsetround_ctx       libc_feholdsetround_vfp_ctx
-# define libc_feresetround_ctx         libc_feresetround_vfp_ctx
-# define libc_feresetround_noex_ctx    libc_fesetenv_vfp_ctx
-
-# define libc_feholdsetroundf_ctx      libc_feholdsetround_vfp_ctx
-# define libc_feresetroundf_ctx                libc_feresetround_vfp_ctx
-# define libc_feresetround_noexf_ctx   libc_fesetenv_vfp_ctx
-
-# define libc_feholdsetroundl_ctx      libc_feholdsetround_vfp_ctx
-# define libc_feresetroundl_ctx                libc_feresetround_vfp_ctx
-# define libc_feresetround_noexl_ctx   libc_fesetenv_vfp_ctx
-
-#endif
-
-#endif /* FENV_PRIVATE_H */
diff --git a/src/system/libroot/posix/glibc/include/arch/arm/fpu_control.h 
b/src/system/libroot/posix/glibc/include/arch/arm/fpu_control.h
deleted file mode 100644
index 6b1b176eae..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/arm/fpu_control.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* FPU control word definitions.  ARM VFP version.
-   Copyright (C) 2004-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _FPU_CONTROL_H
-#define _FPU_CONTROL_H
-
-#if !(defined(_LIBC) && !defined(_LIBC_TEST)) && defined(__SOFTFP__)
-
-#define _FPU_RESERVED 0xffffffff
-#define _FPU_DEFAULT  0x00000000
-typedef unsigned int fpu_control_t;
-#define _FPU_GETCW(cw) (cw) = 0
-#define _FPU_SETCW(cw) (void) (cw)
-extern fpu_control_t __fpu_control;
-
-#else
-
-/* masking of interrupts */
-#define _FPU_MASK_IM   0x00000100      /* invalid operation */
-#define _FPU_MASK_ZM   0x00000200      /* divide by zero */
-#define _FPU_MASK_OM   0x00000400      /* overflow */
-#define _FPU_MASK_UM   0x00000800      /* underflow */
-#define _FPU_MASK_PM   0x00001000      /* inexact */
-
-#define _FPU_MASK_NZCV 0xf0000000      /* NZCV flags */
-#define _FPU_MASK_RM   0x00c00000      /* rounding mode */
-#define _FPU_MASK_EXCEPT 0x00001f1f    /* all exception flags */
-
-/* Some bits in the FPSCR are not yet defined.  They must be preserved when
-   modifying the contents.  */
-#define _FPU_RESERVED  0x00086060
-#define _FPU_DEFAULT    0x00000000
-
-/* Default + exceptions enabled.  */
-#define _FPU_IEEE      (_FPU_DEFAULT | 0x00001f00)
-
-/* Type of the control word.  */
-typedef unsigned int fpu_control_t;
-
-/* Macros for accessing the hardware control word.  */
-#ifdef __SOFTFP__
-/* This is fmrx %0, fpscr.  */
-# define _FPU_GETCW(cw) \
-  __asm__ __volatile__ ("mrc p10, 7, %0, cr1, cr0, 0" : "=r" (cw))
-/* This is fmxr fpscr, %0.  */
-# define _FPU_SETCW(cw) \
-  __asm__ __volatile__ ("mcr p10, 7, %0, cr1, cr0, 0" : : "r" (cw))
-#else
-# define _FPU_GETCW(cw) \
-  __asm__ __volatile__ ("vmrs %0, fpscr" : "=r" (cw))
-# define _FPU_SETCW(cw) \
-  __asm__ __volatile__ ("vmsr fpscr, %0" : : "r" (cw))
-#endif
-
-/* Default control word set at startup.  */
-extern fpu_control_t __fpu_control;
-
-#endif /* __SOFTFP__ */
-
-#endif /* _FPU_CONTROL_H */
diff --git 
a/src/system/libroot/posix/glibc/include/arch/arm64/bits/mathinline.h 
b/src/system/libroot/posix/glibc/include/arch/arm64/bits/mathinline.h
deleted file mode 100644
index 05ad341d80..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/arm64/bits/mathinline.h
+++ /dev/null
@@ -1 +0,0 @@
-#warning ARM64: check mathinline.h
diff --git 
a/src/system/libroot/posix/glibc/include/arch/generic/bits/floatn-common.h 
b/src/system/libroot/posix/glibc/include/arch/generic/bits/floatn-common.h
deleted file mode 100644
index 980bfdaf89..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/generic/bits/floatn-common.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/* Macros to control TS 18661-3 glibc features where the same
-   definitions are appropriate for all platforms.
-   Copyright (C) 2017-2019 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_FLOATN_COMMON_H
-#define _BITS_FLOATN_COMMON_H
-
-#include <features.h>
-#include <bits/long-double.h>
-
-/* This header should be included at the bottom of each bits/floatn.h.
-   It defines the following macros for each _FloatN and _FloatNx type,
-   where the same definitions, or definitions based only on the macros
-   in bits/floatn.h, are appropriate for all glibc configurations.  */
-
-/* Defined to 1 if the current compiler invocation provides a
-   floating-point type with the right format for this type, and this
-   glibc includes corresponding *fN or *fNx interfaces for it.  */
-#define __HAVE_FLOAT16 0
-#define __HAVE_FLOAT32 1
-#define __HAVE_FLOAT64 1
-#define __HAVE_FLOAT32X 1
-#define __HAVE_FLOAT128X 0
-
-/* Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
-   type is the first with its format in the sequence of (the default
-   choices for) float, double, long double, _Float16, _Float32,
-   _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
-   glibc; that is, if functions present once per floating-point format
-   rather than once per type are present for this type.
-
-   All configurations supported by glibc have _Float32 the same format
-   as float, _Float64 and _Float32x the same format as double, the
-   _Float64x the same format as either long double or _Float128.  No
-   configurations support _Float128x or, as of GCC 7, have compiler
-   support for a type meeting the requirements for _Float128x.  */
-#define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16
-#define __HAVE_DISTINCT_FLOAT32 0
-#define __HAVE_DISTINCT_FLOAT64 0
-#define __HAVE_DISTINCT_FLOAT32X 0
-#define __HAVE_DISTINCT_FLOAT64X 0
-#define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X
-
-/* Defined to 1 if the corresponding _FloatN type is not binary compatible
-   with the corresponding ISO C type in the current compilation unit as
-   opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
-   in glibc.  */
-#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128  \
-                                    && __LDBL_MANT_DIG__ != 113)
-
-/* Defined to 1 if any _FloatN or _FloatNx types that are not
-   ABI-distinct are however distinct types at the C language level (so
-   for the purposes of __builtin_types_compatible_p and _Generic).  */
-#if __GNUC_PREREQ (7, 0) && !defined __cplusplus
-# define __HAVE_FLOATN_NOT_TYPEDEF 1
-#else
-# define __HAVE_FLOATN_NOT_TYPEDEF 0
-#endif
-
-#ifndef __ASSEMBLER__
-
-/* Defined to concatenate the literal suffix to be used with _FloatN
-   or _FloatNx types, if __HAVE_<type> is 1.  The corresponding
-   literal suffixes exist since GCC 7, for C only.  */
-# if __HAVE_FLOAT16
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-/* No corresponding suffix available for this type.  */
-#   define __f16(x) ((_Float16) x##f)
-#  else
-#   define __f16(x) x##f16
-#  endif
-# endif
-
-# if __HAVE_FLOAT32
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   define __f32(x) x##f
-#  else
-#   define __f32(x) x##f32
-#  endif
-# endif
-
-# if __HAVE_FLOAT64
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   ifdef __NO_LONG_DOUBLE_MATH
-#    define __f64(x) x##l
-#   else
-#    define __f64(x) x
-#   endif
-#  else
-#   define __f64(x) x##f64
-#  endif
-# endif
-
-# if __HAVE_FLOAT32X
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   define __f32x(x) x
-#  else
-#   define __f32x(x) x##f32x
-#  endif
-# endif
-
-# if __HAVE_FLOAT64X
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   if __HAVE_FLOAT64X_LONG_DOUBLE
-#    define __f64x(x) x##l
-#   else
-#    define __f64x(x) __f128 (x)
-#   endif
-#  else
-#   define __f64x(x) x##f64x
-#  endif
-# endif
-
-# if __HAVE_FLOAT128X
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   error "_Float128X supported but no constant suffix"
-#  else
-#   define __f128x(x) x##f128x
-#  endif
-# endif
-
-/* Defined to a complex type if __HAVE_<type> is 1.  */
-# if __HAVE_FLOAT16
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef _Complex float __cfloat16 __attribute__ ((__mode__ (__HC__)));
-#   define __CFLOAT16 __cfloat16
-#  else
-#   define __CFLOAT16 _Complex _Float16
-#  endif
-# endif
-
-# if __HAVE_FLOAT32
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   define __CFLOAT32 _Complex float
-#  else
-#   define __CFLOAT32 _Complex _Float32
-#  endif
-# endif
-
-# if __HAVE_FLOAT64
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   ifdef __NO_LONG_DOUBLE_MATH
-#    define __CFLOAT64 _Complex long double
-#   else
-#    define __CFLOAT64 _Complex double
-#   endif
-#  else
-#   define __CFLOAT64 _Complex _Float64
-#  endif
-# endif
-
-# if __HAVE_FLOAT32X
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   define __CFLOAT32X _Complex double
-#  else
-#   define __CFLOAT32X _Complex _Float32x
-#  endif
-# endif
-
-# if __HAVE_FLOAT64X
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   if __HAVE_FLOAT64X_LONG_DOUBLE
-#    define __CFLOAT64X _Complex long double
-#   else
-#    define __CFLOAT64X __CFLOAT128
-#   endif
-#  else
-#   define __CFLOAT64X _Complex _Float64x
-#  endif
-# endif
-
-# if __HAVE_FLOAT128X
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   error "_Float128X supported but no complex type"
-#  else
-#   define __CFLOAT128X _Complex _Float128x
-#  endif
-# endif
-
-/* The remaining of this file provides support for older compilers.  */
-# if __HAVE_FLOAT16
-
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef float _Float16 __attribute__ ((__mode__ (__HF__)));
-#  endif
-
-#  if !__GNUC_PREREQ (7, 0)
-#   define __builtin_huge_valf16() ((_Float16) __builtin_huge_val ())
-#   define __builtin_inff16() ((_Float16) __builtin_inf ())
-#   define __builtin_nanf16(x) ((_Float16) __builtin_nan (x))
-#   define __builtin_nansf16(x) ((_Float16) __builtin_nans (x))
-#  endif
-
-# endif
-
-# if __HAVE_FLOAT32
-
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef float _Float32;
-#  endif
-
-#  if !__GNUC_PREREQ (7, 0)
-#   define __builtin_huge_valf32() (__builtin_huge_valf ())
-#   define __builtin_inff32() (__builtin_inff ())
-#   define __builtin_nanf32(x) (__builtin_nanf (x))
-#   define __builtin_nansf32(x) (__builtin_nansf (x))
-#  endif
-
-# endif
-
-# if __HAVE_FLOAT64
-
-/* If double, long double and _Float64 all have the same set of
-   values, TS 18661-3 requires the usual arithmetic conversions on
-   long double and _Float64 to produce _Float64.  For this to be the
-   case when building with a compiler without a distinct _Float64
-   type, _Float64 must be a typedef for long double, not for
-   double.  */
-
-#  ifdef __NO_LONG_DOUBLE_MATH
-
-#   if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef long double _Float64;
-#   endif
-
-#   if !__GNUC_PREREQ (7, 0)
-#    define __builtin_huge_valf64() (__builtin_huge_vall ())
-#    define __builtin_inff64() (__builtin_infl ())
-#    define __builtin_nanf64(x) (__builtin_nanl (x))
-#    define __builtin_nansf64(x) (__builtin_nansl (x))
-#   endif
-
-#  else
-
-#   if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef double _Float64;
-#   endif
-
-#   if !__GNUC_PREREQ (7, 0)
-#    define __builtin_huge_valf64() (__builtin_huge_val ())
-#    define __builtin_inff64() (__builtin_inf ())
-#    define __builtin_nanf64(x) (__builtin_nan (x))
-#    define __builtin_nansf64(x) (__builtin_nans (x))
-#   endif
-
-#  endif
-
-# endif
-
-# if __HAVE_FLOAT32X
-
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef double _Float32x;
-#  endif
-
-#  if !__GNUC_PREREQ (7, 0)
-#   define __builtin_huge_valf32x() (__builtin_huge_val ())
-#   define __builtin_inff32x() (__builtin_inf ())
-#   define __builtin_nanf32x(x) (__builtin_nan (x))
-#   define __builtin_nansf32x(x) (__builtin_nans (x))
-#  endif
-
-# endif
-
-# if __HAVE_FLOAT64X
-
-#  if __HAVE_FLOAT64X_LONG_DOUBLE
-
-#   if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef long double _Float64x;
-#   endif
-
-#   if !__GNUC_PREREQ (7, 0)
-#    define __builtin_huge_valf64x() (__builtin_huge_vall ())
-#    define __builtin_inff64x() (__builtin_infl ())
-#    define __builtin_nanf64x(x) (__builtin_nanl (x))
-#    define __builtin_nansf64x(x) (__builtin_nansl (x))
-#   endif
-
-#  else
-
-#   if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef _Float128 _Float64x;
-#   endif
-
-#   if !__GNUC_PREREQ (7, 0)
-#    define __builtin_huge_valf64x() (__builtin_huge_valf128 ())
-#    define __builtin_inff64x() (__builtin_inff128 ())
-#    define __builtin_nanf64x(x) (__builtin_nanf128 (x))
-#    define __builtin_nansf64x(x) (__builtin_nansf128 (x))
-#   endif
-
-#  endif
-
-# endif
-
-# if __HAVE_FLOAT128X
-
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   error "_Float128x supported but no type"
-#  endif
-
-#  if !__GNUC_PREREQ (7, 0)
-#   define __builtin_huge_valf128x() ((_Float128x) __builtin_huge_val ())
-#   define __builtin_inff128x() ((_Float128x) __builtin_inf ())
-#   define __builtin_nanf128x(x) ((_Float128x) __builtin_nan (x))
-#   define __builtin_nansf128x(x) ((_Float128x) __builtin_nans (x))
-#  endif
-
-# endif
-
-#endif /* !__ASSEMBLER__.  */
-
-#endif /* _BITS_FLOATN_COMMON_H */
diff --git a/src/system/libroot/posix/glibc/include/arch/generic/dla.h 
b/src/system/libroot/posix/glibc/include/arch/generic/dla.h
deleted file mode 100644
index d64bb1e246..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/generic/dla.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2019 Free Software Foundation, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <math.h>
-
-/***********************************************************************/
-/*MODULE_NAME: dla.h                                                   */
-/*                                                                     */
-/* This file holds C language macros for 'Double Length Floating Point */
-/* Arithmetic'. The macros are based on the paper:                     */
-/* T.J.Dekker, "A floating-point Technique for extending the           */
-/* Available Precision", Number. Math. 18, 224-242 (1971).              */
-/* A Double-Length number is defined by a pair (r,s), of IEEE double    */
-/* precision floating point numbers that satisfy,                      */
-/*                                                                     */
-/*              abs(s) <= abs(r+s)*2**(-53)/(1+2**(-53)).              */
-/*                                                                     */
-/* The computer arithmetic assumed is IEEE double precision in         */
-/* round to nearest mode. All variables in the macros must be of type  */
-/* IEEE double.                                                        */
-/***********************************************************************/
-
-/* CN = 1+2**27 = '41a0000002000000' IEEE double format.  Use it to split a
-   double for better accuracy.  */
-#define  CN   134217729.0
-
-
-/* Exact addition of two single-length floating point numbers, Dekker. */
-/* The macro produces a double-length number (z,zz) that satisfies     */
-/* z+zz = x+y exactly.                                                 */
-
-#define  EADD(x,y,z,zz)  \
-          z=(x)+(y);  zz=(fabs(x)>fabs(y)) ? (((x)-(z))+(y)) : (((y)-(z))+(x));
-
-
-/* Exact subtraction of two single-length floating point numbers, Dekker. */
-/* The macro produces a double-length number (z,zz) that satisfies        */
-/* z+zz = x-y exactly.                                                    */
-
-#define  ESUB(x,y,z,zz)  \
-          z=(x)-(y);  zz=(fabs(x)>fabs(y)) ? (((x)-(z))-(y)) : ((x)-((y)+(z)));
-
-
-#ifdef __FP_FAST_FMA
-# define DLA_FMS(x, y, z) __builtin_fma (x, y, -(z))
-#endif
-
-/* Exact multiplication of two single-length floating point numbers,   */
-/* Veltkamp. The macro produces a double-length number (z,zz) that     */
-/* satisfies z+zz = x*y exactly. p,hx,tx,hy,ty are temporary           */
-/* storage variables of type double.                                   */
-
-#ifdef DLA_FMS
-# define  EMULV(x, y, z, zz, p, hx, tx, hy, ty)          \
-  z = x * y; zz = DLA_FMS (x, y, z);
-#else
-# define  EMULV(x, y, z, zz, p, hx, tx, hy, ty)          \
-  p = CN * (x);  hx = ((x) - p) + p;  tx = (x) - hx; \
-  p = CN * (y);  hy = ((y) - p) + p;  ty = (y) - hy; \
-  z = (x) * (y); zz = (((hx * hy - z) + hx * ty) + tx * hy) + tx * ty;
-#endif
-
-
-/* Exact multiplication of two single-length floating point numbers, Dekker. */
-/* The macro produces a nearly double-length number (z,zz) (see Dekker)      */
-/* that satisfies z+zz = x*y exactly. p,hx,tx,hy,ty,q are temporary          */
-/* storage variables of type double.                                         */
-
-#ifdef DLA_FMS
-# define  MUL12(x,y,z,zz,p,hx,tx,hy,ty,q)        \
-          EMULV(x,y,z,zz,p,hx,tx,hy,ty)
-#else
-# define  MUL12(x,y,z,zz,p,hx,tx,hy,ty,q)        \
-          p=CN*(x);  hx=((x)-p)+p;  tx=(x)-hx; \
-          p=CN*(y);  hy=((y)-p)+p;  ty=(y)-hy; \
-          p=hx*hy;  q=hx*ty+tx*hy; z=p+q;  zz=((p-z)+q)+tx*ty;
-#endif
-
-
-/* Double-length addition, Dekker. The macro produces a double-length   */
-/* number (z,zz) which satisfies approximately   z+zz = x+xx + y+yy.    */
-/* An error bound: (abs(x+xx)+abs(y+yy))*4.94e-32. (x,xx), (y,yy)       */
-/* are assumed to be double-length numbers. r,s are temporary           */
-/* storage variables of type double.                                    */
-
-#define  ADD2(x, xx, y, yy, z, zz, r, s)                   \
-  r = (x) + (y);  s = (fabs (x) > fabs (y)) ?                \
-                     (((((x) - r) + (y)) + (yy)) + (xx)) : \
-                     (((((y) - r) + (x)) + (xx)) + (yy));  \
-  z = r + s;  zz = (r - z) + s;
-
-
-/* Double-length subtraction, Dekker. The macro produces a double-length  */
-/* number (z,zz) which satisfies approximately   z+zz = x+xx - (y+yy).    */
-/* An error bound: (abs(x+xx)+abs(y+yy))*4.94e-32. (x,xx), (y,yy)         */
-/* are assumed to be double-length numbers. r,s are temporary             */
-/* storage variables of type double.                                      */
-
-#define  SUB2(x, xx, y, yy, z, zz, r, s)                   \
-  r = (x) - (y);  s = (fabs (x) > fabs (y)) ?                \
-                     (((((x) - r) - (y)) - (yy)) + (xx)) : \
-                     ((((x) - ((y) + r)) + (xx)) - (yy));  \
-  z = r + s;  zz = (r - z) + s;
-
-
-/* Double-length multiplication, Dekker. The macro produces a double-length  */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)*(y+yy).       */
-/* An error bound: abs((x+xx)*(y+yy))*1.24e-31. (x,xx), (y,yy)               */
-/* are assumed to be double-length numbers. p,hx,tx,hy,ty,q,c,cc are         */
-/* temporary storage variables of type double.                               */
-
-#define  MUL2(x, xx, y, yy, z, zz, p, hx, tx, hy, ty, q, c, cc)  \
-  MUL12 (x, y, c, cc, p, hx, tx, hy, ty, q)                      \
-  cc = ((x) * (yy) + (xx) * (y)) + cc;   z = c + cc;   zz = (c - z) + cc;
-
-
-/* Double-length division, Dekker. The macro produces a double-length        */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)/(y+yy).       */
-/* An error bound: abs((x+xx)/(y+yy))*1.50e-31. (x,xx), (y,yy)               */
-/* are assumed to be double-length numbers. p,hx,tx,hy,ty,q,c,cc,u,uu        */
-/* are temporary storage variables of type double.                           */
-
-#define  DIV2(x,xx,y,yy,z,zz,p,hx,tx,hy,ty,q,c,cc,u,uu)  \
-          c=(x)/(y);   MUL12(c,y,u,uu,p,hx,tx,hy,ty,q)  \
-          cc=(((((x)-u)-uu)+(xx))-c*(yy))/(y);   z=c+cc;   zz=(c-z)+cc;
-
-
-/* Double-length addition, slower but more accurate than ADD2.               */
-/* The macro produces a double-length                                        */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)+(y+yy).       */
-/* An error bound: abs(x+xx + y+yy)*1.50e-31. (x,xx), (y,yy)                 */
-/* are assumed to be double-length numbers. r,rr,s,ss,u,uu,w                 */
-/* are temporary storage variables of type double.                           */
-
-#define  ADD2A(x, xx, y, yy, z, zz, r, rr, s, ss, u, uu, w)                 \
-  r = (x) + (y);                                                            \
-  if (fabs (x) > fabs (y)) { rr = ((x) - r) + (y);  s = (rr + (yy)) + (xx); } \
-  else               { rr = ((y) - r) + (x);  s = (rr + (xx)) + (yy); }     \
-  if (rr != 0.0) {                                                          \
-      z = r + s;  zz = (r - z) + s; }                                       \
-  else {                                                                    \
-      ss = (fabs (xx) > fabs (yy)) ? (((xx) - s) + (yy)) : (((yy) - s) + 
(xx));\
-      u = r + s;                                                            \
-      uu = (fabs (r) > fabs (s))   ? ((r - u) + s)   : ((s - u) + r);         \
-      w = uu + ss;  z = u + w;                                              \
-      zz = (fabs (u) > fabs (w))   ? ((u - z) + w)   : ((w - z) + u); }
-
-
-/* Double-length subtraction, slower but more accurate than SUB2.            */
-/* The macro produces a double-length                                        */
-/* number (z,zz) which satisfies approximately   z+zz = (x+xx)-(y+yy).       */
-/* An error bound: abs(x+xx - (y+yy))*1.50e-31. (x,xx), (y,yy)               */
-/* are assumed to be double-length numbers. r,rr,s,ss,u,uu,w                 */
-/* are temporary storage variables of type double.                           */
-
-#define  SUB2A(x, xx, y, yy, z, zz, r, rr, s, ss, u, uu, w)                   \
-  r = (x) - (y);                                                              \
-  if (fabs (x) > fabs (y)) { rr = ((x) - r) - (y);  s = (rr - (yy)) + (xx); }  
 \
-  else               { rr = (x) - ((y) + r);  s = (rr + (xx)) - (yy); }       \
-  if (rr != 0.0) {                                                            \
-      z = r + s;  zz = (r - z) + s; }                                         \
-  else {                                                                      \
-      ss = (fabs (xx) > fabs (yy)) ? (((xx) - s) - (yy)) : ((xx) - ((yy) + 
s)); \
-      u = r + s;                                                              \
-      uu = (fabs (r) > fabs (s))   ? ((r - u) + s)   : ((s - u) + r);          
 \
-      w = uu + ss;  z = u + w;                                                \
-      zz = (fabs (u) > fabs (w))   ? ((u - z) + w)   : ((w - z) + u); }
diff --git 
a/src/system/libroot/posix/glibc/include/arch/generic/libm-alias-ldouble.h 
b/src/system/libroot/posix/glibc/include/arch/generic/libm-alias-ldouble.h
deleted file mode 100644
index 4d5246fef7..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/generic/libm-alias-ldouble.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Define aliases for libm long double functions.
-   Copyright (C) 2017-2019 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _LIBM_ALIAS_LDOUBLE_H
-#define _LIBM_ALIAS_LDOUBLE_H
-
-#include <bits/floatn.h>
-
-#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
-# define libm_alias_ldouble_other_r_f128(from, to, r)  \
-  weak_alias (from ## l ## r, to ## f128 ## r)
-#else
-# define libm_alias_ldouble_other_r_f128(from, to, r)
-#endif
-
-#if __HAVE_FLOAT64X_LONG_DOUBLE
-# define libm_alias_ldouble_other_r_f64x(from, to, r)  \
-  weak_alias (from ## l ## r, to ## f64x ## r)
-#else
-# define libm_alias_ldouble_other_r_f64x(from, to, r)
-#endif
-
-/* Define _FloatN / _FloatNx aliases for a long double libm function
-   that has internal name FROM ## l ## R and public names TO ## suffix
-   ## R for each suffix of a supported _FloatN / _FloatNx
-   floating-point type with the same format as long double.  */
-#define libm_alias_ldouble_other_r(from, to, r)                \
-  libm_alias_ldouble_other_r_f128 (from, to, r);       \
-  libm_alias_ldouble_other_r_f64x (from, to, r)
-
-/* Likewise, but without the R suffix.  */
-#define libm_alias_ldouble_other(from, to)     \
-  libm_alias_ldouble_other_r (from, to, )
-
-/* Define aliases for a long double libm function that has internal
-   name FROM ## l ## R and public names TO ## suffix ## R for each
-   suffix of a supported floating-point type with the same format as
-   long double.  This should only be used for functions where such
-   public names exist for _FloatN types, not for
-   implementation-namespace exported names (where there is one name
-   per format, not per type) or for obsolescent functions not provided
-   for _FloatN types.  */
-#define libm_alias_ldouble_r(from, to, r)      \
-  weak_alias (from ## l ## r, to ## l ## r);   \
-  libm_alias_ldouble_other_r (from, to, r)
-
-/* Likewise, but without the R suffix.  */
-#define libm_alias_ldouble(from, to) libm_alias_ldouble_r (from, to, )
-
-#endif
diff --git 
a/src/system/libroot/posix/glibc/include/arch/generic/math-underflow.h 
b/src/system/libroot/posix/glibc/include/arch/generic/math-underflow.h
deleted file mode 100644
index c5e5c79768..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/generic/math-underflow.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Check for underflow and force underflow exceptions.
-   Copyright (C) 2015-2018 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _MATH_UNDERFLOW_H
-#define _MATH_UNDERFLOW_H      1
-
-#include <float.h>
-#include <math.h>
-
-#include <math-barriers.h>
-
-#define fabs_tg(x) __MATH_TG ((x), (__typeof (x)) __builtin_fabs, (x))
-
-/* These must be function-like macros because some __MATH_TG
-   implementations macro-expand the function-name argument before
-   concatenating a suffix to it.  */
-#define min_of_type_f() FLT_MIN
-#define min_of_type_() DBL_MIN
-#define min_of_type_l() LDBL_MIN
-#define min_of_type_f128() FLT128_MIN
-
-#define min_of_type(x) __MATH_TG ((x), (__typeof (x)) min_of_type_, ())
-
-/* If X (which is not a NaN) is subnormal, force an underflow
-   exception.  */
-#define math_check_force_underflow(x)                          \
-  do                                                           \
-    {                                                          \
-      __typeof (x) force_underflow_tmp = (x);                  \
-      if (fabs_tg (force_underflow_tmp)                                \
-         < min_of_type (force_underflow_tmp))                  \
-       {                                                       \
-         __typeof (force_underflow_tmp) force_underflow_tmp2   \
-           = force_underflow_tmp * force_underflow_tmp;        \
-         math_force_eval (force_underflow_tmp2);               \
-       }                                                       \
-    }                                                          \
-  while (0)
-/* Likewise, but X is also known to be nonnegative.  */
-#define math_check_force_underflow_nonneg(x)                   \
-  do                                                           \
-    {                                                          \
-      __typeof (x) force_underflow_tmp = (x);                  \
-      if (force_underflow_tmp                                  \
-         < min_of_type (force_underflow_tmp))                  \
-       {                                                       \
-         __typeof (force_underflow_tmp) force_underflow_tmp2   \
-           = force_underflow_tmp * force_underflow_tmp;        \
-         math_force_eval (force_underflow_tmp2);               \
-       }                                                       \
-    }                                                          \
-  while (0)
-/* Likewise, for both real and imaginary parts of a complex
-   result.  */
-#define math_check_force_underflow_complex(x)                          \
-  do                                                                   \
-    {                                                                  \
-      __typeof (x) force_underflow_complex_tmp = (x);                  \
-      math_check_force_underflow (__real__ force_underflow_complex_tmp); \
-      math_check_force_underflow (__imag__ force_underflow_complex_tmp); \
-    }                                                                  \
-  while (0)
-
-#endif /* math-underflow.h */
diff --git a/src/system/libroot/posix/glibc/include/arch/generic/memcopy.h 
b/src/system/libroot/posix/glibc/include/arch/generic/memcopy.h
deleted file mode 100644
index bc5c18d4a5..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/generic/memcopy.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* memcopy.h -- definitions for memory copy functions.  Generic C version.
-   Copyright (C) 1991, 1992, 1993, 1997, 2004 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Torbjorn Granlund (tege@xxxxxxx).
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* The strategy of the memory functions is:
-
-     1. Copy bytes until the destination pointer is aligned.
-
-     2. Copy words in unrolled loops.  If the source and destination
-     are not aligned in the same way, use word memory operations,
-     but shift and merge two read words before writing.
-
-     3. Copy the few remaining bytes.
-
-   This is fast on processors that have at least 10 registers for
-   allocation by GCC, and that can access memory at reg+const in one
-   instruction.
-
-   I made an "exhaustive" test of this memmove when I wrote it,
-   exhaustive in the sense that I tried all alignment and length
-   combinations, with and without overlap.  */
-
-#include <sys/cdefs.h>
-#include <endian.h>
-
-/* The macros defined in this file are:
-
-   BYTE_COPY_FWD(dst_beg_ptr, src_beg_ptr, nbytes_to_copy)
-
-   BYTE_COPY_BWD(dst_end_ptr, src_end_ptr, nbytes_to_copy)
-
-   WORD_COPY_FWD(dst_beg_ptr, src_beg_ptr, nbytes_remaining, nbytes_to_copy)
-
-   WORD_COPY_BWD(dst_end_ptr, src_end_ptr, nbytes_remaining, nbytes_to_copy)
-
-   MERGE(old_word, sh_1, new_word, sh_2)
-     [I fail to understand.  I feel stupid.  --roland]
-*/
-
-/* Type to use for aligned memory operations.
-   This should normally be the biggest type supported by a single load
-   and store.  */
-#define        op_t    unsigned long int
-#define OPSIZ  (sizeof(op_t))
-
-/* Type to use for unaligned operations.  */
-typedef unsigned char byte;
-
-/* Optimal type for storing bytes in registers.  */
-#define        reg_char        char
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
-#endif
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
-#endif
-
-/* Copy exactly NBYTES bytes from SRC_BP to DST_BP,
-   without any assumptions about alignment of the pointers.  */
-#define BYTE_COPY_FWD(dst_bp, src_bp, nbytes)                                \
-  do                                                                         \
-    {                                                                        \
-      size_t __nbytes = (nbytes);                                            \
-      while (__nbytes > 0)                                                   \
-       {                                                                     \
-         byte __x = ((byte *) src_bp)[0];                                    \
-         src_bp += 1;                                                        \
-         __nbytes -= 1;                                                      \
-         ((byte *) dst_bp)[0] = __x;                                         \
-         dst_bp += 1;                                                        \
-       }                                                                     \
-    } while (0)
-
-/* Copy exactly NBYTES_TO_COPY bytes from SRC_END_PTR to DST_END_PTR,
-   beginning at the bytes right before the pointers and continuing towards
-   smaller addresses.  Don't assume anything about alignment of the
-   pointers.  */
-#define BYTE_COPY_BWD(dst_ep, src_ep, nbytes)                                \
-  do                                                                         \
-    {                                                                        \
-      size_t __nbytes = (nbytes);                                            \
-      while (__nbytes > 0)                                                   \
-       {                                                                     \
-         byte __x;                                                           \
-         src_ep -= 1;                                                        \
-         __x = ((byte *) src_ep)[0];                                         \
-         dst_ep -= 1;                                                        \
-         __nbytes -= 1;                                                      \
-         ((byte *) dst_ep)[0] = __x;                                         \
-       }                                                                     \
-    } while (0)
-
-/* Copy *up to* NBYTES bytes from SRC_BP to DST_BP, with
-   the assumption that DST_BP is aligned on an OPSIZ multiple.  If
-   not all bytes could be easily copied, store remaining number of bytes
-   in NBYTES_LEFT, otherwise store 0.  */
-extern void _wordcopy_fwd_aligned (long int, long int, size_t) __THROW;
-extern void _wordcopy_fwd_dest_aligned (long int, long int, size_t) __THROW;
-#define WORD_COPY_FWD(dst_bp, src_bp, nbytes_left, nbytes)                   \
-  do                                                                         \
-    {                                                                        \
-      if (src_bp % OPSIZ == 0)                                               \
-       _wordcopy_fwd_aligned (dst_bp, src_bp, (nbytes) / OPSIZ);             \
-      else                                                                   \
-       _wordcopy_fwd_dest_aligned (dst_bp, src_bp, (nbytes) / OPSIZ);        \
-      src_bp += (nbytes) & -OPSIZ;                                           \
-      dst_bp += (nbytes) & -OPSIZ;                                           \
-      (nbytes_left) = (nbytes) % OPSIZ;                                        
      \
-    } while (0)
-
-/* Copy *up to* NBYTES_TO_COPY bytes from SRC_END_PTR to DST_END_PTR,
-   beginning at the words (of type op_t) right before the pointers and
-   continuing towards smaller addresses.  May take advantage of that
-   DST_END_PTR is aligned on an OPSIZ multiple.  If not all bytes could be
-   easily copied, store remaining number of bytes in NBYTES_REMAINING,
-   otherwise store 0.  */
-extern void _wordcopy_bwd_aligned (long int, long int, size_t) __THROW;
-extern void _wordcopy_bwd_dest_aligned (long int, long int, size_t) __THROW;
-#define WORD_COPY_BWD(dst_ep, src_ep, nbytes_left, nbytes)                   \
-  do                                                                         \
-    {                                                                        \
-      if (src_ep % OPSIZ == 0)                                               \
-       _wordcopy_bwd_aligned (dst_ep, src_ep, (nbytes) / OPSIZ);             \
-      else                                                                   \
-       _wordcopy_bwd_dest_aligned (dst_ep, src_ep, (nbytes) / OPSIZ);        \
-      src_ep -= (nbytes) & -OPSIZ;                                           \
-      dst_ep -= (nbytes) & -OPSIZ;                                           \
-      (nbytes_left) = (nbytes) % OPSIZ;                                        
      \
-    } while (0)
-
-
-/* Threshold value for when to enter the unrolled loops.  */
-#define        OP_T_THRES      16
diff --git 
a/src/system/libroot/posix/glibc/include/arch/generic/nan-high-order-bit.h 
b/src/system/libroot/posix/glibc/include/arch/generic/nan-high-order-bit.h
deleted file mode 100644
index f3a87f0316..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/generic/nan-high-order-bit.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Specify NaN high-order bit conventions.  Generic version.
-   Copyright (C) 2016-2019 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef NAN_HIGH_ORDER_BIT_H
-#define NAN_HIGH_ORDER_BIT_H   1
-
-/* Define this macro to 1 if the high-order bit of a NaN's mantissa is
-   set for signaling NaNs and clear for quiet NaNs, 0 otherwise (the
-   preferred IEEE convention).  */
-#define HIGH_ORDER_BIT_IS_SET_FOR_SNAN 0
-
-#endif /* nan-high-order-bit.h */
diff --git a/src/system/libroot/posix/glibc/include/arch/m68k/bits/mathinline.h 
b/src/system/libroot/posix/glibc/include/arch/m68k/bits/mathinline.h
deleted file mode 100644
index 1cadb9ebb6..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/m68k/bits/mathinline.h
+++ /dev/null
@@ -1,463 +0,0 @@
-/* Definitions of inline math functions implemented by the m68881/2.
-   Copyright (C) 1991,92,93,94,96,97,98,99,2000,2002, 2003, 2004
-     Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifdef __GNUC__
-
-#ifdef __USE_ISOC99
-/* GCC 3.1 and up have builtins that actually can be used.  */
-# if !__GNUC_PREREQ (3,1)
-/* ISO C99 defines some macros to perform unordered comparisons.  The
-   m68k FPU supports this with special opcodes and we should use them.
-   These must not be inline functions since we have to be able to handle
-   all floating-point types.  */
-#  undef isgreater
-#  undef isgreaterequal
-#  undef isless
-#  undef islessequal
-#  undef islessgreater
-#  undef isunordered
-#  define isgreater(x, y)                                      \
-   __extension__                                       \
-   ({ char __result;                                   \
-      __asm__ ("fcmp%.x %2,%1; fsogt %0"               \
-              : "=dm" (__result) : "f" (x), "f" (y));  \
-      __result != 0; })
-
-#  define isgreaterequal(x, y)                         \
-   __extension__                                       \
-   ({ char __result;                                   \
-      __asm__ ("fcmp%.x %2,%1; fsoge %0"               \
-              : "=dm" (__result) : "f" (x), "f" (y));  \
-      __result != 0; })
-
-#  define isless(x, y)                                 \
-   __extension__                                       \
-   ({ char __result;                                   \
-      __asm__ ("fcmp%.x %2,%1; fsolt %0"               \
-              : "=dm" (__result) : "f" (x), "f" (y));  \
-      __result != 0; })
-
-#  define islessequal(x, y)                            \
-   __extension__                                       \
-   ({ char __result;                                   \
-      __asm__ ("fcmp%.x %2,%1; fsole %0"               \
-              : "=dm" (__result) : "f" (x), "f" (y));  \
-      __result != 0; })
-
-#  define islessgreater(x, y)                          \
-   __extension__                                       \
-   ({ char __result;                                   \
-      __asm__ ("fcmp%.x %2,%1; fsogl %0"               \
-              : "=dm" (__result) : "f" (x), "f" (y));  \
-      __result != 0; })
-
-#  define isunordered(x, y)                            \
-   __extension__                                       \
-   ({ char __result;                                   \
-      __asm__ ("fcmp%.x %2,%1; fsun %0"                        \
-              : "=dm" (__result) : "f" (x), "f" (y));  \
-      __result != 0; })
-# endif /* GCC 3.1 */
-#endif
-
-
-#if (!defined __NO_MATH_INLINES && defined __OPTIMIZE__) \
-    || defined __LIBC_INTERNAL_MATH_INLINES
-
-#ifdef __LIBC_INTERNAL_MATH_INLINES
-/* This is used when defining the functions themselves.  Define them with
-   __ names, and with `static inline' instead of `extern inline' so the
-   bodies will always be used, never an external function call.  */
-# define __m81_u(x)            __CONCAT(__,x)
-# define __m81_inline          static __inline
-#else
-# define __m81_u(x)            x
-# ifdef __cplusplus
-#  define __m81_inline         __inline
-# else
-#  define __m81_inline         extern __inline
-# endif
-# define __M81_MATH_INLINES    1
-#endif
-
-/* Define a const math function.  */
-#define __m81_defun(rettype, func, args)                                     \
-  __m81_inline rettype __attribute__((__const__))                            \
-  __m81_u(func) args
-
-/* Define the three variants of a math function that has a direct
-   implementation in the m68k fpu.  FUNC is the name for C (which will be
-   suffixed with f and l for the float and long double version, resp).  OP
-   is the name of the fpu operation (without leading f).  */
-
-#if defined __USE_MISC || defined __USE_ISOC99
-#ifndef NO_LONG_DOUBLE
-# define __inline_mathop(func, op)                     \
-  __inline_mathop1(double, func, op)                   \
-  __inline_mathop1(float, __CONCAT(func,f), op)        \
-  __inline_mathop1(long double, __CONCAT(func,l), op)
-#else
-# define __inline_mathop(func, op)                     \
-  __inline_mathop1(double, func, op)                   \
- __inline_mathop1(float, __CONCAT(func,f), op)
-#endif
-#else
-# define __inline_mathop(func, op)                     \
-  __inline_mathop1(double, func, op)
-#endif
-
-#define __inline_mathop1(float_type,func, op)                                \
-  __m81_defun (float_type, func, (float_type __mathop_x))                    \
-  {                                                                          \
-    float_type __result;                                                     \
-    __asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\
-    return __result;                                                         \
-  }
-
-__inline_mathop(__atan, atan)
-__inline_mathop(__cos, cos)
-__inline_mathop(__sin, sin)
-__inline_mathop(__tan, tan)
-__inline_mathop(__tanh, tanh)
-__inline_mathop(__fabs, abs)
-
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
-__inline_mathop(__rint, int)
-__inline_mathop(__expm1, etoxm1)
-__inline_mathop(__log1p, lognp1)
-#endif
-
-#ifdef __USE_MISC
-__inline_mathop(__significand, getman)
-#endif
-
-#ifdef __USE_ISOC99
-__inline_mathop(__trunc, intrz)
-#endif
-
-#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-
-__inline_mathop(atan, atan)
-__inline_mathop(cos, cos)
-__inline_mathop(sin, sin)
-__inline_mathop(tan, tan)
-__inline_mathop(tanh, tanh)
-
-# if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
-__inline_mathop(rint, int)
-__inline_mathop(expm1, etoxm1)
-__inline_mathop(log1p, lognp1)
-# endif
-
-# ifdef __USE_MISC
-__inline_mathop(significand, getman)
-# endif
-
-# ifdef __USE_ISOC99
-__inline_mathop(trunc, intrz)
-# endif
-
-#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
-
-/* This macro contains the definition for the rest of the inline
-   functions, using FLOAT_TYPE as the domain type and S as the suffix
-   for the function names.  */
-
-#define __inline_functions(float_type, s)                                \
-__m81_defun (float_type, __CONCAT(__floor,s), (float_type __x))          \
-{                                                                        \
-  float_type __result;                                                   \
-  unsigned long int __ctrl_reg;                                                
  \
-  __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));           \
-  /* Set rounding towards negative infinity.  */                         \
-  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */             \
-                     : "dmi" ((__ctrl_reg & ~0x10) | 0x20));             \
-  /* Convert X to an integer, using -Inf rounding.  */                   \
-  __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));   \
-  /* Restore the previous rounding mode.  */                             \
-  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */             \
-                     : "dmi" (__ctrl_reg));                              \
-  return __result;                                                       \
-}                                                                        \
-                                                                         \
-__m81_defun (float_type, __CONCAT(__ceil,s), (float_type __x))           \
-{                                                                        \
-  float_type __result;                                                   \
-  unsigned long int __ctrl_reg;                                                
  \
-  __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));           \
-  /* Set rounding towards positive infinity.  */                         \
-  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */             \
-                     : "dmi" (__ctrl_reg | 0x30));                       \
-  /* Convert X to an integer, using +Inf rounding.  */                   \
-  __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));   \
-  /* Restore the previous rounding mode.  */                             \
-  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */             \
-                     : "dmi" (__ctrl_reg));                              \
-  return __result;                                                       \
-}
-
-__inline_functions(double,)
-#if defined __USE_MISC || defined __USE_ISOC99
-__inline_functions(float,f)
-#ifndef NO_LONG_DOUBLE
-__inline_functions(long double,l)
-#endif
-#endif
-#undef __inline_functions
-
-#ifdef __USE_MISC
-
-# define __inline_functions(float_type, s)                               \
-__m81_defun (int, __CONCAT(__isinf,s), (float_type __value))             \
-{                                                                        \
-  /* There is no branch-condition for infinity,                                
  \
-     so we must extract and examine the condition codes manually.  */    \
-  unsigned long int __fpsr;                                              \
-  __asm("ftst%.x %1\n"                                                   \
-       "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));          \
-  return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;       \
-}                                                                        \
-                                                                         \
-__m81_defun (int, __CONCAT(__finite,s), (float_type __value))            \
-{                                                                        \
-  /* There is no branch-condition for infinity, so we must extract and   \
-     examine the condition codes manually.  */                           \
-  unsigned long int __fpsr;                                              \
-  __asm ("ftst%.x %1\n"                                                        
  \
-        "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));         \
-  return (__fpsr & (3 << 24)) == 0;                                      \
-}                                                                        \
-                                                                         \
-__m81_defun (float_type, __CONCAT(__scalbn,s),                           \
-            (float_type __x, int __n))                                   \
-{                                                                        \
-  float_type __result;                                                   \
-  __asm ("fscale%.l %1, %0" : "=f" (__result) : "dmi" (__n), "0" (__x));  \
-  return __result;                                                       \
-}
-
-__inline_functions(double,)
-__inline_functions(float,f)
-#ifndef NO_LONG_DOUBLE
-__inline_functions(long double,l)
-#endif
-# undef __inline_functions
-
-#endif /* Use misc.  */
-
-#if defined __USE_MISC || defined __USE_XOPEN
-
-# define __inline_functions(float_type, s)                               \
-__m81_defun (int, __CONCAT(__isnan,s), (float_type __value))             \
-{                                                                        \
-  char __result;                                                         \
-  __asm("ftst%.x %1\n"                                                   \
-       "fsun %0" : "=dm" (__result) : "f" (__value));                    \
-  return __result;                                                       \
-}
-
-__inline_functions(double,)
-# ifdef __USE_MISC
-__inline_functions(float,f)
-#ifndef NO_LONG_DOUBLE
-__inline_functions(long double,l)
-#endif
-# endif
-# undef __inline_functions
-
-#endif
-
-#ifdef __USE_ISOC99
-
-# define __inline_functions(float_type, s)                               \
-__m81_defun (int, __CONCAT(__signbit,s), (float_type __value))           \
-{                                                                        \
-  /* There is no branch-condition for the sign bit, so we must extract   \
-     and examine the condition codes manually.  */                       \
-  unsigned long int __fpsr;                                              \
-  __asm ("ftst%.x %1\n"                                                        
  \
-        "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));         \
-  return (__fpsr >> 27) & 1;                                             \
-}                                                                        \
-                                                                         \
-  __m81_defun (float_type, __CONCAT(__scalbln,s),                        \
-            (float_type __x, long int __n))                              \
-{                                                                        \
-  return __CONCAT(__scalbn,s) (__x, __n);                                \
-}                                                                        \
-                                                                         \
-__m81_defun (float_type, __CONCAT(__nearbyint,s), (float_type __x))      \
-{                                                                        \
-  float_type __result;                                                   \
-  unsigned long int __ctrl_reg;                                                
  \
-  __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));           \
-  /* Temporarily disable the inexact exception.  */                      \
-  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */             \
-                     : "dmi" (__ctrl_reg & ~0x200));                     \
-  __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));   \
-  __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs.  */             \
-                     : "dmi" (__ctrl_reg));                              \
-  return __result;                                                       \
-}                                                                        \
-                                                                         \
-__m81_defun (long int, __CONCAT(__lrint,s), (float_type __x))            \
-{                                                                        \
-  long int __result;                                                     \
-  __asm ("fmove%.l %1, %0" : "=dm" (__result) : "f" (__x));              \
-  return __result;                                                       \
-}                                                                        \
-                                                                         \
-__m81_inline float_type                                                        
  \
-__m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y,               \
-                          float_type __z)                                \
-{                                                                        \
-  return (__x * __y) + __z;                                              \
-}
-
-__inline_functions (double,)
-__inline_functions (float,f)
-#ifndef NO_LONG_DOUBLE
-__inline_functions (long double,l)
-#endif
-# undef __inline_functions
-
-#endif /* Use ISO C9x */
-
-#ifdef __USE_GNU
-
-# define __inline_functions(float_type, s)                             \
-__m81_inline void                                                      \
-__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx,      \
-                             float_type *__cosx)                       \
-{                                                                      \
-  __asm ("fsincos%.x %2,%1:%0"                                         \
-        : "=f" (*__sinx), "=f" (*__cosx) : "f" (__x));                 \
-}
-
-__inline_functions (double,)
-__inline_functions (float,f)
-#ifndef NO_LONG_DOUBLE
-__inline_functions (long double,l)
-#endif
-# undef __inline_functions
-
-#endif
-
-#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-
-/* Define inline versions of the user visible functions.  */
-
-/* Note that there must be no whitespace before the argument passed for
-   NAME, to make token pasting work correctly with -traditional.  */
-# define __inline_forward_c(rettype, name, args1, args2)       \
-extern __inline rettype __attribute__((__const__))             \
-  name args1                                                   \
-{                                                              \
-  return __CONCAT(__,name) args2;                              \
-}
-
-# define __inline_forward(rettype, name, args1, args2) \
-extern __inline rettype name args1                     \
-{                                                      \
-  return __CONCAT(__,name) args2;                      \
-}
-
-__inline_forward_c(double,floor, (double __x), (__x))
-__inline_forward_c(double,ceil, (double __x), (__x))
-# ifdef __USE_MISC
-#  ifndef __USE_ISOC99 /* Conflict with macro of same name.  */
-__inline_forward_c(int,isinf, (double __value), (__value))
-#  endif
-__inline_forward_c(int,finite, (double __value), (__value))
-__inline_forward_c(double,scalbn, (double __x, int __n), (__x, __n))
-# endif
-# if defined __USE_MISC || defined __USE_XOPEN
-#  ifndef __USE_ISOC99 /* Conflict with macro of same name.  */
-__inline_forward_c(int,isnan, (double __value), (__value))
-#  endif
-# endif
-# ifdef __USE_ISOC99
-__inline_forward_c(double,scalbln, (double __x, long int __n), (__x, __n))
-__inline_forward_c(double,nearbyint, (double __value), (__value))
-__inline_forward_c(long int,lrint, (double __value), (__value))
-__inline_forward_c(double,fma, (double __x, double __y, double __z),
-                  (__x, __y, __z))
-# endif
-# ifdef __USE_GNU
-__inline_forward(void,sincos, (double __x, double *__sinx, double *__cosx),
-                (__x, __sinx, __cosx))
-# endif
-
-# if defined __USE_MISC || defined __USE_ISOC99
-
-__inline_forward_c(float,floorf, (float __x), (__x))
-__inline_forward_c(float,ceilf, (float __x), (__x))
-#  ifdef __USE_MISC
-__inline_forward_c(int,isinff, (float __value), (__value))
-__inline_forward_c(int,finitef, (float __value), (__value))
-__inline_forward_c(float,scalbnf, (float __x, int __n), (__x, __n))
-__inline_forward_c(int,isnanf, (float __value), (__value))
-#  endif
-# ifdef __USE_ISOC99
-__inline_forward_c(float,scalblnf, (float __x, long int __n), (__x, __n))
-__inline_forward_c(float,nearbyintf, (float __value), (__value))
-__inline_forward_c(long int,lrintf, (float __value), (__value))
-__inline_forward_c(float,fmaf, (float __x, float __y, float __z),
-                  (__x, __y, __z))
-# endif
-# ifdef __USE_GNU
-__inline_forward(void,sincosf, (float __x, float *__sinx, float *__cosx),
-                (__x, __sinx, __cosx))
-# endif
-
-# ifndef NO_LONG_DOUBLE
-__inline_forward_c(long double,floorl, (long double __x), (__x))
-__inline_forward_c(long double,ceill, (long double __x), (__x))
-# ifdef __USE_MISC
-__inline_forward_c(int,isinfl, (long double __value), (__value))
-__inline_forward_c(int,finitel, (long double __value), (__value))
-__inline_forward_c(long double,scalbnl, (long double __x, int __n), (__x, __n))
-__inline_forward_c(int,isnanl, (long double __value), (__value))
-# endif
-# ifdef __USE_ISOC99
-__inline_forward_c(long double,scalblnl, (long double __x, long int __n),
-                  (__x, __n))
-__inline_forward_c(long double,nearbyintl, (long double __value), (__value))
-__inline_forward_c(long int,lrintl, (long double __value), (__value))
-__inline_forward_c(long double,fmal,
-                  (long double __x, long double __y, long double __z),
-                  (__x, __y, __z))
-# endif
-# ifdef __USE_GNU
-__inline_forward(void,sincosl,
-                (long double __x, long double *__sinx, long double *__cosx),
-                (__x, __sinx, __cosx))
-# endif
-# endif
-
-#endif /* Use misc or ISO C99 */
-
-#undef __inline_forward
-#undef __inline_forward_c
-
-#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
-
-#endif
-#endif /* GCC.  */
diff --git a/src/system/libroot/posix/glibc/include/arch/ppc/bits/mathinline.h 
b/src/system/libroot/posix/glibc/include/arch/ppc/bits/mathinline.h
deleted file mode 100644
index e0435516ef..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/ppc/bits/mathinline.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Inline math functions for powerpc.
-   Copyright (C) 1995,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#if defined __GNUC__ && !defined _SOFT_FLOAT
-
-#ifdef __USE_ISOC99
-# if __GNUC_PREREQ (2,96)
-
-#  define isgreater(x, y) __builtin_isgreater (x, y)
-#  define isgreaterequal(x, y) __builtin_isgreaterequal (x, y)
-#  define isless(x, y) __builtin_isless (x, y)
-#  define islessequal(x, y) __builtin_islessequal (x, y)
-#  define islessgreater(x, y) __builtin_islessgreater (x, y)
-#  define isunordered(x, y) __builtin_isunordered (x, y)
-
-# else
-
-#  define __unordered_cmp(x, y) \
-  (__extension__                                                             \
-   ({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);                        
      \
-      unsigned __r;                                                          \
-      __asm__("fcmpu 7,%1,%2 ; mfcr %0" : "=r" (__r) : "f" (__x), "f"(__y)    \
-              : "cr7");  \
-      __r; }))
-
-#  define isgreater(x, y) (__unordered_cmp (x, y) >> 2 & 1)
-#  define isgreaterequal(x, y) ((__unordered_cmp (x, y) & 6) != 0)
-#  define isless(x, y) (__unordered_cmp (x, y) >> 3 & 1)
-#  define islessequal(x, y) ((__unordered_cmp (x, y) & 0xA) != 0)
-#  define islessgreater(x, y) ((__unordered_cmp (x, y) & 0xC) != 0)
-#  define isunordered(x, y) (__unordered_cmp (x, y) & 1)
-
-# endif /* __GNUC_PREREQ (2,97) */
-#endif /* __USE_ISOC99 */
-
-#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-
-#ifndef __extern_always_inline
-# define __MATH_INLINE __inline
-#else
-# define __MATH_INLINE __extern_always_inline
-#endif  /* __cplusplus */
-
-#ifdef __USE_ISOC99
-__MATH_INLINE long int lrint (double __x) __THROW;
-__MATH_INLINE long int
-lrint (double __x) __THROW
-{
-  union {
-    double __d;   
-    int __ll[2];
-  } __u;
-  __asm__ ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x));
-  return __u.__ll[1];
-}
-
-__MATH_INLINE long int lrintf (float __x) __THROW;
-__MATH_INLINE long int
-lrintf (float __x) __THROW
-{
-  union {
-    double __d;
-    int __ll[2];
-  } __u;
-  __asm__ ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x));
-  return __u.__ll[1];
-}
-
-__MATH_INLINE double fdim (double __x, double __y) __THROW;
-__MATH_INLINE double
-fdim (double __x, double __y) __THROW
-{
-  return __x < __y ? 0 : __x - __y;
-}
-
-__MATH_INLINE float fdimf (float __x, float __y) __THROW;
-__MATH_INLINE float
-fdimf (float __x, float __y) __THROW
-{
-  return __x < __y ? 0 : __x - __y;
-}
-
-#endif /* __USE_ISOC99 */
-#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
-#endif /* __GNUC__ && !_SOFT_FLOAT */
diff --git a/src/system/libroot/posix/glibc/include/arch/ppc/fenv_libc.h 
b/src/system/libroot/posix/glibc/include/arch/ppc/fenv_libc.h
deleted file mode 100644
index 7ae12a7d2b..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/ppc/fenv_libc.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Internal libc stuff for floating point environment routines.
-   Copyright (C) 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _FENV_LIBC_H
-#define _FENV_LIBC_H   1
-
-#include <fenv.h>
-
-/* The sticky bits in the FPSCR indicating exceptions have occurred.  */
-#define FPSCR_STICKY_BITS ((FE_ALL_EXCEPT | FE_ALL_INVALID) & ~FE_INVALID)
-
-/* Equivalent to fegetenv, but returns a fenv_t instead of taking a
-   pointer.  */
-#define fegetenv_register() \
-        ({ fenv_t env; asm volatile ("mffs %0" : "=f" (env)); env; })
-
-/* Equivalent to fesetenv, but takes a fenv_t instead of a pointer.  */
-#define fesetenv_register(env) \
-        ({ double d = (env); asm volatile ("mtfsf 0xff,%0" : : "f" (d)); })
-
-/* This very handy macro:
-   - Sets the rounding mode to 'round to nearest';
-   - Sets the processor into IEEE mode; and
-   - Prevents exceptions from being raised for inexact results.
-   These things happen to be exactly what you need for typical elementary
-   functions.  */
-#define relax_fenv_state() asm ("mtfsfi 7,0")
-
-/* Set/clear a particular FPSCR bit (for instance,
-   reset_fpscr_bit(FPSCR_VE);
-   prevents INVALID exceptions from being raised).  */
-#define set_fpscr_bit(x) asm volatile ("mtfsb1 %0" : : "i"(x))
-#define reset_fpscr_bit(x) asm volatile ("mtfsb0 %0" : : "i"(x))
-
-typedef union
-{
-  fenv_t fenv;
-  unsigned int l[2];
-} fenv_union_t;
-
-/* Definitions of all the FPSCR bit numbers */
-enum {
-  FPSCR_FX = 0,    /* exception summary */
-  FPSCR_FEX,       /* enabled exception summary */
-  FPSCR_VX,        /* invalid operation summary */
-  FPSCR_OX,        /* overflow */
-  FPSCR_UX,        /* underflow */
-  FPSCR_ZX,        /* zero divide */
-  FPSCR_XX,        /* inexact */
-  FPSCR_VXSNAN,    /* invalid operation for SNaN */
-  FPSCR_VXISI,     /* invalid operation for Inf-Inf */
-  FPSCR_VXIDI,     /* invalid operation for Inf/Inf */
-  FPSCR_VXZDZ,     /* invalid operation for 0/0 */
-  FPSCR_VXIMZ,     /* invalid operation for Inf*0 */
-  FPSCR_VXVC,      /* invalid operation for invalid compare */
-  FPSCR_FR,        /* fraction rounded [fraction was incremented by round] */
-  FPSCR_FI,        /* fraction inexact */
-  FPSCR_FPRF_C,    /* result class descriptor */
-  FPSCR_FPRF_FL,   /* result less than (usually, less than 0) */
-  FPSCR_FPRF_FG,   /* result greater than */
-  FPSCR_FPRF_FE,   /* result equal to */
-  FPSCR_FPRF_FU,   /* result unordered */
-  FPSCR_20,        /* reserved */
-  FPSCR_VXSOFT,    /* invalid operation set by software */
-  FPSCR_VXSQRT,    /* invalid operation for square root */
-  FPSCR_VXCVI,     /* invalid operation for invalid integer convert */
-  FPSCR_VE,        /* invalid operation exception enable */
-  FPSCR_OE,        /* overflow exception enable */
-  FPSCR_UE,        /* underflow exception enable */
-  FPSCR_ZE,        /* zero divide exception enable */
-  FPSCR_XE,        /* inexact exception enable */
-  FPSCR_NI         /* non-IEEE mode (typically, no denormalised numbers) */
-  /* the remaining two least-significant bits keep the rounding mode */
-};
-
-/* This operation (i) sets the appropriate FPSCR bits for its
-   parameter, (ii) converts SNaN to the corresponding NaN, and (iii)
-   otherwise passes its parameter through unchanged (in particular, -0
-   and +0 stay as they were).  The `obvious' way to do this is optimised
-   out by gcc.  */
-#define f_wash(x) \
-   ({ double d; asm volatile ("fmul %0,%1,%2" \
-                             : "=f"(d) \
-                             : "f" (x), "f"((float)1.0)); d; })
-#define f_washf(x) \
-   ({ float f; asm volatile ("fmuls %0,%1,%2" \
-                            : "=f"(f) \
-                            : "f" (x), "f"((float)1.0)); f; })

-#endif /* fenv_libc.h */
diff --git a/src/system/libroot/posix/glibc/include/arch/riscv64/bits/floatn.h 
b/src/system/libroot/posix/glibc/include/arch/riscv64/bits/floatn.h
deleted file mode 100644
index fb31be29e6..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/riscv64/bits/floatn.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
-   Copyright (C) 2017-2019 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_FLOATN_H
-#define _BITS_FLOATN_H
-
-#include <features.h>
-#include <bits/long-double.h>
-
-/* Defined to 1 if the current compiler invocation provides a
-   floating-point type with the IEEE 754 binary128 format, and this
-   glibc includes corresponding *f128 interfaces for it.  */
-#ifndef __NO_LONG_DOUBLE_MATH
-# define __HAVE_FLOAT128 1
-#else
-/* glibc does not support _Float128 for platforms where long double is
-   normally binary128 when building with long double as binary64.
-   GCC's default for supported scalar modes does not support it either
-   in that case.  */
-# define __HAVE_FLOAT128 0
-#endif
-
-/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
-   from the default float, double and long double types in this glibc.  */
-#define __HAVE_DISTINCT_FLOAT128 0
-
-/* Defined to 1 if the current compiler invocation provides a
-   floating-point type with the right format for _Float64x, and this
-   glibc includes corresponding *f64x interfaces for it.  */
-#define __HAVE_FLOAT64X __HAVE_FLOAT128
-
-/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
-   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
-   the format of _Float128, which must be different from that of long
-   double.  */
-#define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128
-
-#ifndef __ASSEMBLER__
-
-/* Defined to concatenate the literal suffix to be used with _Float128
-   types, if __HAVE_FLOAT128 is 1. */
-# if __HAVE_FLOAT128
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-/* The literal suffix f128 exists only since GCC 7.0.  */
-#   define __f128(x) x##l
-#  else
-#   define __f128(x) x##f128
-#  endif
-# endif
-
-/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.  */
-# if __HAVE_FLOAT128
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   define __CFLOAT128 _Complex long double
-#  else
-#   define __CFLOAT128 _Complex _Float128
-#  endif
-# endif
-
-/* The remaining of this file provides support for older compilers.  */
-# if __HAVE_FLOAT128
-
-/* The type _Float128 exists only since GCC 7.0.  */
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef long double _Float128;
-#  endif
-
-/* Various built-in functions do not exist before GCC 7.0.  */
-#  if !__GNUC_PREREQ (7, 0)
-#   define __builtin_huge_valf128() (__builtin_huge_vall ())
-#   define __builtin_inff128() (__builtin_infl ())
-#   define __builtin_nanf128(x) (__builtin_nanl (x))
-#   define __builtin_nansf128(x) (__builtin_nansl (x))
-#  endif
-
-# endif
-
-#endif /* !__ASSEMBLER__.  */
-
-#include <bits/floatn-common.h>
-
-#endif /* _BITS_FLOATN_H */
diff --git 
a/src/system/libroot/posix/glibc/include/arch/riscv64/bits/mathinline.h 
b/src/system/libroot/posix/glibc/include/arch/riscv64/bits/mathinline.h
deleted file mode 100644
index b9b3f6efab..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/riscv64/bits/mathinline.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _MATH_H
-# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-#endif
-
-#define __NTH(fct)    __attribute__ ((__nothrow__)) fct
-
-#ifndef __extern_always_inline
-# define __MATH_INLINE __inline
-#else
-# define __MATH_INLINE __extern_always_inline
-#endif
-
-#if defined __USE_ISOC99
-
-#  define isgreater(x, y) __builtin_isgreater (x, y)
-#  define isgreaterequal(x, y) __builtin_isgreaterequal (x, y)
-#  define isless(x, y) __builtin_isless (x, y)
-#  define islessequal(x, y) __builtin_islessequal (x, y)
-#  define islessgreater(x, y) __builtin_islessgreater (x, y)
-#  define isunordered(x, y) __builtin_isunordered (x, y)
-
-#endif
diff --git a/src/system/libroot/posix/glibc/include/arch/sparc/bits/floatn.h 
b/src/system/libroot/posix/glibc/include/arch/sparc/bits/floatn.h
deleted file mode 100644
index fb31be29e6..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/sparc/bits/floatn.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
-   Copyright (C) 2017-2019 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_FLOATN_H
-#define _BITS_FLOATN_H
-
-#include <features.h>
-#include <bits/long-double.h>
-
-/* Defined to 1 if the current compiler invocation provides a
-   floating-point type with the IEEE 754 binary128 format, and this
-   glibc includes corresponding *f128 interfaces for it.  */
-#ifndef __NO_LONG_DOUBLE_MATH
-# define __HAVE_FLOAT128 1
-#else
-/* glibc does not support _Float128 for platforms where long double is
-   normally binary128 when building with long double as binary64.
-   GCC's default for supported scalar modes does not support it either
-   in that case.  */
-# define __HAVE_FLOAT128 0
-#endif
-
-/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
-   from the default float, double and long double types in this glibc.  */
-#define __HAVE_DISTINCT_FLOAT128 0
-
-/* Defined to 1 if the current compiler invocation provides a
-   floating-point type with the right format for _Float64x, and this
-   glibc includes corresponding *f64x interfaces for it.  */
-#define __HAVE_FLOAT64X __HAVE_FLOAT128
-
-/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
-   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
-   the format of _Float128, which must be different from that of long
-   double.  */
-#define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128
-
-#ifndef __ASSEMBLER__
-
-/* Defined to concatenate the literal suffix to be used with _Float128
-   types, if __HAVE_FLOAT128 is 1. */
-# if __HAVE_FLOAT128
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-/* The literal suffix f128 exists only since GCC 7.0.  */
-#   define __f128(x) x##l
-#  else
-#   define __f128(x) x##f128
-#  endif
-# endif
-
-/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.  */
-# if __HAVE_FLOAT128
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-#   define __CFLOAT128 _Complex long double
-#  else
-#   define __CFLOAT128 _Complex _Float128
-#  endif
-# endif
-
-/* The remaining of this file provides support for older compilers.  */
-# if __HAVE_FLOAT128
-
-/* The type _Float128 exists only since GCC 7.0.  */
-#  if !__GNUC_PREREQ (7, 0) || defined __cplusplus
-typedef long double _Float128;
-#  endif
-
-/* Various built-in functions do not exist before GCC 7.0.  */
-#  if !__GNUC_PREREQ (7, 0)
-#   define __builtin_huge_valf128() (__builtin_huge_vall ())
-#   define __builtin_inff128() (__builtin_infl ())
-#   define __builtin_nanf128(x) (__builtin_nanl (x))
-#   define __builtin_nansf128(x) (__builtin_nansl (x))
-#  endif
-
-# endif
-
-#endif /* !__ASSEMBLER__.  */
-
-#include <bits/floatn-common.h>
-
-#endif /* _BITS_FLOATN_H */
diff --git 
a/src/system/libroot/posix/glibc/include/arch/sparc/bits/mathinline.h 
b/src/system/libroot/posix/glibc/include/arch/sparc/bits/mathinline.h
deleted file mode 100644
index b9b3f6efab..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/sparc/bits/mathinline.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _MATH_H
-# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-#endif
-
-#define __NTH(fct)    __attribute__ ((__nothrow__)) fct
-
-#ifndef __extern_always_inline
-# define __MATH_INLINE __inline
-#else
-# define __MATH_INLINE __extern_always_inline
-#endif
-
-#if defined __USE_ISOC99
-
-#  define isgreater(x, y) __builtin_isgreater (x, y)
-#  define isgreaterequal(x, y) __builtin_isgreaterequal (x, y)
-#  define isless(x, y) __builtin_isless (x, y)
-#  define islessequal(x, y) __builtin_islessequal (x, y)
-#  define islessgreater(x, y) __builtin_islessgreater (x, y)
-#  define isunordered(x, y) __builtin_isunordered (x, y)
-
-#endif
diff --git a/src/system/libroot/posix/glibc/include/arch/sparc/fenv_private.h 
b/src/system/libroot/posix/glibc/include/arch/sparc/fenv_private.h
deleted file mode 100644
index 634ca6668d..0000000000
--- a/src/system/libroot/posix/glibc/include/arch/sparc/fenv_private.h
+++ /dev/null
@@ -1,172 +0,0 @@
-#ifndef FENV_PRIVATE_H
-#define FENV_PRIVATE_H 1
-
-#include <fenv.h>
-
-static __always_inline void
-libc_fesetround (int r)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  etmp = (etmp & ~__FE_ROUND_MASK) | (r);
-  __fenv_ldfsr(etmp);
-}
-
-static __always_inline void
-libc_feholdexcept_setround (fenv_t *e, int r)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  *(e) = etmp;
-  etmp = etmp & ~((0x1f << 23) | FE_ALL_EXCEPT);
-  etmp = (etmp & ~__FE_ROUND_MASK) | (r);
-  __fenv_ldfsr(etmp);
-}
-
-static __always_inline int
-libc_fetestexcept (int e)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  return etmp & (e) & FE_ALL_EXCEPT;
-}
-
-static __always_inline void
-libc_fesetenv (fenv_t *e)
-{
-  __fenv_ldfsr(*e);
-}
-
-static __always_inline int
-libc_feupdateenv_test (fenv_t *e, int ex)
-{
-  fenv_t etmp;
-
-  __fenv_stfsr(etmp);
-  etmp &= FE_ALL_EXCEPT;
-
-  __fenv_ldfsr(*e);
-
-  __feraiseexcept (etmp);
-
-  return etmp & ex;
-}
-
-static __always_inline void
-libc_feupdateenv (fenv_t *e)
-{
-  libc_feupdateenv_test (e, 0);
-}
-
-static __always_inline void
-libc_feholdsetround (fenv_t *e, int r)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  *(e) = etmp;
-  etmp = (etmp & ~__FE_ROUND_MASK) | (r);
-  __fenv_ldfsr(etmp);
-}
-
-static __always_inline void
-libc_feresetround (fenv_t *e)
-{
-  fenv_t etmp;
-  __fenv_stfsr(etmp);
-  etmp = (etmp & ~__FE_ROUND_MASK) | (*e & __FE_ROUND_MASK);
-  __fenv_ldfsr(etmp);
-}
-
-#define libc_feholdexceptf             libc_feholdexcept
-#define libc_fesetroundf               libc_fesetround
-#define libc_feholdexcept_setroundf    libc_feholdexcept_setround
-#define libc_fetestexceptf             libc_fetestexcept
-#define libc_fesetenvf                 libc_fesetenv
-#define libc_feupdateenv_testf         libc_feupdateenv_test
-#define libc_feupdateenvf              libc_feupdateenv
-#define libc_feholdsetroundf           libc_feholdsetround
-#define libc_feresetroundf             libc_feresetround
-#define libc_feholdexcept              libc_feholdexcept
-#define libc_fesetround                        libc_fesetround
-#define libc_feholdexcept_setround     libc_feholdexcept_setround
-#define libc_fetestexcept              libc_fetestexcept
-#define libc_fesetenv                  libc_fesetenv
-#define libc_feupdateenv_test          libc_feupdateenv_test
-#define libc_feupdateenv               libc_feupdateenv
-#define libc_feholdsetround            libc_feholdsetround
-#define libc_feresetround              libc_feresetround
-#define libc_feholdexceptl             libc_feholdexcept
-#define libc_fesetroundl               libc_fesetround
-#define libc_feholdexcept_setroundl    libc_feholdexcept_setround
-#define libc_fetestexceptl             libc_fetestexcept
-#define libc_fesetenvl                 libc_fesetenv
-#define libc_feupdateenv_testl         libc_feupdateenv_test
-#define libc_feupdateenvl              libc_feupdateenv
-#define libc_feholdsetroundl           libc_feholdsetround
-#define libc_feresetroundl             libc_feresetround
-
-/* We have support for rounding mode context.  */
-#define HAVE_RM_CTX 1
-
-static __always_inline void
-libc_feholdexcept_setround_sparc_ctx (struct rm_ctx *ctx, int round)
-{
-  fenv_t new;
-
-  __fenv_stfsr(ctx->env);
-  new = ctx->env & ~((0x1f << 23) | FE_ALL_EXCEPT);
-  new = (new & ~__FE_ROUND_MASK) | round;
-  if (__glibc_unlikely (new != ctx->env))
-    {
-      __fenv_ldfsr(new);
-      ctx->updated_status = true;
-    }
-  else
-    ctx->updated_status = false;
-}
-
-static __always_inline void
-libc_fesetenv_sparc_ctx (struct rm_ctx *ctx)
-{
-  libc_fesetenv(&ctx->env);
-}
-
-static __always_inline void
-libc_feupdateenv_sparc_ctx (struct rm_ctx *ctx)
-{
-  if (__glibc_unlikely (ctx->updated_status))
-    libc_feupdateenv_test (&ctx->env, 0);
-}
-

[ *** diff truncated: 4118 lines dropped *** ]




Other related posts:

  • » [haiku-commits] haiku: hrev53730 - in src/system/libroot/posix/glibc: include/arch/x86/bits string/bits include/arch/x86_64/bits include/arch/generic include/arch/m68k/bits - waddlesplash