Message ID | 1520368138-7500-1-git-send-email-john.stultz@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [RFC] libdrm: gralloc_handle.h: Fix build issue with Android | expand |
Hey John, Yeah, the return type should be changed. robher: Do you have any preferences? Rob. On 03/06/2018 09:28 PM, John Stultz wrote: > In trying to integrate the new gralloc_handle.h with the > drm_hwcomposer, I started seeing the following compilation > errors: > > In file included from external/drm_hwcomposer/platformdrmgeneric.cpp:28: > external/libdrm/android/gralloc_handle.h:108:9: error: cannot initialize return object of type 'native_handle_t *' (aka 'native_handle *') with an lvalue of type 'struct gralloc_handle_t *' > return handle; > ^~~~~~ > 1 error generated. > > This seems to be due to the gralloc_handle_create() definition > claiming to return a native_handle_t * type, rather then a > gralloc_handle_t *, which is what the code actually returns. > > This function isn't actually used in the current drm_hwcomposer, > so I'm not totally sure that this fix is correct (rather then > returning the gralloc_handle_t's embadedded native_handle_t ptr). > > But it seems something like this is needed. > > Cc: Robert Foss <robert.foss@collabora.com> > Cc: Rob Herring <robh@kernel.org> > Signed-off-by: John Stultz <john.stultz@linaro.org> > --- > android/gralloc_handle.h | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/android/gralloc_handle.h b/android/gralloc_handle.h > index 9cb5a5d..6e925c9 100644 > --- a/android/gralloc_handle.h > +++ b/android/gralloc_handle.h > @@ -84,7 +84,7 @@ static inline struct gralloc_handle_t *gralloc_handle(buffer_handle_t handle) > /** > * Create a buffer handle. > */ > -static inline native_handle_t *gralloc_handle_create(int32_t width, > +static inline gralloc_handle_t *gralloc_handle_create(int32_t width, > int32_t height, > int32_t hal_format, > int32_t usage) > @@ -107,5 +107,4 @@ static inline native_handle_t *gralloc_handle_create(int32_t width, > > return handle; > } > - > #endif >
diff --git a/android/gralloc_handle.h b/android/gralloc_handle.h index 9cb5a5d..6e925c9 100644 --- a/android/gralloc_handle.h +++ b/android/gralloc_handle.h @@ -84,7 +84,7 @@ static inline struct gralloc_handle_t *gralloc_handle(buffer_handle_t handle) /** * Create a buffer handle. */ -static inline native_handle_t *gralloc_handle_create(int32_t width, +static inline gralloc_handle_t *gralloc_handle_create(int32_t width, int32_t height, int32_t hal_format, int32_t usage) @@ -107,5 +107,4 @@ static inline native_handle_t *gralloc_handle_create(int32_t width, return handle; } - #endif
In trying to integrate the new gralloc_handle.h with the drm_hwcomposer, I started seeing the following compilation errors: In file included from external/drm_hwcomposer/platformdrmgeneric.cpp:28: external/libdrm/android/gralloc_handle.h:108:9: error: cannot initialize return object of type 'native_handle_t *' (aka 'native_handle *') with an lvalue of type 'struct gralloc_handle_t *' return handle; ^~~~~~ 1 error generated. This seems to be due to the gralloc_handle_create() definition claiming to return a native_handle_t * type, rather then a gralloc_handle_t *, which is what the code actually returns. This function isn't actually used in the current drm_hwcomposer, so I'm not totally sure that this fix is correct (rather then returning the gralloc_handle_t's embadedded native_handle_t ptr). But it seems something like this is needed. Cc: Robert Foss <robert.foss@collabora.com> Cc: Rob Herring <robh@kernel.org> Signed-off-by: John Stultz <john.stultz@linaro.org> --- android/gralloc_handle.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- 2.7.4