[oe-commits] Jesse Zhang : alsa-lib: Change function type to "static __inline__"

git at git.openembedded.org git at git.openembedded.org
Mon Jun 17 15:56:33 UTC 2013


Module: openembedded-core.git
Branch: master-next
Commit: d0af30c92fdea6f48afb4ab1fde69f1b636e8203
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=d0af30c92fdea6f48afb4ab1fde69f1b636e8203

Author: Jesse Zhang <sen.zhang at windriver.com>
Date:   Mon Jun 17 12:22:38 2013 +0000

alsa-lib: Change function type to "static __inline__"

"extern __inline__ function()" is the inlined version that
can be used in this compilation unit, but there will be another
definition of this function somewhere, so compiler will not emit
any code for the function body. This causes problem in -O0,
where functions are never inlined, the function call is preserved,
but linker can't find the symbol, thus the error happens.

since no packages provide atomic_add and atomic_sub, and -O0
Optimize is hoped to keep for debug, we can change extern to
static to fix this problem.

Signed-off-by: Roy.Li <rongqing.li at windriver.com>
Signed-off-by: Jesse Zhang <sen.zhang at windriver.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 .../fix-O0-Optimize-unable-inline-function.patch   |   63 ++++++++++++++++++++
 meta/recipes-multimedia/alsa/alsa-lib_1.0.26.bb    |    1 +
 2 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/meta/recipes-multimedia/alsa/alsa-lib/fix-O0-Optimize-unable-inline-function.patch b/meta/recipes-multimedia/alsa/alsa-lib/fix-O0-Optimize-unable-inline-function.patch
new file mode 100644
index 0000000..1e43c25
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-lib/fix-O0-Optimize-unable-inline-function.patch
@@ -0,0 +1,63 @@
+Change function type from "extern __inline__" to "static __inline__"
+
+"extern __inline__ function()" is the inlined version that
+can be used in this compilation unit, but there will be another
+definition of this function somewhere, so compiler will not emit
+any code for the function body. This causes problem in -O0,
+where functions are never inlined, the function call is preserved,
+but linker can't find the symbol, thus the error happens.
+
+since no packages provide atomic_add and atomic_sub, and -O0
+Optimize is hoped to keep for debug, we can change extern to
+static to fix this problem.
+
+Upstream-Status: Pending
+
+Signed-off-by: Roy.Li <rongqing.li at windriver.com>
+---
+ include/iatomic.h |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/include/iatomic.h b/include/iatomic.h
+index e92dbfd..364bc5c 100644
+--- a/include/iatomic.h
++++ b/include/iatomic.h
+@@ -720,7 +720,7 @@ typedef struct { volatile int counter; } atomic_t;
+  * Atomically adds @i to @v.  Note that the guaranteed useful range
+  * of an atomic_t is only 24 bits.
+  */
+-extern __inline__ void atomic_add(int i, atomic_t * v)
++static __inline__ void atomic_add(int i, atomic_t * v)
+ {
+ 	unsigned long temp;
+ 
+@@ -744,7 +744,7 @@ extern __inline__ void atomic_add(int i, atomic_t * v)
+  * Atomically subtracts @i from @v.  Note that the guaranteed
+  * useful range of an atomic_t is only 24 bits.
+  */
+-extern __inline__ void atomic_sub(int i, atomic_t * v)
++static __inline__ void atomic_sub(int i, atomic_t * v)
+ {
+ 	unsigned long temp;
+ 
+@@ -763,7 +763,7 @@ extern __inline__ void atomic_sub(int i, atomic_t * v)
+ /*
+  * Same as above, but return the result value
+  */
+-extern __inline__ int atomic_add_return(int i, atomic_t * v)
++static __inline__ int atomic_add_return(int i, atomic_t * v)
+ {
+ 	unsigned long temp, result;
+ 
+@@ -784,7 +784,7 @@ extern __inline__ int atomic_add_return(int i, atomic_t * v)
+ 	return result;
+ }
+ 
+-extern __inline__ int atomic_sub_return(int i, atomic_t * v)
++static __inline__ int atomic_sub_return(int i, atomic_t * v)
+ {
+ 	unsigned long temp, result;
+ 
+-- 
+1.7.4.1
+
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.0.26.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.0.26.bb
index 49f4486..2695e6b 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib_1.0.26.bb
+++ b/meta/recipes-multimedia/alsa/alsa-lib_1.0.26.bb
@@ -19,6 +19,7 @@ PR = "r0"
 SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
            file://fix-tstamp-declaration.patch \
            file://obsolete_automake_macros.patch \
+           file://fix-O0-Optimize-unable-inline-function.patch \
           "
 SRC_URI[md5sum] = "2dfa35d28471d721e592b616beedf965"
 SRC_URI[sha256sum] = "8c9f8161603cc3db640619650401292c3e110da63429ab6938aac763319f6e7d"



More information about the Openembedded-commits mailing list