summaryrefslogtreecommitdiff
path: root/media-gfx/gphoto2/files/gphoto2-2.5.28-clang-16.patch
blob: e21d38b311e9f9901908127f35c065202884e636 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
https://bugs.gentoo.org/896212
https://github.com/gphoto/gphoto2/pull/569
https://github.com/gphoto/gphoto2/commit/ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e
https://github.com/gphoto/gphoto2/commit/366930ccc1a261c3eb883da2bf3c655162ccd75f

From ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 2 Sep 2022 12:59:46 -0700
Subject: [PATCH] gphoto2: Use pthread_t abstract type for thead IDs

This is not a plain old datatype in every libc, e.g. with musl this
would fail in type conversion

Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/gphoto2/main.c
+++ b/gphoto2/main.c
@@ -1198,7 +1198,7 @@ thread_func (void *data)
 	pthread_cleanup_pop (1);
 }
 
-static unsigned int
+static pthread_t
 start_timeout_func (Camera *camera, unsigned int timeout,
 		    CameraTimeoutFunc func, void __unused__ *data)
 {
@@ -1219,7 +1219,7 @@ start_timeout_func (Camera *camera, unsigned int timeout,
 }
 
 static void
-stop_timeout_func (Camera __unused__ *camera, unsigned int id,
+stop_timeout_func (Camera __unused__ *camera, pthread_t id,
 		   void __unused__ *data)
 {
 	pthread_t tid = id;


From 366930ccc1a261c3eb883da2bf3c655162ccd75f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 1 Mar 2023 22:58:37 -0800
Subject: [PATCH] Match prototypes of callbacks with libgphoto

In https://github.com/gphoto/gphoto2/pull/535/commits/ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e
we tried to fix by using pthread_t but it also needs to make changes in
libgphoto and these changes can be invasive, therefore lets revert to
older types and to fix musl problem fix it via type casts

Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/gphoto2/main.c
+++ b/gphoto2/main.c
@@ -1198,7 +1198,7 @@ thread_func (void *data)
 	pthread_cleanup_pop (1);
 }
 
-static pthread_t
+static unsigned int
 start_timeout_func (Camera *camera, unsigned int timeout,
 		    CameraTimeoutFunc func, void __unused__ *data)
 {
@@ -1215,14 +1215,14 @@ start_timeout_func (Camera *camera, unsigned int timeout,
 
 	pthread_create (&tid, NULL, thread_func, td);
 
-	return (tid);
+	return (unsigned int)tid;
 }
 
 static void
-stop_timeout_func (Camera __unused__ *camera, pthread_t id,
+stop_timeout_func (Camera __unused__ *camera, unsigned int id,
 		   void __unused__ *data)
 {
-	pthread_t tid = id;
+	pthread_t tid = (pthread_t)id;
 
 	pthread_cancel (tid);
 	pthread_join (tid, NULL);