[oe] [PATCH 1/2 v2] sh: provide patch of __set_fpscr prototype

Nobuhiro Iwamatsu nobuhiro.iwamatsu.yj at renesas.com
Thu Sep 16 01:01:53 UTC 2010


When we compile a program that used _FPU_SETCW in sh4 in C++,
become the error.
his provides a patch revising this problem.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj at renesas.com>
---
 recipes/eglibc/eglibc_2.10.bb                 |    3 +-
 recipes/eglibc/eglibc_2.11.bb                 |    3 +-
 recipes/eglibc/eglibc_2.12.bb                 |    3 +-
 recipes/eglibc/eglibc_2.9.bb                  |    7 +++--
 recipes/eglibc/eglibc_svn.bb                  |    5 ++-
 recipes/eglibc/files/sh4_set_fpscr.patch      |   23 +++++++++++++++++++
 recipes/eglibc/files/sh4_set_fpscr_2.12.patch |   29 +++++++++++++++++++++++++
 7 files changed, 65 insertions(+), 8 deletions(-)
 create mode 100644 recipes/eglibc/files/sh4_set_fpscr.patch
 create mode 100644 recipes/eglibc/files/sh4_set_fpscr_2.12.patch

diff --git a/recipes/eglibc/eglibc_2.10.bb b/recipes/eglibc/eglibc_2.10.bb
index c10db7d..94835b6 100644
--- a/recipes/eglibc/eglibc_2.10.bb
+++ b/recipes/eglibc/eglibc_2.10.bb
@@ -3,7 +3,7 @@ require eglibc.inc
 DEPENDS += "gperf-native"
 FILESPATHPKG =. "eglibc-svn:"
 PV = "2.10"
-PR = "${INC_PR}.9"
+PR = "${INC_PR}.10"
 PR_append = "+svnr${SRCPV}"
 SRCREV="10152"
 EGLIBC_BRANCH="eglibc-2_10"
@@ -12,6 +12,7 @@ SRC_URI =
"svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};proto=svn \
            file://armv4t-interworking.patch \
            file://IO-acquire-lock-fix.patch \
            file://shorten-build-commands.patch \
+           file://sh4_set_fpscr.patch \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/eglibc_2.11.bb b/recipes/eglibc/eglibc_2.11.bb
index bece90f..dafc301 100644
--- a/recipes/eglibc/eglibc_2.11.bb
+++ b/recipes/eglibc/eglibc_2.11.bb
@@ -4,7 +4,7 @@ DEFAULT_PREFERENCE = "-1"
 DEPENDS += "gperf-native"
 FILESPATHPKG =. "eglibc-svn:"
 PV = "2.11"
-PR = "${INC_PR}.6"
+PR = "${INC_PR}.7"
 PR_append = "+svnr${SRCPV}"
 SRCREV="10690"
 EGLIBC_BRANCH="eglibc-2_11"
@@ -12,6 +12,7 @@ SRC_URI =
"svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};proto=svn \
            file://eglibc-svn-arm-lowlevellock-include-tls.patch \
            file://IO-acquire-lock-fix.patch \
            file://shorten-build-commands.patch \
+           file://sh4_set_fpscr.patch \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/eglibc_2.12.bb b/recipes/eglibc/eglibc_2.12.bb
index 0d08c56..e0a0ebe 100644
--- a/recipes/eglibc/eglibc_2.12.bb
+++ b/recipes/eglibc/eglibc_2.12.bb
@@ -4,7 +4,7 @@ DEFAULT_PREFERENCE = "-1"
 DEPENDS += "gperf-native"
 FILESPATHPKG =. "eglibc-svn:"
 PV = "2.12"
-PR = "${INC_PR}.3"
+PR = "${INC_PR}.4"
 PR_append = "+svnr${SRCPV}"
 SRCREV="11306"
 EGLIBC_BRANCH="eglibc-2_12"
@@ -12,6 +12,7 @@ SRC_URI =
"svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};proto=svn \
            file://eglibc-svn-arm-lowlevellock-include-tls.patch \
            file://IO-acquire-lock-fix.patch \
            file://shorten-build-commands.patch \
+           file://sh4_set_fpscr_2.12.patch \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/eglibc_2.9.bb b/recipes/eglibc/eglibc_2.9.bb
index f83861e..39ee76d 100644
--- a/recipes/eglibc/eglibc_2.9.bb
+++ b/recipes/eglibc/eglibc_2.9.bb
@@ -3,15 +3,16 @@ require eglibc.inc
 DEPENDS += "gperf-native"
 FILESPATHPKG =. "eglibc-svn:"
 PV = "2.9"
