[oe-commits] org.oe.dev packages/glibc/glibc_2.5.bb : Add a new patch for the powerpc targets with softfloat

ifaistos commit openembedded-commits at lists.openembedded.org
Tue Nov 20 06:36:48 UTC 2007


packages/glibc/glibc_2.5.bb : Add a new patch for the powerpc targets with softfloat 
support that handles a case of strong alias for two (soft) float point functions. 
Original patch provided by Hiroki Kaminaga kaminaga at sm dot sony dot co dot jp

Author: ifaistos at openembedded.org
Branch: org.openembedded.dev
Revision: 9e8440e09dae8ceed07468d5f6a230087ef8d736
ViewMTN: http://monotone.openembedded.org/revision/info/9e8440e09dae8ceed07468d5f6a230087ef8d736
Files:
1
packages/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch
packages/glibc/glibc_2.5.bb
mtn:execute
true
Diffs:

#
# mt diff -r7b058f143b4eee35a2bd1d8ede964b31eca43bb4 -r9e8440e09dae8ceed07468d5f6a230087ef8d736
#
# 
# 
# add_file "packages/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch"
#  content [54bdbf645f0c1d39cf61179e3015cfa7fd04ed2d]
# 
# patch "packages/glibc/glibc_2.5.bb"
#  from [8ac7425ca9ce3afc7815704e7a491f9181155746]
#    to [e6741570d99856aaaa4cd9d8b305974d4969b497]
# 
#   set "packages/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch"
#  attr "mtn:execute"
# value "true"
# 
============================================================
--- packages/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch	54bdbf645f0c1d39cf61179e3015cfa7fd04ed2d
+++ packages/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch	54bdbf645f0c1d39cf61179e3015cfa7fd04ed2d
@@ -0,0 +1,205 @@
+Index: glibc-2.5-tls-ppc-04/soft-fp/eqdf2.c
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/eqdf2.c
++++ glibc-2.5-tls-ppc-04/soft-fp/eqdf2.c
+@@ -48,4 +48,3 @@ int __eqdf2(DFtype a, DFtype b)
+   return r;
+ }
+ 
+-strong_alias(__eqdf2, __nedf2);
+Index: glibc-2.5-tls-ppc-04/soft-fp/gedf2.c
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/gedf2.c
++++ glibc-2.5-tls-ppc-04/soft-fp/gedf2.c
+@@ -47,5 +47,3 @@ int __gedf2(DFtype a, DFtype b)
+ 
+   return r;
+ }
+-
+-strong_alias(__gedf2, __gtdf2);
+Index: glibc-2.5-tls-ppc-04/soft-fp/gtdf2.c
+===================================================================
+--- /dev/null
++++ glibc-2.5-tls-ppc-04/soft-fp/gtdf2.c
+@@ -0,0 +1,49 @@
++/* Software floating-point emulation.
++   Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
++   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Richard Henderson (rth at cygnus.com) and
++		  Jakub Jelinek (jj at ultra.linux.cz).
++
++   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.
++
++   In addition to the permissions in the GNU Lesser General Public
++   License, the Free Software Foundation gives you unlimited
++   permission to link the compiled version of this file into
++   combinations with other programs, and to distribute those
++   combinations without any restriction coming from the use of this
++   file.  (The Lesser General Public License restrictions do apply in
++   other respects; for example, they cover modification of the file,
++   and distribution when not linked into a combine executable.)
++
++   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, 51 Franklin Street, Fifth Floor, Boston,
++   MA 02110-1301, USA.  */
++
++#include "soft-fp.h"
++#include "double.h"
++
++int __gtdf2(DFtype a, DFtype b)
++{
++  FP_DECL_EX;
++  FP_DECL_D(A); FP_DECL_D(B);
++  int r;
++
++  FP_UNPACK_RAW_D(A, a);
++  FP_UNPACK_RAW_D(B, b);
++  FP_CMP_D(r, A, B, -2);
++  if (r == -2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
++    FP_SET_EXCEPTION(FP_EX_INVALID);
++  FP_HANDLE_EXCEPTIONS;
++
++  return r;
++}
+Index: glibc-2.5-tls-ppc-04/soft-fp/ledf2.c
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/ledf2.c
++++ glibc-2.5-tls-ppc-04/soft-fp/ledf2.c
+@@ -48,4 +48,3 @@ int __ledf2(DFtype a, DFtype b)
+   return r;
+ }
+ 
+-strong_alias(__ledf2, __ltdf2);
+Index: glibc-2.5-tls-ppc-04/soft-fp/ltdf2.c
+===================================================================
+--- /dev/null
++++ glibc-2.5-tls-ppc-04/soft-fp/ltdf2.c
+@@ -0,0 +1,49 @@
++/* Software floating-point emulation.
++   Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
++   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Richard Henderson (rth at cygnus.com) and
++		  Jakub Jelinek (jj at ultra.linux.cz).
++
++   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.
++
++   In addition to the permissions in the GNU Lesser General Public
++   License, the Free Software Foundation gives you unlimited
++   permission to link the compiled version of this file into
++   combinations with other programs, and to distribute those
++   combinations without any restriction coming from the use of this
++   file.  (The Lesser General Public License restrictions do apply in
++   other respects; for example, they cover modification of the file,
++   and distribution when not linked into a combine executable.)
++
++   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, 51 Franklin Street, Fifth Floor, Boston,
++   MA 02110-1301, USA.  */
++
++#include "soft-fp.h"
++#include "double.h"
++
++int __ltdf2(DFtype a, DFtype b)
++{
++  FP_DECL_EX;
++  FP_DECL_D(A); FP_DECL_D(B);
++  int r;
++
++  FP_UNPACK_RAW_D(A, a);
++  FP_UNPACK_RAW_D(B, b);
++  FP_CMP_D(r, A, B, 2);
++  if (r == 2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
++    FP_SET_EXCEPTION(FP_EX_INVALID);
++  FP_HANDLE_EXCEPTIONS;
++
++  return r;
++}
+Index: glibc-2.5-tls-ppc-04/soft-fp/nedf2.c
+===================================================================
+--- /dev/null
++++ glibc-2.5-tls-ppc-04/soft-fp/nedf2.c
+@@ -0,0 +1,49 @@
++/* Software floating-point emulation.
++   Return 0 iff a == b, 1 otherwise
++   Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Richard Henderson (rth at cygnus.com) and
++		  Jakub Jelinek (jj at ultra.linux.cz).
++
++   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.
++
++   In addition to the permissions in the GNU Lesser General Public
++   License, the Free Software Foundation gives you unlimited
++   permission to link the compiled version of this file into
++   combinations with other programs, and to distribute those
++   combinations without any restriction coming from the use of this
++   file.  (The Lesser General Public License restrictions do apply in
++   other respects; for example, they cover modification of the file,
++   and distribution when not linked into a combine executable.)
++
++   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, 51 Franklin Street, Fifth Floor, Boston,
++   MA 02110-1301, USA.  */
++
++#include "soft-fp.h"
++#include "double.h"
++
++int __nedf2(DFtype a, DFtype b)
++{
++  FP_DECL_EX;
++  FP_DECL_D(A); FP_DECL_D(B);
++  int r;
++
++  FP_UNPACK_RAW_D(A, a);
++  FP_UNPACK_RAW_D(B, b);
++  FP_CMP_EQ_D(r, A, B);
++  if (r && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
++    FP_SET_EXCEPTION(FP_EX_INVALID);
++  FP_HANDLE_EXCEPTIONS;
++
++  return r;
++}
+Index: glibc-2.5-tls-ppc-04/soft-fp/Makefile
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/Makefile
++++ glibc-2.5-tls-ppc-04/soft-fp/Makefile
+@@ -27,8 +27,8 @@ gcc-single-routines := negsf2 addsf3 sub
+ 	fixunssfdi floatdisf sqrtsf2 floatunsisf floatundisf \
+ 	fmasf4
+ 
+-gcc-double-routines := negdf2 adddf3 subdf3 muldf3 divdf3 eqdf2 \
+-	ledf2 gedf2 unorddf2 fixdfsi fixunsdfsi floatsidf fixdfdi        \
++gcc-double-routines := negdf2 adddf3 subdf3 muldf3 divdf3 eqdf2 nedf2 \
++	ledf2 ltdf2 gedf2 gtdf2 unorddf2 fixdfsi fixunsdfsi floatsidf fixdfdi \
+ 	fixunsdfdi floatdidf extendsfdf2 truncdfsf2 sqrtdf2 floatunsidf \
+ 	floatundidf fmadf4
+ 
============================================================
--- packages/glibc/glibc_2.5.bb	8ac7425ca9ce3afc7815704e7a491f9181155746
+++ packages/glibc/glibc_2.5.bb	e6741570d99856aaaa4cd9d8b305974d4969b497
@@ -5,7 +5,7 @@ RPROVIDES_${PN}-dev = "libc6-dev"
 PACKAGES_DYNAMIC = "libc6*"
 RPROVIDES_${PN}-dev = "libc6-dev"
 
-PR = "r7"
+PR = "r8"
 
 # the -isystem in bitbake.conf screws up glibc do_stage
 BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
@@ -74,7 +74,8 @@ SRC_URI_append_powerpc= " file://ppc-sfp
                           file://ppc-soft-fp-20070115.patch;patch=1 \
                           file://ppc-ld-nofpu-20070104.patch;patch=1 \
                           file://ppc-ports-ld-nofpu-20070114.patch;patch=1 \
-                          file://powerpc-sqrt-hack.diff;patch=1""
+                          file://powerpc-sqrt-hack.diff;patch=1 \
+                          file://glibc-2.5-soft-fp-separate-strong-alias.patch;patch=1"
 
 S = "${WORKDIR}/glibc-${PV}"
 B = "${WORKDIR}/build-${TARGET_SYS}"






More information about the Openembedded-commits mailing list