diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2013-10-27 12:50:06 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2013-10-27 12:50:06 +0100 |
commit | c975ab62fbe7f7e9141a24cc033fb8f0e52ca823 (patch) | |
tree | 064cc48f28728c37a8af6b62e7ae3696f920d13a | |
parent | 132384e7ff9490ba20648f0189edd23b8e8fcbc1 (diff) |
fix eglibc qemu-sparc builds, -Os does not work for this
-rw-r--r-- | toolchain/eglibc/Makefile | 12 | ||||
-rw-r--r-- | toolchain/eglibc/patches/sparc-libm.patch | 84 |
2 files changed, 93 insertions, 3 deletions
diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile index b9be77579..12f193c3b 100644 --- a/toolchain/eglibc/Makefile +++ b/toolchain/eglibc/Makefile @@ -3,12 +3,18 @@ include $(TOPDIR)/rules.mk include ../rules.mk -include Makefile.inc -include ${TOPDIR}/mk/buildhlp.mk -# ssp partially supported +# eglibc does not compile with Os on sparc +ifeq ($(ADK_LINUX_SPARC),y) +TARGET_CFLAGS_LIBC:= $(subst Os,O2,$(TARGET_CFLAGS)) +endif + +# ssp not supported TARGET_CFLAGS_LIBC:= $(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC)) +include Makefile.inc +include ${TOPDIR}/mk/buildhlp.mk + ifeq ($(ADK_TARGET_NO_FPU),y) EGLIBC_CONFOPTS+= --without-fp endif diff --git a/toolchain/eglibc/patches/sparc-libm.patch b/toolchain/eglibc/patches/sparc-libm.patch new file mode 100644 index 000000000..fc8b4cc36 --- /dev/null +++ b/toolchain/eglibc/patches/sparc-libm.patch @@ -0,0 +1,84 @@ +diff -Nur eglibc-2.18.orig/libc/sysdeps/sparc/sparc32/fpu/s_fdimf.S eglibc-2.18/libc/sysdeps/sparc/sparc32/fpu/s_fdimf.S +--- eglibc-2.18.orig/libc/sysdeps/sparc/sparc32/fpu/s_fdimf.S 2013-09-13 10:20:20.000000000 +0200 ++++ eglibc-2.18/libc/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 eglibc-2.18.orig/libc/sysdeps/sparc/sparc32/fpu/s_fdim.S eglibc-2.18/libc/sysdeps/sparc/sparc32/fpu/s_fdim.S +--- eglibc-2.18.orig/libc/sysdeps/sparc/sparc32/fpu/s_fdim.S 2013-09-13 10:20:20.000000000 +0200 ++++ eglibc-2.18/libc/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 |