[libcamera-devel] [PATCH 2/2] v4l2: v4l2_compat_manager: Use openat64 and mmap64

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jun 17 02:29:31 CEST 2020


Hi Paul,

Thank you for the patch.

On Tue, Jun 16, 2020 at 07:56:33PM +0900, Paul Elder wrote:
> Since we set _FILE_OFFSET_BITS to 32 to force the various open and mmap
> symbols that we export to not be the 64-bit versions, our dlsym to get
> the original open and mmap calls will not automatically be converted to
> their 64-bit versions. Since we intercept both 32-bit and 64-bit
> versions of open and mmap, we should be using the 64-bit version to
> service both. Fetch the 64-bit versions of openat and mmap directly.

Ah, this answer a question from the review of 1/2 :-) Shouldn't this
patch be squashed with 1/2 to avoid bisection breakages ?

> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
>  src/v4l2/v4l2_compat_manager.cpp | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
> index f928760..9298c0f 100644
> --- a/src/v4l2/v4l2_compat_manager.cpp
> +++ b/src/v4l2/v4l2_compat_manager.cpp
> @@ -39,11 +39,11 @@ void get_symbol(T &func, const char *name)
>  V4L2CompatManager::V4L2CompatManager()
>  	: cm_(nullptr)
>  {
> -	get_symbol(fops_.openat, "openat");
> +	get_symbol(fops_.openat, "openat64");
>  	get_symbol(fops_.dup, "dup");
>  	get_symbol(fops_.close, "close");
>  	get_symbol(fops_.ioctl, "ioctl");
> -	get_symbol(fops_.mmap, "mmap");
> +	get_symbol(fops_.mmap, "mmap64");
>  	get_symbol(fops_.munmap, "munmap");
>  }
>  

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list