From 9d462af468702d05059a69f3f3e39a889a7d1b77 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 20 Aug 2008 23:17:40 +0000
Subject: Enable -fgnu89-inline on compilers that support it. This helps 0.9.29
 to compile with gcc 4.3.

---
 .../uclibc-0.9.29/uclibc-use-fgnu89-inline.patch   | 34 ++++++++++++++++++++++
 packages/uclibc/uclibc_0.9.29.bb                   |  3 +-
 2 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch

diff --git a/packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch b/packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch
new file mode 100644
index 0000000000..6f79c789d0
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.29/uclibc-use-fgnu89-inline.patch
@@ -0,0 +1,34 @@
+Source: http://www.nabble.com/-PATCH--uclibc-extern-inline-td14223616.html
+
+Description:
+
+Needed for uclibc-0.9.29 to compile with gcc 4.3.1
+
+You get this error without
+
+libc/libc_so.a(libc_pthread_init.oS): In function `testandset':
+libc_pthread_init.c:(.text+0x0): multiple definition of `testandset'
+libc/libc_so.a(forward.oS):forward.c:(.text+0x0): first defined here
+libc/libc_so.a(rpc_thread.oS): In function `testandset':
+rpc_thread.c:(.text+0x0): multiple definition of `testandset'
+libc/libc_so.a(forward.oS):forward.c:(.text+0x0): first defined here
+make[1]: *** [lib/libc.so] Error 1
+make: *** [lib/libc.so.0] Error 2
+
+
+---
+ Rules.mak |    1 +
+ 1 file changed, 1 insertion(+)
+
+Index: uClibc-0.9.29/Rules.mak
+===================================================================
+--- uClibc-0.9.29.orig/Rules.mak	2008-08-19 13:43:56.000000000 -0700
++++ uClibc-0.9.29/Rules.mak	2008-08-19 13:45:04.000000000 -0700
+@@ -402,6 +402,7 @@ CFLAGS += -DSTATIC
+ endif
+ 
+ CFLAGS += $(call check_gcc,-std=gnu99,)
++CFLAGS += $(call check_gcc,-fgnu89-inline,)
+ 
+ LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -shared --warn-common --warn-once -z combreloc
+ # binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok
diff --git a/packages/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb
index fc06c28f67..41af861fcf 100644
--- a/packages/uclibc/uclibc_0.9.29.bb
+++ b/packages/uclibc/uclibc_0.9.29.bb
@@ -7,7 +7,7 @@
 # on whether the base patches apply to the selected (SRCDATE) svn release.
 #
 UCLIBC_BASE ?= "0.9.29"
-PR = "r22"
+PR = "r23"
 DEFAULT_PREFERENCE = "1"
 
 require uclibc.inc
@@ -30,6 +30,7 @@ SRC_URI += "file://uClibc.machine file://uClibc.distro \
 	    file://uClibc-0.9.29-nonposix_bashisms.patch;patch=1 \
             file://arm_fix_alignment.patch;patch=1 \
 	    file://uclibc-arm-ftruncate64.patch;patch=1 \
+	    file://uclibc-use-fgnu89-inline.patch;patch=1 \
            "
 
 #recent versions uclibc require real kernel headers
-- 
cgit v1.2.3