diff options
| -rw-r--r-- | meta/recipes-multimedia/alsa/alsa-lib/fix-O0-Optimize-unable-inline-function.patch | 63 | ||||
| -rw-r--r-- | 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 0000000000..1e43c256ad --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-lib/fix-O0-Optimize-unable-inline-function.patch | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | Change function type from "extern __inline__" to "static __inline__" | ||
| 2 | |||
| 3 | "extern __inline__ function()" is the inlined version that | ||
| 4 | can be used in this compilation unit, but there will be another | ||
| 5 | definition of this function somewhere, so compiler will not emit | ||
| 6 | any code for the function body. This causes problem in -O0, | ||
| 7 | where functions are never inlined, the function call is preserved, | ||
| 8 | but linker can't find the symbol, thus the error happens. | ||
| 9 | |||
| 10 | since no packages provide atomic_add and atomic_sub, and -O0 | ||
| 11 | Optimize is hoped to keep for debug, we can change extern to | ||
| 12 | static to fix this problem. | ||
| 13 | |||
| 14 | Upstream-Status: Pending | ||
| 15 | |||
| 16 | Signed-off-by: Roy.Li <rongqing.li@windriver.com> | ||
| 17 | --- | ||
| 18 | include/iatomic.h | 8 ++++---- | ||
| 19 | 1 files changed, 4 insertions(+), 4 deletions(-) | ||
| 20 | |||
| 21 | diff --git a/include/iatomic.h b/include/iatomic.h | ||
| 22 | index e92dbfd..364bc5c 100644 | ||
| 23 | --- a/include/iatomic.h | ||
| 24 | +++ b/include/iatomic.h | ||
| 25 | @@ -720,7 +720,7 @@ typedef struct { volatile int counter; } atomic_t; | ||
| 26 | * Atomically adds @i to @v. Note that the guaranteed useful range | ||
| 27 | * of an atomic_t is only 24 bits. | ||
| 28 | */ | ||
| 29 | -extern __inline__ void atomic_add(int i, atomic_t * v) | ||
| 30 | +static __inline__ void atomic_add(int i, atomic_t * v) | ||
| 31 | { | ||
| 32 | unsigned long temp; | ||
| 33 | |||
| 34 | @@ -744,7 +744,7 @@ extern __inline__ void atomic_add(int i, atomic_t * v) | ||
| 35 | * Atomically subtracts @i from @v. Note that the guaranteed | ||
| 36 | * useful range of an atomic_t is only 24 bits. | ||
| 37 | */ | ||
| 38 | -extern __inline__ void atomic_sub(int i, atomic_t * v) | ||
| 39 | +static __inline__ void atomic_sub(int i, atomic_t * v) | ||
| 40 | { | ||
| 41 | unsigned long temp; | ||
| 42 | |||
| 43 | @@ -763,7 +763,7 @@ extern __inline__ void atomic_sub(int i, atomic_t * v) | ||
| 44 | /* | ||
| 45 | * Same as above, but return the result value | ||
| 46 | */ | ||
| 47 | -extern __inline__ int atomic_add_return(int i, atomic_t * v) | ||
| 48 | +static __inline__ int atomic_add_return(int i, atomic_t * v) | ||
| 49 | { | ||
| 50 | unsigned long temp, result; | ||
| 51 | |||
| 52 | @@ -784,7 +784,7 @@ extern __inline__ int atomic_add_return(int i, atomic_t * v) | ||
| 53 | return result; | ||
| 54 | } | ||
| 55 | |||
| 56 | -extern __inline__ int atomic_sub_return(int i, atomic_t * v) | ||
| 57 | +static __inline__ int atomic_sub_return(int i, atomic_t * v) | ||
| 58 | { | ||
| 59 | unsigned long temp, result; | ||
| 60 | |||
| 61 | -- | ||
| 62 | 1.7.4.1 | ||
| 63 | |||
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 49f4486d62..2695e6b7a2 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" | |||
| 19 | SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \ | 19 | SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \ |
| 20 | file://fix-tstamp-declaration.patch \ | 20 | file://fix-tstamp-declaration.patch \ |
| 21 | file://obsolete_automake_macros.patch \ | 21 | file://obsolete_automake_macros.patch \ |
| 22 | file://fix-O0-Optimize-unable-inline-function.patch \ | ||
| 22 | " | 23 | " |
| 23 | SRC_URI[md5sum] = "2dfa35d28471d721e592b616beedf965" | 24 | SRC_URI[md5sum] = "2dfa35d28471d721e592b616beedf965" |
| 24 | SRC_URI[sha256sum] = "8c9f8161603cc3db640619650401292c3e110da63429ab6938aac763319f6e7d" | 25 | SRC_URI[sha256sum] = "8c9f8161603cc3db640619650401292c3e110da63429ab6938aac763319f6e7d" |
