summaryrefslogtreecommitdiff
path: root/toolchain/glibc
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2013-10-26 21:21:46 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2013-10-26 21:21:46 +0200
commit132384e7ff9490ba20648f0189edd23b8e8fcbc1 (patch)
tree48fb42e61789ca2ce7adeb0bd867974183ca1ede /toolchain/glibc
parent8ef18aa9444d7a531b3cf390cd559796569254e1 (diff)
fix sparc32 toolchain building with glibc, see http://sourceware.org/bugzilla/show_bug.cgi?id=15985
Diffstat (limited to 'toolchain/glibc')
-rw-r--r--toolchain/glibc/patches/sparc-fpu-workaround.patch84
1 files changed, 84 insertions, 0 deletions
diff --git a/toolchain/glibc/patches/sparc-fpu-workaround.patch b/toolchain/glibc/patches/sparc-fpu-workaround.patch
new file mode 100644
index 000000000..d90f8c525
--- /dev/null
+++ b/toolchain/glibc/patches/sparc-fpu-workaround.patch
@@ -0,0 +1,84 @@
+diff -Nur glibc-2.18.orig/sysdeps/sparc/sparc32/fpu/s_fdimf.S glibc-2.18/sysdeps/sparc/sparc32/fpu/s_fdimf.S
+--- glibc-2.18.orig/sysdeps/sparc/sparc32/fpu/s_fdimf.S 2013-08-11 00:52:55.000000000 +0200
++++ glibc-2.18/sysdeps/sparc/sparc32/fpu/s_fdimf.S 1970-01-01 01:00:00.000000000 +0100
+@@ -1,35 +0,0 @@
+-/* Compute positive difference, sparc 32-bit.
+- Copyright (C) 2013 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+- Contributed by David S. Miller <davem@davemloft.net>.
+-
+- 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/>. */
+-
+-#include <sysdep.h>
+-
+-ENTRY(__fdimf)
+- st %o0, [%sp + 72]
+- st %o1, [%sp + 76]
+- ld [%sp + 72], %f0
+- ld [%sp + 76], %f1
+- fcmps %f0, %f1
+- fbug 1f
+- st %g0, [%sp + 72]
+- ld [%sp + 72], %f0
+- fnegs %f0, %f1
+-1: retl
+- fsubs %f0, %f1, %f0
+-END(__fdimf)
+-weak_alias (__fdimf, fdimf)
+diff -Nur glibc-2.18.orig/sysdeps/sparc/sparc32/fpu/s_fdim.S glibc-2.18/sysdeps/sparc/sparc32/fpu/s_fdim.S
+--- glibc-2.18.orig/sysdeps/sparc/sparc32/fpu/s_fdim.S 2013-08-11 00:52:55.000000000 +0200
++++ glibc-2.18/sysdeps/sparc/sparc32/fpu/s_fdim.S 1970-01-01 01:00:00.000000000 +0100
+@@ -1,41 +0,0 @@
+-/* Compute positive difference, sparc 32-bit.
+- Copyright (C) 2013 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+- Contributed by David S. Miller <davem@davemloft.net>.
+-
+- 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/>. */
+-
+-#include <sysdep.h>
+-#include <math_ldbl_opt.h>
+-
+-ENTRY(__fdim)
+- std %o0, [%sp + 72]
+- std %o2, [%sp + 80]
+- ldd [%sp + 72], %f0
+- ldd [%sp + 80], %f2
+- fcmpd %f0, %f2
+- st %g0, [%sp + 72]
+- fbug 1f
+- st %g0, [%sp + 76]
+- ldd [%sp + 72], %f0
+- fnegd %f0, %f2
+-1: retl
+- fsubd %f0, %f2, %f0
+-END(__fdim)
+-weak_alias (__fdim, fdim)
+-
+-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+-compat_symbol (libm, __fdim, fdiml, GLIBC_2_1);
+-#endif