-PR = "${INC_PR}.9"
+PR = "${INC_PR}.10"
 PR_append = "+svnr${SRCPV}"
 SRCREV="10153"
 EGLIBC_BRANCH="eglibc-2_9"
 SRC_URI = "svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};proto=svn \
            file://eglibc-svn-arm-lowlevellock-include-tls.patch \
-	   file://armv4t-interworking.patch \
-	   file://IO-acquire-lock-fix.patch \
+           file://armv4t-interworking.patch \
+           file://IO-acquire-lock-fix.patch \
            file://shorten-build-commands.patch \
+           file://sh4_set_fpscr.patch \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/eglibc_svn.bb b/recipes/eglibc/eglibc_svn.bb
index 3b7fb84..a37c3ed 100644
--- a/recipes/eglibc/eglibc_svn.bb
+++ b/recipes/eglibc/eglibc_svn.bb
@@ -5,11 +5,12 @@ SRCREV = "11461"
 DEFAULT_PREFERENCE = "-1"
 FILESPATHPKG =. "eglibc-svn:"
 PV = "2.12+svnr${SRCPV}"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
 EGLIBC_BRANCH="trunk"
 SRC_URI = "svn://svn.eglibc.org;module=${EGLIBC_BRANCH} \
            file://eglibc-svn-arm-lowlevellock-include-tls.patch \
-	   file://IO-acquire-lock-fix.patch \
+           file://IO-acquire-lock-fix.patch \
+           file://sh4_set_fpscr_2.12.patch \
            file://etc/ld.so.conf \
            file://generate-supported.mk"
 S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
diff --git a/recipes/eglibc/files/sh4_set_fpscr.patch
b/recipes/eglibc/files/sh4_set_fpscr.patch
new file mode 100644
index 0000000..f3fd5c1
--- /dev/null
+++ b/recipes/eglibc/files/sh4_set_fpscr.patch
@@ -0,0 +1,23 @@
+# http://sourceware.org/ml/libc-alpha/2009-12/msg00009.html
+# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565369
+---
+ sysdeps/sh/sh4/fpu/fpu_control.h |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/sysdeps/sh/sh4/fpu/fpu_control.h
++++ b/sysdeps/sh/sh4/fpu/fpu_control.h
+@@ -45,6 +45,14 @@
+ #define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw))
+
+ #if defined __GNUC__
++/* Allow the use in C++ code.  */
++#ifdef __cplusplus
++extern "C" {
++#endif
++extern void __set_fpscr (unsigned long);
++#ifdef __cplusplus
++}
++#endif  /* C++ */
+ #define _FPU_SETCW(cw) __set_fpscr ((cw))
+ #else
+ #define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw))
diff --git a/recipes/eglibc/files/sh4_set_fpscr_2.12.patch
b/recipes/eglibc/files/sh4_set_fpscr_2.12.patch
new file mode 100644
index 0000000..19cccc0
--- /dev/null
+++ b/recipes/eglibc/files/sh4_set_fpscr_2.12.patch
@@ -0,0 +1,29 @@
+diff --git a/sysdeps/sh/sh4/fpu/fpu_control.h
b/sysdeps/sh/sh4/fpu/fpu_control.h
+index d1be46d..3ea37d3 100644
+--- a/sysdeps/sh/sh4/fpu/fpu_control.h
++++ b/sysdeps/sh/sh4/fpu/fpu_control.h
+@@ -1,5 +1,5 @@
+ /* FPU control word definitions.  SH version.
+-   Copyright (C) 1999, 2000, 2009 Free Software Foundation, Inc.
++   Copyright (C) 1999, 2000, 2009, 2010 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
+@@ -46,7 +46,14 @@ typedef unsigned int fpu_control_t;
+
+ #if defined __GNUC__
+ /* GCC provides this function.  */
++/* Allow the use in C++ code.  */
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void __set_fpscr (unsigned long);
++#ifdef __cplusplus
++}
++#endif  /* C++ */
+ #define _FPU_SETCW(cw) __set_fpscr ((cw))
+ #else
+ #define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw))
+--
+1.7.1
+
-- 
1.7.1




More information about the Openembedded-devel mailing list