From 132384e7ff9490ba20648f0189edd23b8e8fcbc1 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 26 Oct 2013 21:21:46 +0200 Subject: fix sparc32 toolchain building with glibc, see http://sourceware.org/bugzilla/show_bug.cgi?id=15985 --- toolchain/glibc/patches/sparc-fpu-workaround.patch | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 toolchain/glibc/patches/sparc-fpu-workaround.patch (limited to 'toolchain/glibc') 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 . +- +- 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 +- . */ +- +-#include +- +-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 . +- +- 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 +- . */ +- +-#include +-#include +- +-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 -- cgit v1.2.3