diff options
author | Zhai Edwin <edwin.zhai@intel.com> | 2011-12-16 15:53:23 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-12-16 16:05:37 +0000 |
commit | 776918063d830dc8f843cafd88f3cb9760f00c7a (patch) | |
tree | b1fc00f729599634f64aa6eeb2cb51eac1337fa5 /meta/recipes-sato/libical | |
parent | ccc84d94b8ff59365806b57fe90a7bacdeb16b5d (diff) | |
download | poky-776918063d830dc8f843cafd88f3cb9760f00c7a.tar.gz |
libical: Fix deadlock in pthread
libical introduce pthread support after 0.47, but lead deadlock with missing
some unlock code. This makes dates start hang.
Add new patch to properly release mutex.
[YOCTO #1825] got fixed.
(From OE-Core rev: 584abc5f3d6cbaf8f8bf09123e8abc421f0699a8)
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-sato/libical')
-rw-r--r-- | meta/recipes-sato/libical/files/pthread-fix.patch | 52 | ||||
-rw-r--r-- | meta/recipes-sato/libical/libical_0.47.bb | 5 |
2 files changed, 56 insertions, 1 deletions
diff --git a/meta/recipes-sato/libical/files/pthread-fix.patch b/meta/recipes-sato/libical/files/pthread-fix.patch new file mode 100644 index 0000000000..aa7767f22d --- /dev/null +++ b/meta/recipes-sato/libical/files/pthread-fix.patch | |||
@@ -0,0 +1,52 @@ | |||
1 | New added pthread feathre leads some deadlock with some unlock code missing. | ||
2 | This patch fix it. | ||
3 | |||
4 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | Index: libical-0.47/src/libical/icaltimezone.c | ||
9 | =================================================================== | ||
10 | --- libical-0.47.orig/src/libical/icaltimezone.c 2011-12-16 13:42:25.000000000 +0800 | ||
11 | +++ libical-0.47/src/libical/icaltimezone.c 2011-12-16 14:16:25.000000000 +0800 | ||
12 | @@ -1773,7 +1773,7 @@ | ||
13 | filename = (char*) malloc (filename_len); | ||
14 | if (!filename) { | ||
15 | icalerror_set_errno(ICAL_NEWFAILED_ERROR); | ||
16 | - return; | ||
17 | + goto out; | ||
18 | } | ||
19 | |||
20 | snprintf (filename, filename_len, "%s/%s.ics", get_zone_directory(), | ||
21 | @@ -1783,7 +1783,7 @@ | ||
22 | free (filename); | ||
23 | if (!fp) { | ||
24 | icalerror_set_errno(ICAL_FILE_ERROR); | ||
25 | - return; | ||
26 | + goto out; | ||
27 | } | ||
28 | |||
29 | |||
30 | @@ -1807,7 +1807,7 @@ | ||
31 | |||
32 | if (!subcomp) { | ||
33 | icalerror_set_errno(ICAL_PARSE_ERROR); | ||
34 | - return; | ||
35 | + goto out; | ||
36 | } | ||
37 | |||
38 | icaltimezone_get_vtimezone_properties (zone, subcomp); | ||
39 | @@ -1817,10 +1817,12 @@ | ||
40 | icalcomponent_free(comp); | ||
41 | } | ||
42 | #endif | ||
43 | -#ifdef HAVE_PTHREAD | ||
44 | + | ||
45 | out: | ||
46 | +#ifdef HAVE_PTHREAD | ||
47 | pthread_mutex_unlock(&builtin_mutex); | ||
48 | #endif | ||
49 | + return; | ||
50 | } | ||
51 | |||
52 | |||
diff --git a/meta/recipes-sato/libical/libical_0.47.bb b/meta/recipes-sato/libical/libical_0.47.bb index d711d5fd04..ee4351ae88 100644 --- a/meta/recipes-sato/libical/libical_0.47.bb +++ b/meta/recipes-sato/libical/libical_0.47.bb | |||
@@ -6,7 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d4fc58309d8ed46587ac63bb449d82f8 \ | |||
6 | file://LICENSE;md5=d1a0891cd3e582b3e2ec8fe63badbbb6" | 6 | file://LICENSE;md5=d1a0891cd3e582b3e2ec8fe63badbbb6" |
7 | SECTION = "libs" | 7 | SECTION = "libs" |
8 | 8 | ||
9 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/freeassociation/${BPN}/${P}/${BPN}-${PV}.tar.gz" | 9 | PR = "r1" |
10 | |||
11 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/freeassociation/${BPN}/${P}/${BPN}-${PV}.tar.gz\ | ||
12 | file://pthread-fix.patch" | ||
10 | 13 | ||
11 | SRC_URI[md5sum] = "21f7f8a21e3d857c9476be732e52dc32" | 14 | SRC_URI[md5sum] = "21f7f8a21e3d857c9476be732e52dc32" |
12 | SRC_URI[sha256sum] = "af4cbb4bb13d9ed3f2262181da9199823feba70802b15cc3e89b263d95da2888" | 15 | SRC_URI[sha256sum] = "af4cbb4bb13d9ed3f2262181da9199823feba70802b15cc3e89b263d95da2888" |