summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-graphics/userland/userland/0005-user-vcsm-Fix-build-with-clang.patch44
-rw-r--r--recipes-graphics/userland/userland/0006-Fix-enum-type-conversion-warnings.patch166
-rw-r--r--recipes-graphics/userland/userland/0007-vcos_platform_types-Dont-use-extern-inline-with-clan.patch84
-rw-r--r--recipes-graphics/userland/userland_git.bb6
4 files changed, 298 insertions, 2 deletions
diff --git a/recipes-graphics/userland/userland/0005-user-vcsm-Fix-build-with-clang.patch b/recipes-graphics/userland/userland/0005-user-vcsm-Fix-build-with-clang.patch
new file mode 100644
index 0000000..dd07798
--- /dev/null
+++ b/recipes-graphics/userland/userland/0005-user-vcsm-Fix-build-with-clang.patch
@@ -0,0 +1,44 @@
1From 5cfb274f036726a85bb45fd82652d55f50208954 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 23 Aug 2015 13:17:33 -0700
4Subject: [PATCH 05/16] user-vcsm: Fix build with clang
5
6/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/host_applications/linux/libs/sm/user-vcsm.c:316:36: error: implicit conversion from enumeration
7 type 'enum vmcs_sm_cache_e' to different enumeration type 'VCSM_CACHE_TYPE_T' [-Werror,-Wenum-conversion]
8 return vcsm_malloc_cache( size, VMCS_SM_CACHE_NONE, name );
9 ~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~
10/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/host_applications/linux/libs/sm/user-vcsm.c:339:22: error: equality comparison with extraneous
11 parentheses [-Werror,-Wparentheses-equality]
12 if ( (vcsm_handle == VCSM_INVALID_HANDLE) )
13 ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
14
15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16---
17 host_applications/linux/libs/sm/user-vcsm.c | 4 ++--
18 1 file changed, 2 insertions(+), 2 deletions(-)
19
20diff --git a/host_applications/linux/libs/sm/user-vcsm.c b/host_applications/linux/libs/sm/user-vcsm.c
21index 4e78dc4..5298f25 100644
22--- a/host_applications/linux/libs/sm/user-vcsm.c
23+++ b/host_applications/linux/libs/sm/user-vcsm.c
24@@ -313,7 +313,7 @@ unsigned int vcsm_malloc_cache( unsigned int size, VCSM_CACHE_TYPE_T cache, char
25 */
26 unsigned int vcsm_malloc( unsigned int size, char *name )
27 {
28- return vcsm_malloc_cache( size, VMCS_SM_CACHE_NONE, name );
29+ return vcsm_malloc_cache( size, (VCSM_CACHE_TYPE_T)VMCS_SM_CACHE_NONE, name );
30 }
31
32 /* Shares an allocated block of memory.
33@@ -336,7 +336,7 @@ unsigned int vcsm_malloc_share( unsigned int handle )
34 void *usr_ptr = NULL;
35 int rc;
36
37- if ( (vcsm_handle == VCSM_INVALID_HANDLE) )
38+ if ( vcsm_handle == VCSM_INVALID_HANDLE )
39 {
40 vcos_log_error( "[%s]: [%d]: NULL size or invalid device!",
41 __func__,
42--
432.7.0
44
diff --git a/recipes-graphics/userland/userland/0006-Fix-enum-type-conversion-warnings.patch b/recipes-graphics/userland/userland/0006-Fix-enum-type-conversion-warnings.patch
new file mode 100644
index 0000000..cabaf97
--- /dev/null
+++ b/recipes-graphics/userland/userland/0006-Fix-enum-type-conversion-warnings.patch
@@ -0,0 +1,166 @@
1From ecfa07e3b8019983f3c0f3317d27785666b35f04 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 23 Aug 2015 10:43:37 -0700
4Subject: [PATCH 06/16] Fix enum type conversion warnings
5
6/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_util_params_video.c:59:30: error: implicit conversion from enumeration type 'OMX_DISPLAYTRANSFORMTYPE' (aka 'enum OMX_DISPLAYTRANSFORMTYPE') to different enumeration type 'MMAL_DISPLAYTRANSFORM_T' (aka 'enum MMAL_DISPLAYTRANSFORM_T') [-Werror,-Wenum-conversion]
7 mmal->transform = omx->transform;
8 ~ ~~~~~^~~~~~~~~
9/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_util_params_video.c:63:25: error: implicit conversion from enumeration type 'OMX_DISPLAYMODETYPE' (aka 'enum OMX_DISPLAYMODETYPE') to different enumeration type 'MMAL_DISPLAYMODE_T' (aka 'enum MMAL_DISPLAYMODE_T') [-Werror,-Wenum-conversion]
10 mmal->mode = omx->mode;
11 ~ ~~~~~^~~~
12/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_util_params_video.c:75:31: error: implicit conversion from enumeration type 'MMAL_DISPLAYTRANSFORM_T' (aka 'enum MMAL_DISPLAYTRANSFORM_T') to different enumeration type 'OMX_DISPLAYTRANSFORMTYPE' (aka 'enum OMX_DISPLAYTRANSFORMTYPE') [-Werror,-Wenum-conversion]
13 omx->transform = mmal->transform;
14 ~ ~~~~~~^~~~~~~~~
15/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_util_params_video.c:79:31: error: implicit conversion from enumeration type 'MMAL_DISPLAYMODE_T' (aka 'enum MMAL_DISPLAYMODE_T') to different enumeration type 'OMX_DISPLAYMODETYPE' (aka 'enum OMX_DISPLAYMODETYPE') [-Werror,-Wenum-conversion]
16 omx->mode = mmal->mode;
17 ~ ~~~~~~^~~~
18
19/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/vc/mmal_vc_client.c:102:13: error: implicit conversion from enumeration type
20 'VCOS_STATUS_T' to different enumeration type 'MMAL_STATUS_T' [-Werror,-Wenum-conversion]
21 status = vcos_semaphore_create(&waitpool->sem, VCOS_FUNCTION,
22 ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/vc/mmal_vc_client.c:110:16: error: implicit conversion from enumeration type
24 'VCOS_STATUS_T' to different enumeration type 'MMAL_STATUS_T' [-Werror,-Wenum-conversion]
25 status = vcos_semaphore_create(&waitpool->waiters[i].sem,
26 ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27
28/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_core.c:284:17: error: implicit conversion from enumeration
29 type 'MMAL_STATUS_T' to different enumeration type 'OMX_ERRORTYPE' (aka 'enum OMX_ERRORTYPE') [-Werror,-Wenum-conversion]
30 return mmalomx_get_port_settings(port, param);
31 ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_core.c:478:17: error: implicit conversion from enumeration
33 type 'MMAL_STATUS_T' to different enumeration type 'OMX_ERRORTYPE' (aka 'enum OMX_ERRORTYPE') [-Werror,-Wenum-conversion]
34 return mmalomx_set_port_settings(port, param);
35 ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
36
37/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_parameters.c:173:14: error: implicit conversion from
38 enumeration type 'MMAL_STATUS_T' to different enumeration type 'OMX_ERRORTYPE' (aka 'enum OMX_ERRORTYPE') [-Werror,-Wenum-conversion]
39 return xlat->fn.custom(MMALOMX_PARAM_MAPPING_TO_OMX, xlat, mmal_header,
40 ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_parameters.c:557:17: error: implicit conversion from
42 enumeration type 'MMAL_STATUS_T' to different enumeration type 'OMX_ERRORTYPE' (aka 'enum OMX_ERRORTYPE') [-Werror,-Wenum-conversion]
43 return mmal_port_format_commit(port->mmal);
44 ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/raspberrypi2-angstrom-linux-gnueabi/userland/git-r5/git/interface/mmal/openmaxil/mmalomx_parameters.c:564:17: error: implicit conversion from
46 enumeration type 'MMAL_STATUS_T' to different enumeration type 'OMX_ERRORTYPE' (aka 'enum OMX_ERRORTYPE') [-Werror,-Wenum-conversion]
47 return mmal_port_format_commit(port->mmal);
48 ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49
50Signed-off-by: Khem Raj <raj.khem@gmail.com>
51---
52 interface/mmal/openmaxil/mmalomx_core.c | 4 ++--
53 interface/mmal/openmaxil/mmalomx_parameters.c | 6 +++---
54 interface/mmal/openmaxil/mmalomx_util_params_video.c | 8 ++++----
55 interface/mmal/vc/mmal_vc_client.c | 4 ++--
56 4 files changed, 11 insertions(+), 11 deletions(-)
57
58diff --git a/interface/mmal/openmaxil/mmalomx_core.c b/interface/mmal/openmaxil/mmalomx_core.c
59index da66b0b..3a72a2e 100644
60--- a/interface/mmal/openmaxil/mmalomx_core.c
61+++ b/interface/mmal/openmaxil/mmalomx_core.c
62@@ -281,7 +281,7 @@ static OMX_ERRORTYPE mmalomx_ComponentGetParameter(
63 {
64 OMX_PARAM_PORTDEFINITIONTYPE *param = (OMX_PARAM_PORTDEFINITIONTYPE *)pParam;
65 PARAM_GET_PORT(port, component, param->nPortIndex);
66- return mmalomx_get_port_settings(port, param);
67+ return (OMX_ERRORTYPE)mmalomx_get_port_settings(port, param);
68 }
69 return OMX_ErrorNone;
70 break;
71@@ -475,7 +475,7 @@ static OMX_ERRORTYPE mmalomx_ComponentSetParameter(
72 {
73 OMX_PARAM_PORTDEFINITIONTYPE *param = (OMX_PARAM_PORTDEFINITIONTYPE *)pParam;
74 PARAM_GET_PORT(port, component, param->nPortIndex);
75- return mmalomx_set_port_settings(port, param);
76+ return (OMX_ERRORTYPE)mmalomx_set_port_settings(port, param);
77 }
78 return OMX_ErrorNone;
79 break;
80diff --git a/interface/mmal/openmaxil/mmalomx_parameters.c b/interface/mmal/openmaxil/mmalomx_parameters.c
81index a91b68c..f0bd17f 100644
82--- a/interface/mmal/openmaxil/mmalomx_parameters.c
83+++ b/interface/mmal/openmaxil/mmalomx_parameters.c
84@@ -170,7 +170,7 @@ static OMX_ERRORTYPE mmalomx_parameter_get_xlat(MMALOMX_COMPONENT_T *component,
85
86 if (xlat->fn.custom)
87 {
88- return xlat->fn.custom(MMALOMX_PARAM_MAPPING_TO_OMX, xlat, mmal_header,
89+ return (OMX_ERRORTYPE)xlat->fn.custom(MMALOMX_PARAM_MAPPING_TO_OMX, xlat, mmal_header,
90 pParam, mmal_port);
91 }
92
93@@ -554,14 +554,14 @@ OMX_ERRORTYPE mmalomx_parameter_set(MMALOMX_COMPONENT_T *component,
94 port->mmal->format->es->video.par.num = param->nX;
95 port->mmal->format->es->video.par.den = param->nY;
96 mmal_rational_simplify(&port->mmal->format->es->video.par);
97- return mmal_port_format_commit(port->mmal);
98+ return (OMX_ERRORTYPE)mmal_port_format_commit(port->mmal);
99 }
100 case OMX_IndexParamColorSpace:
101 {
102 OMX_PARAM_COLORSPACETYPE *param = (OMX_PARAM_COLORSPACETYPE *)pParam;
103 PARAM_GET_PORT(port, component, param->nPortIndex);
104 port->mmal->format->es->video.color_space = mmalil_omx_color_space_to_mmal(param->eColorSpace);
105- return mmal_port_format_commit(port->mmal);
106+ return (OMX_ERRORTYPE)mmal_port_format_commit(port->mmal);
107 }
108 case OMX_IndexParamBrcmVideoCroppingDisable:
109 {
110diff --git a/interface/mmal/openmaxil/mmalomx_util_params_video.c b/interface/mmal/openmaxil/mmalomx_util_params_video.c
111index f088296..83e3724 100644
112--- a/interface/mmal/openmaxil/mmalomx_util_params_video.c
113+++ b/interface/mmal/openmaxil/mmalomx_util_params_video.c
114@@ -56,11 +56,11 @@ static MMAL_STATUS_T mmalomx_param_mapping_displayregion(MMALOMX_PARAM_MAPPING_D
115 mmal->set = omx->set;
116 mmal->display_num = omx->num;
117 mmal->fullscreen = omx->fullscreen;
118- mmal->transform = omx->transform;
119+ mmal->transform = (MMAL_DISPLAYTRANSFORM_T)omx->transform;
120 rect_to_mmal(&mmal->dest_rect, &omx->dest_rect);
121 rect_to_mmal(&mmal->src_rect, &omx->src_rect);
122 mmal->noaspect = omx->noaspect;
123- mmal->mode = omx->mode;
124+ mmal->mode = (MMAL_DISPLAYMODE_T)omx->mode;
125 mmal->pixel_x = omx->pixel_x;
126 mmal->pixel_y = omx->pixel_y;
127 mmal->layer = omx->layer;
128@@ -72,11 +72,11 @@ static MMAL_STATUS_T mmalomx_param_mapping_displayregion(MMALOMX_PARAM_MAPPING_D
129 omx->set = mmal->set;
130 omx->num = mmal->display_num;
131 omx->fullscreen = mmal->fullscreen;
132- omx->transform = mmal->transform;
133+ omx->transform = (OMX_DISPLAYTRANSFORMTYPE)mmal->transform;
134 rect_to_omx(&omx->dest_rect, &mmal->dest_rect);
135 rect_to_omx(&omx->src_rect, &mmal->src_rect);
136 omx->noaspect = mmal->noaspect;
137- omx->mode = mmal->mode;
138+ omx->mode = (OMX_DISPLAYMODETYPE)mmal->mode;
139 omx->pixel_x = mmal->pixel_x;
140 omx->pixel_y = mmal->pixel_y;
141 omx->layer = mmal->layer;
142diff --git a/interface/mmal/vc/mmal_vc_client.c b/interface/mmal/vc/mmal_vc_client.c
143index b60544b..bd27fc5 100644
144--- a/interface/mmal/vc/mmal_vc_client.c
145+++ b/interface/mmal/vc/mmal_vc_client.c
146@@ -99,7 +99,7 @@ static MMAL_STATUS_T create_waitpool(MMAL_WAITPOOL_T *waitpool)
147 MMAL_STATUS_T status;
148 int i;
149
150- status = vcos_semaphore_create(&waitpool->sem, VCOS_FUNCTION,
151+ status = (MMAL_STATUS_T)vcos_semaphore_create(&waitpool->sem, VCOS_FUNCTION,
152 MAX_WAITERS);
153 if (status != MMAL_SUCCESS)
154 return status;
155@@ -107,7 +107,7 @@ static MMAL_STATUS_T create_waitpool(MMAL_WAITPOOL_T *waitpool)
156 for (i=0; i<MAX_WAITERS; i++)
157 {
158 waitpool->waiters[i].inuse = 0;
159- status = vcos_semaphore_create(&waitpool->waiters[i].sem,
160+ status = (MMAL_STATUS_T)vcos_semaphore_create(&waitpool->waiters[i].sem,
161 "mmal waiter", 0);
162 if (status != MMAL_SUCCESS)
163 break;
164--
1652.7.0
166
diff --git a/recipes-graphics/userland/userland/0007-vcos_platform_types-Dont-use-extern-inline-with-clan.patch b/recipes-graphics/userland/userland/0007-vcos_platform_types-Dont-use-extern-inline-with-clan.patch
new file mode 100644
index 0000000..53a2a26
--- /dev/null
+++ b/recipes-graphics/userland/userland/0007-vcos_platform_types-Dont-use-extern-inline-with-clan.patch
@@ -0,0 +1,84 @@
1From e60f708bef880542fbe45df7dba982c886852dd4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 23 Aug 2015 13:41:33 -0700
4Subject: [PATCH 07/16] vcos_platform_types: Dont use extern inline with clang
5
6Its very gcc specific implementation here in this code, we cant use
7it with clang as such, so we will use static inline instead which is
8common across gcc and clang starting c99 std onwards
9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 interface/vcos/pthreads/vcos_platform_types.h | 4 ----
13 interface/vcos/vcos_timer.h | 5 -----
14 interface/vcos/vcos_types.h | 2 +-
15 3 files changed, 1 insertion(+), 10 deletions(-)
16
17diff --git a/interface/vcos/pthreads/vcos_platform_types.h b/interface/vcos/pthreads/vcos_platform_types.h
18index 64fb381..6ebcaad 100644
19--- a/interface/vcos/pthreads/vcos_platform_types.h
20+++ b/interface/vcos/pthreads/vcos_platform_types.h
21@@ -60,10 +60,6 @@ vcos_pthreads_logging_assert(const char *file, const char *func, unsigned int li
22
23 #define VCOS_ASSERT_MSG(...) ((VCOS_ASSERT_LOGGING && !VCOS_ASSERT_LOGGING_DISABLE) ? vcos_pthreads_logging_assert(__FILE__, __func__, __LINE__, __VA_ARGS__) : (void)0)
24
25-#define VCOS_INLINE_BODIES
26-#define VCOS_INLINE_DECL extern
27-#define VCOS_INLINE_IMPL static __inline__
28-
29 #ifdef __cplusplus
30 }
31 #endif
32diff --git a/interface/vcos/vcos_timer.h b/interface/vcos/vcos_timer.h
33index bdfa657..1de2d46 100644
34--- a/interface/vcos/vcos_timer.h
35+++ b/interface/vcos/vcos_timer.h
36@@ -76,7 +76,6 @@ VCOSPRE_ VCOS_STATUS_T VCOSPOST_ vcos_timer_init(void);
37 * @param context context passed to expiration routine
38 *
39 */
40-VCOS_INLINE_DECL
41 VCOS_STATUS_T vcos_timer_create(VCOS_TIMER_T *timer,
42 const char *name,
43 void (*expiration_routine)(void *context),
44@@ -91,24 +90,20 @@ VCOS_STATUS_T vcos_timer_create(VCOS_TIMER_T *timer,
45 * @param timer timer handle
46 * @param delay Delay to wait for, in ms
47 */
48-VCOS_INLINE_DECL
49 void vcos_timer_set(VCOS_TIMER_T *timer, VCOS_UNSIGNED delay);
50
51 /** Stop an already running timer.
52 *
53 * @param timer timer handle
54 */
55-VCOS_INLINE_DECL
56 void vcos_timer_cancel(VCOS_TIMER_T *timer);
57
58 /** Stop a timer and restart it.
59 * @param timer timer handle
60 * @param delay delay in ms
61 */
62-VCOS_INLINE_DECL
63 void vcos_timer_reset(VCOS_TIMER_T *timer, VCOS_UNSIGNED delay);
64
65-VCOS_INLINE_DECL
66 void vcos_timer_delete(VCOS_TIMER_T *timer);
67
68 #ifdef __cplusplus
69diff --git a/interface/vcos/vcos_types.h b/interface/vcos/vcos_types.h
70index e64fd99..7d86742 100644
71--- a/interface/vcos/vcos_types.h
72+++ b/interface/vcos/vcos_types.h
73@@ -120,7 +120,7 @@ typedef enum
74
75 #if defined(NDEBUG)
76
77-#ifdef __GNUC__
78+#if defined(__GNUC__) && !defined(__clang__)
79 # define VCOS_INLINE_DECL extern
80 # define VCOS_INLINE_IMPL static __inline__
81 #else
82--
832.7.0
84
diff --git a/recipes-graphics/userland/userland_git.bb b/recipes-graphics/userland/userland_git.bb
index 4323228..bbba080 100644
--- a/recipes-graphics/userland/userland_git.bb
+++ b/recipes-graphics/userland/userland_git.bb
@@ -22,8 +22,10 @@ SRC_URI = "\
22 file://0002-musl-inspired-fixed.patch \ 22 file://0002-musl-inspired-fixed.patch \
23 file://0003-set-VMCS_INSTALL_PREFIX-to-usr.patch \ 23 file://0003-set-VMCS_INSTALL_PREFIX-to-usr.patch \
24 file://0004-cmake-generate-and-install-pkgconfig-files.patch \ 24 file://0004-cmake-generate-and-install-pkgconfig-files.patch \
25 " 25 file://0005-user-vcsm-Fix-build-with-clang.patch \
26 26 file://0006-Fix-enum-type-conversion-warnings.patch \
27 file://0007-vcos_platform_types-Dont-use-extern-inline-with-clan.patch \
28"
27S = "${WORKDIR}/git" 29S = "${WORKDIR}/git"
28 30
29inherit cmake pkgconfig 31inherit cmake pkgconfig