[libcamera-devel] [PATCH] libcamera: pipeline: simple: Use std::make_tuple()

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Jul 16 16:06:08 CEST 2020


Hi Niklas, Laurent,

On 15/07/2020 10:35, Laurent Pinchart wrote:
> Hi Niklas,
> 
> On Wed, Jul 15, 2020 at 08:20:08AM +0200, Niklas Söderlund wrote:
>> On 2020-07-15 02:33:25 +0300, Laurent Pinchart wrote:
>>> Prior to N4387 ([1]), the std::tuple::tuple(const Types&...) constructor
>>> was unconditionally explicit. gcc 5 doesn't implement N4387, leading to
>>> a compilation error in the simple pipeline handler. Use
>>> std::make_tuple() to fix it.
>>>
>>> [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387.html
>>>
>>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>>
>> Maybe it's time we considered to drop support for gcc5 and possibly even 
>> gcc6? But that is a topic for a another thread,
> 
> I wouldn't be against that.

I can't recall if we discussed on IRC or a thread, but indeed, if a
distribution has a kernel older than we can support, then I don't think
we need to support the build on that system either.

- Ubuntu only brought in kernel v5.0 at 18.04.3, and 18.04 ships with
gcc v7.

- On Debian, Stretch(9) uses kernel v4.14, and buster(10) has v5.4.
Buster ships with GCC v8.

- Fedora picks up a v5.0 kernel in Fedora 30, which ships gcc v9.



So I don't foresee much reason to keep gcc 5/6 support around ...
Does anyone know of a distribution that uses a kernel >= 5.0 which ships
gcc <= 6?



> 
>> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
>>
>>> ---
>>>  src/libcamera/pipeline/simple/converter.cpp | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
>>> index dc7c046329f1..75fb297ebd58 100644
>>> --- a/src/libcamera/pipeline/simple/converter.cpp
>>> +++ b/src/libcamera/pipeline/simple/converter.cpp
>>> @@ -271,9 +271,9 @@ SimpleConverter::strideAndFrameSize(const Size &size,
>>>  
>>>  	int ret = m2m_->capture()->tryFormat(&format);
>>>  	if (ret < 0)
>>> -		return { 0, 0 };
>>> +		return std::make_tuple(0, 0);
>>>  
>>> -	return { format.planes[0].bpl, format.planes[0].size };
>>> +	return std::make_tuple(format.planes[0].bpl, format.planes[0].size);

GCC support aside, I don't see anything wrong here in this patch though
if you still want to integrate it...

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

>>>  }
>>>  
>>>  } /* namespace libcamera */
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list