[{"id":1705,"web_url":"https://patchwork.libcamera.org/comment/1705/","msgid":"<20190527091807.7snlquso5zpncodk@uno.localdomain>","date":"2019-05-27T09:18:07","subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n\nOn Mon, May 27, 2019 at 02:15:27AM +0200, Niklas Söderlund wrote:\n> There are valid use-cases where one might wish to partially initialize a\n> structure when creating it without needing to initialize all members.\n> This is especially common when working with V4L2.\n>\n> struct foo {\n>     int bar;\n>     int baz;\n> };\n>\n> struct foo f = {\n>     .bar = 1;\n> };\n>\n> Without -Wno-missing-field-initializers fails to compile with the error,\n\nI asked for the same a few weeks ago, so I welcome this change\nAcked-by: Jacopo Mondi <jacopo@jmondi.org>\n>\n>     error: missing initializer for member ‘foo::baz’ [-Werror=missing-field-initializers]\n>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  meson.build | 1 +\n>  1 file changed, 1 insertion(+)\n>\n> diff --git a/meson.build b/meson.build\n> index 4d3e99d3e58f71d5..90ad58328f9a2bd5 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -22,6 +22,7 @@ endif\n>\n>  common_arguments = [\n>      '-Wno-unused-parameter',\n> +    '-Wno-missing-field-initializers',\n>      '-include', 'config.h',\n>  ]\n>\n> --\n> 2.21.0\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net\n\t[217.70.183.193])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 72ED3600EA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 May 2019 11:17:05 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay1-d.mail.gandi.net (Postfix) with ESMTPSA id A0C66240008;\n\tMon, 27 May 2019 09:17:04 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Mon, 27 May 2019 11:18:07 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190527091807.7snlquso5zpncodk@uno.localdomain>","References":"<20190527001543.13593-1-niklas.soderlund@ragnatech.se>\n\t<20190527001543.13593-2-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"4rleq4s3bgxh3am7\"","Content-Disposition":"inline","In-Reply-To":"<20190527001543.13593-2-niklas.soderlund@ragnatech.se>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 27 May 2019 09:17:05 -0000"}},{"id":1724,"web_url":"https://patchwork.libcamera.org/comment/1724/","msgid":"<45f9ba91-566b-adab-b602-604a35e29b7b@ideasonboard.com>","date":"2019-05-29T21:13:58","subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Niklas, Jacopo,\n\nOn 27/05/2019 10:18, Jacopo Mondi wrote:\n> Hi Niklas,\n> \n> On Mon, May 27, 2019 at 02:15:27AM +0200, Niklas Söderlund wrote:\n>> There are valid use-cases where one might wish to partially initialize a\n>> structure when creating it without needing to initialize all members.\n>> This is especially common when working with V4L2.\n>>\n>> struct foo {\n>>     int bar;\n>>     int baz;\n>> };\n>>\n>> struct foo f = {\n>>     .bar = 1;\n>> };\n>>\n>> Without -Wno-missing-field-initializers fails to compile with the error,\n> \n> I asked for the same a few weeks ago, so I welcome this change\n> Acked-by: Jacopo Mondi <jacopo@jmondi.org>\n\nI was uncertain before, but I can't deny it would be useful to simplify\ncode /iff/ you know certain members do not need to be initialised.\n\nWe'll have to watch our reviews more closely on initialising structures :-)\n\n\nAcked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>>\n>>     error: missing initializer for member ‘foo::baz’ [-Werror=missing-field-initializers]\n>>\n>> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n>> ---\n>>  meson.build | 1 +\n>>  1 file changed, 1 insertion(+)\n>>\n>> diff --git a/meson.build b/meson.build\n>> index 4d3e99d3e58f71d5..90ad58328f9a2bd5 100644\n>> --- a/meson.build\n>> +++ b/meson.build\n>> @@ -22,6 +22,7 @@ endif\n>>\n>>  common_arguments = [\n>>      '-Wno-unused-parameter',\n>> +    '-Wno-missing-field-initializers',\n>>      '-include', 'config.h',\n>>  ]\n>>\n>> --\n>> 2.21.0\n>>\n>> _______________________________________________\n>> libcamera-devel mailing list\n>> libcamera-devel@lists.libcamera.org\n>> https://lists.libcamera.org/listinfo/libcamera-devel\n>>\n>> _______________________________________________\n>> libcamera-devel mailing list\n>> libcamera-devel@lists.libcamera.org\n>> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0DFE760E46\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 29 May 2019 23:14:03 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 42BCD524;\n\tWed, 29 May 2019 23:14:02 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1559164442;\n\tbh=TlITfHjedKV5e5Hxb6+6xZZ6OyhPnFvVb96OvLLpqwU=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=OYya8+z1MsGTNzi5faPm3Re0bQImr5HozjisvqrOcJfS6JhBeDX6UkV7pKrupftG7\n\tkw4wBrLyu+f+AlTTaxLYomnehTByMYNgCO8wtrixwgTxVhxmh3hMo16vC2F6yLKElL\n\tsNHv3L7v22LNIdU7tNKSjY6X8xkj38irz7qH0cww=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Jacopo Mondi <jacopo@jmondi.org>, =?utf-8?q?Niklas_S=C3=B6derlund?=\n\t<niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20190527001543.13593-1-niklas.soderlund@ragnatech.se>\n\t<20190527001543.13593-2-niklas.soderlund@ragnatech.se>\n\t<20190527091807.7snlquso5zpncodk@uno.localdomain>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tsbsRB8KNNvVXBOVNwko86rQqF9drZuw=","Organization":"Ideas on Board","Message-ID":"<45f9ba91-566b-adab-b602-604a35e29b7b@ideasonboard.com>","Date":"Wed, 29 May 2019 22:13:58 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.6.1","MIME-Version":"1.0","In-Reply-To":"<20190527091807.7snlquso5zpncodk@uno.localdomain>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Wed, 29 May 2019 21:14:03 -0000"}},{"id":1733,"web_url":"https://patchwork.libcamera.org/comment/1733/","msgid":"<3a37b6cd-affd-649a-9342-45adf99851a5@ideasonboard.com>","date":"2019-05-31T10:10:10","subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Niklas,\n\nOn 29/05/2019 22:13, Kieran Bingham wrote:\n> Hi Niklas, Jacopo,\n> \n> On 27/05/2019 10:18, Jacopo Mondi wrote:\n>> Hi Niklas,\n>>\n>> On Mon, May 27, 2019 at 02:15:27AM +0200, Niklas Söderlund wrote:\n>>> There are valid use-cases where one might wish to partially initialize a\n>>> structure when creating it without needing to initialize all members.\n>>> This is especially common when working with V4L2.\n>>>\n>>> struct foo {\n>>>     int bar;\n>>>     int baz;\n>>> };\n>>>\n>>> struct foo f = {\n>>>     .bar = 1;\n>>> };\n>>>\n>>> Without -Wno-missing-field-initializers fails to compile with the error,\n>>\n>> I asked for the same a few weeks ago, so I welcome this change\n>> Acked-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> I was uncertain before, but I can't deny it would be useful to simplify\n> code /iff/ you know certain members do not need to be initialised.\n> \n> We'll have to watch our reviews more closely on initialising structures :-)\n> \n> \n> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\nErrr,,, uhmmm ... sorry - Ack retracted? :-(\n\nThis breaks compilation on GCC v5 and GCC v6.\n\n(Raspbian has GCC v6.3, and compilation on the target fails.)\n\n\nTo fix, I had to make the following change for this series.\nOther solutions may also exist :-)\n\n> @@ -309,15 +309,15 @@ std::vector<unsigned int> V4L2Subdevice::enumPadCodes(unsigned int pad)\n>  {\n>  \tstd::vector<unsigned int> codes;\n>  \tint ret;\n>  \n>  \tfor (unsigned int index = 0;; index++) {\n> -\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum = {\n> -\t\t\t.pad = pad,\n> -\t\t\t.index = index,\n> -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n> -\t\t};\n> +\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum;\n> +\n> +\t\tmbusEnum.pad = pad;\n> +\t\tmbusEnum.index = index;\n> +\t\tmbusEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n>  \n>  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_MBUS_CODE, &mbusEnum);\n>  \t\tif (ret)\n>  \t\t\tbreak;\n>  \n> @@ -340,16 +340,16 @@ std::vector<SizeRange> V4L2Subdevice::enumPadSizes(unsigned int pad,\n>  {\n>  \tstd::vector<SizeRange> sizes;\n>  \tint ret;\n>  \n>  \tfor (unsigned int index = 0;; index++) {\n> -\t\tstruct v4l2_subdev_frame_size_enum sizeEnum = {\n> -\t\t\t.index = index,\n> -\t\t\t.pad = pad,\n> -\t\t\t.code = code,\n> -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n> -\t\t};\n> +\t\tstruct v4l2_subdev_frame_size_enum sizeEnum;\n> +\n> +\t\tsizeEnum.index = index;\n> +\t\tsizeEnum.pad = pad;\n> +\t\tsizeEnum.code = code;\n> +\t\tsizeEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n>  \n>  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_FRAME_SIZE, &sizeEnum);\n>  \t\tif (ret)\n>  \t\t\tbreak;\n\n\n\n\n\n\n> \n>>>\n>>>     error: missing initializer for member ‘foo::baz’ [-Werror=missing-field-initializers]\n>>>\n>>> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n>>> ---\n>>>  meson.build | 1 +\n>>>  1 file changed, 1 insertion(+)\n>>>\n>>> diff --git a/meson.build b/meson.build\n>>> index 4d3e99d3e58f71d5..90ad58328f9a2bd5 100644\n>>> --- a/meson.build\n>>> +++ b/meson.build\n>>> @@ -22,6 +22,7 @@ endif\n>>>\n>>>  common_arguments = [\n>>>      '-Wno-unused-parameter',\n>>> +    '-Wno-missing-field-initializers',\n>>>      '-include', 'config.h',\n>>>  ]\n>>>\n>>> --\n>>> 2.21.0\n>>>\n>>> _______________________________________________\n>>> libcamera-devel mailing list\n>>> libcamera-devel@lists.libcamera.org\n>>> https://lists.libcamera.org/listinfo/libcamera-devel\n>>>\n>>> _______________________________________________\n>>> libcamera-devel mailing list\n>>> libcamera-devel@lists.libcamera.org\n>>> https://lists.libcamera.org/listinfo/libcamera-devel\n>","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 738C0618F7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2019 12:10:14 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D1899524;\n\tFri, 31 May 2019 12:10:13 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1559297414;\n\tbh=+PnvZwpw8TvvJSliJun9znuBDyWawFvB06hmbsZ8bLc=;\n\th=Reply-To:Subject:From:To:Cc:References:Date:In-Reply-To:From;\n\tb=b28cyHahWnxUUE/PM+038LsxCEXmG7oa2cfw0GZ7b9kAxeHsuoIN9DaXsBj2VwyT7\n\t0/4UF+F1WTaPJzkG7duRs2fDX1E60JSmzS2UtXE5sXkJHp/Usah4VzhVgJTt6IpaGA\n\t7O9aK6AfdwUyJ4YL5p60YgwqojDoInX0lLXmNbRw=","Reply-To":"kieran.bingham@ideasonboard.com","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","References":"<20190527001543.13593-1-niklas.soderlund@ragnatech.se>\n\t<20190527001543.13593-2-niklas.soderlund@ragnatech.se>\n\t<20190527091807.7snlquso5zpncodk@uno.localdomain>\n\t<45f9ba91-566b-adab-b602-604a35e29b7b@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tsbsRB8KNNvVXBOVNwko86rQqF9drZuw=","Organization":"Ideas on Board","Message-ID":"<3a37b6cd-affd-649a-9342-45adf99851a5@ideasonboard.com>","Date":"Fri, 31 May 2019 11:10:10 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.6.1","MIME-Version":"1.0","In-Reply-To":"<45f9ba91-566b-adab-b602-604a35e29b7b@ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Fri, 31 May 2019 10:10:14 -0000"}},{"id":1793,"web_url":"https://patchwork.libcamera.org/comment/1793/","msgid":"<20190608162056.GH4786@pendragon.ideasonboard.com>","date":"2019-06-08T16:20:56","subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Fri, May 31, 2019 at 11:10:10AM +0100, Kieran Bingham wrote:\n> On 29/05/2019 22:13, Kieran Bingham wrote:\n> > On 27/05/2019 10:18, Jacopo Mondi wrote:\n> >> On Mon, May 27, 2019 at 02:15:27AM +0200, Niklas Söderlund wrote:\n> >>> There are valid use-cases where one might wish to partially initialize a\n> >>> structure when creating it without needing to initialize all members.\n> >>> This is especially common when working with V4L2.\n> >>>\n> >>> struct foo {\n> >>>     int bar;\n> >>>     int baz;\n> >>> };\n> >>>\n> >>> struct foo f = {\n> >>>     .bar = 1;\n> >>> };\n> >>>\n> >>> Without -Wno-missing-field-initializers fails to compile with the error,\n> >>\n> >> I asked for the same a few weeks ago, so I welcome this change\n> >> Acked-by: Jacopo Mondi <jacopo@jmondi.org>\n> > \n> > I was uncertain before, but I can't deny it would be useful to simplify\n> > code /iff/ you know certain members do not need to be initialised.\n> > \n> > We'll have to watch our reviews more closely on initialising structures :-)\n> > \n> > Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> Errr,,, uhmmm ... sorry - Ack retracted? :-(\n> \n> This breaks compilation on GCC v5 and GCC v6.\n> \n> (Raspbian has GCC v6.3, and compilation on the target fails.)\n\nCould you please share the error messages ?\n\n> To fix, I had to make the following change for this series.\n> Other solutions may also exist :-)\n> \n> > @@ -309,15 +309,15 @@ std::vector<unsigned int> V4L2Subdevice::enumPadCodes(unsigned int pad)\n> >  {\n> >  \tstd::vector<unsigned int> codes;\n> >  \tint ret;\n> >  \n> >  \tfor (unsigned int index = 0;; index++) {\n> > -\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum = {\n> > -\t\t\t.pad = pad,\n> > -\t\t\t.index = index,\n> > -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n> > -\t\t};\n> > +\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum;\n> > +\n> > +\t\tmbusEnum.pad = pad;\n> > +\t\tmbusEnum.index = index;\n> > +\t\tmbusEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n> >  \n> >  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_MBUS_CODE, &mbusEnum);\n> >  \t\tif (ret)\n> >  \t\t\tbreak;\n> >  \n> > @@ -340,16 +340,16 @@ std::vector<SizeRange> V4L2Subdevice::enumPadSizes(unsigned int pad,\n> >  {\n> >  \tstd::vector<SizeRange> sizes;\n> >  \tint ret;\n> >  \n> >  \tfor (unsigned int index = 0;; index++) {\n> > -\t\tstruct v4l2_subdev_frame_size_enum sizeEnum = {\n> > -\t\t\t.index = index,\n> > -\t\t\t.pad = pad,\n> > -\t\t\t.code = code,\n> > -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n> > -\t\t};\n> > +\t\tstruct v4l2_subdev_frame_size_enum sizeEnum;\n> > +\n> > +\t\tsizeEnum.index = index;\n> > +\t\tsizeEnum.pad = pad;\n> > +\t\tsizeEnum.code = code;\n> > +\t\tsizeEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n> >  \n> >  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_FRAME_SIZE, &sizeEnum);\n> >  \t\tif (ret)\n> >  \t\t\tbreak;\n> > \n> >>>     error: missing initializer for member ‘foo::baz’ [-Werror=missing-field-initializers]\n> >>>\n> >>> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> >>> ---\n> >>>  meson.build | 1 +\n> >>>  1 file changed, 1 insertion(+)\n> >>>\n> >>> diff --git a/meson.build b/meson.build\n> >>> index 4d3e99d3e58f71d5..90ad58328f9a2bd5 100644\n> >>> --- a/meson.build\n> >>> +++ b/meson.build\n> >>> @@ -22,6 +22,7 @@ endif\n> >>>\n> >>>  common_arguments = [\n> >>>      '-Wno-unused-parameter',\n> >>> +    '-Wno-missing-field-initializers',\n> >>>      '-include', 'config.h',\n> >>>  ]\n> >>>","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 56BB76BE31\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  8 Jun 2019 18:21:11 +0200 (CEST)","from pendragon.ideasonboard.com (unknown\n\t[IPv6:2a02:a03f:44f0:8500:ca05:8177:199c:fed4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C37295D;\n\tSat,  8 Jun 2019 18:21:10 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1560010870;\n\tbh=oqEm+/CTK6iH4eLH74G0CIAJEC+Rw3CtzzNVZ5kZtOo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ed2XYZCnqDp1nkznpiVE6tcxuc3/KtuCptLKwh9KDtBFJeeo6coRZrE9j37KqboQ1\n\tClRv7Dt1Ojr3XcUfnh1b79SHPZW5w16XGpuaIKFtpEW80kjRF275/TR1t7oPhlr6uf\n\teIKk+qbz50h1ene7qv8DFy94aRbdye5nsEOIqKNY=","Date":"Sat, 8 Jun 2019 19:20:56 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>,\n\tlibcamera-devel@lists.libcamera.org","Message-ID":"<20190608162056.GH4786@pendragon.ideasonboard.com>","References":"<20190527001543.13593-1-niklas.soderlund@ragnatech.se>\n\t<20190527001543.13593-2-niklas.soderlund@ragnatech.se>\n\t<20190527091807.7snlquso5zpncodk@uno.localdomain>\n\t<45f9ba91-566b-adab-b602-604a35e29b7b@ideasonboard.com>\n\t<3a37b6cd-affd-649a-9342-45adf99851a5@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<3a37b6cd-affd-649a-9342-45adf99851a5@ideasonboard.com>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Sat, 08 Jun 2019 16:21:11 -0000"}},{"id":1799,"web_url":"https://patchwork.libcamera.org/comment/1799/","msgid":"<29051d58-9072-db13-6e29-91a3d5e07f66@ideasonboard.com>","date":"2019-06-09T00:26:00","subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 08/06/2019 17:20, Laurent Pinchart wrote:\n> Hi Kieran,\n> \n> On Fri, May 31, 2019 at 11:10:10AM +0100, Kieran Bingham wrote:\n>> On 29/05/2019 22:13, Kieran Bingham wrote:\n>>> On 27/05/2019 10:18, Jacopo Mondi wrote:\n>>>> On Mon, May 27, 2019 at 02:15:27AM +0200, Niklas Söderlund wrote:\n>>>>> There are valid use-cases where one might wish to partially initialize a\n>>>>> structure when creating it without needing to initialize all members.\n>>>>> This is especially common when working with V4L2.\n>>>>>\n>>>>> struct foo {\n>>>>>     int bar;\n>>>>>     int baz;\n>>>>> };\n>>>>>\n>>>>> struct foo f = {\n>>>>>     .bar = 1;\n>>>>> };\n>>>>>\n>>>>> Without -Wno-missing-field-initializers fails to compile with the error,\n>>>>\n>>>> I asked for the same a few weeks ago, so I welcome this change\n>>>> Acked-by: Jacopo Mondi <jacopo@jmondi.org>\n>>>\n>>> I was uncertain before, but I can't deny it would be useful to simplify\n>>> code /iff/ you know certain members do not need to be initialised.\n>>>\n>>> We'll have to watch our reviews more closely on initialising structures :-)\n>>>\n>>> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>\n>> Errr,,, uhmmm ... sorry - Ack retracted? :-(\n>>\n>> This breaks compilation on GCC v5 and GCC v6.\n>>\n>> (Raspbian has GCC v6.3, and compilation on the target fails.)\n> \n> Could you please share the error messages ?\n> \n\nAh yes, sorry - that might have been useful content:\n\n\nc++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera\n-I../src/libcamera -Iinclude -I../include -I../src/libcamera/include\n-fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall\n-Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g\n-Wno-unused-parameter -Wno-missing-field-initializers -include config.h\n-fPIC -MD -MQ 'src/libcamera/4ab8042@@camera@sha/v4l2_subdevice.cpp.o'\n-MF 'src/libcamera/4ab8042@@camera@sha/v4l2_subdevice.cpp.o.d' -o\n'src/libcamera/4ab8042@@camera@sha/v4l2_subdevice.cpp.o' -c\n../src/libcamera/v4l2_subdevice.cpp\n../src/libcamera/v4l2_subdevice.cpp: In member function\n‘std::vector<unsigned int>\nlibcamera::V4L2Subdevice::enumPadCodes(unsigned int)’:\n../src/libcamera/v4l2_subdevice.cpp:517:3: sorry, unimplemented:\nnon-trivial designated initializers not supported\n   };\n   ^\n../src/libcamera/v4l2_subdevice.cpp: In member function\n‘std::vector<libcamera::SizeRange>\nlibcamera::V4L2Subdevice::enumPadSizes(unsigned int, unsigned int)’:\n../src/libcamera/v4l2_subdevice.cpp:549:3: sorry, unimplemented:\nnon-trivial designated initializers not supported\n   };\n   ^\n\n\n\"Sorry, unimplemented:\" - well at least they apologised :-D\n\nI'm not sure what we could do here. It sounds like they simply hadn't\nimplemented the 'feature' at this point.\n\nWe could explicitly state that our minimum compiler requirement is\nGCCv7+ (once we verify GCCv7 supports our requirements)?\n\n--\nKieran\n\n\n(gcc version information from the target below:)\n\ngcc -v\nUsing built-in specs.\nCOLLECT_GCC=gcc\nCOLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper\nTarget: arm-linux-gnueabihf\nConfigured with: ../src/configure -v --with-pkgversion='Raspbian\n6.3.0-18+rpi1+deb9u1'\n--with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs\n--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++\n--prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf-\n--enable-shared --enable-linker-build-id --libexecdir=/usr/lib\n--without-included-gettext --enable-threads=posix --libdir=/usr/lib\n--enable-nls --with-sysroot=/ --enable-clocale=gnu\n--enable-libstdcxx-debug --enable-libstdcxx-time=yes\n--with-default-libstdcxx-abi=new --enable-gnu-unique-object\n--disable-libitm --disable-libquadmath --enable-plugin\n--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk\n--enable-gtk-cairo\n--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre\n--enable-java-home\n--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf\n--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf\n--with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar\n--with-target-system-zlib --enable-objc-gc=auto --enable-multiarch\n--disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp\n--with-float=hard --enable-checking=release --build=arm-linux-gnueabihf\n--host=arm-linux-gnueabihf --target=arm-linux-gnueabihf\nThread model: posix\ngcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1)\n\n\n>> To fix, I had to make the following change for this series.\n>> Other solutions may also exist :-)\n>>\n>>> @@ -309,15 +309,15 @@ std::vector<unsigned int> V4L2Subdevice::enumPadCodes(unsigned int pad)\n>>>  {\n>>>  \tstd::vector<unsigned int> codes;\n>>>  \tint ret;\n>>>  \n>>>  \tfor (unsigned int index = 0;; index++) {\n>>> -\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum = {\n>>> -\t\t\t.pad = pad,\n>>> -\t\t\t.index = index,\n>>> -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n>>> -\t\t};\n>>> +\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum;\n>>> +\n>>> +\t\tmbusEnum.pad = pad;\n>>> +\t\tmbusEnum.index = index;\n>>> +\t\tmbusEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n>>>  \n>>>  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_MBUS_CODE, &mbusEnum);\n>>>  \t\tif (ret)\n>>>  \t\t\tbreak;\n>>>  \n>>> @@ -340,16 +340,16 @@ std::vector<SizeRange> V4L2Subdevice::enumPadSizes(unsigned int pad,\n>>>  {\n>>>  \tstd::vector<SizeRange> sizes;\n>>>  \tint ret;\n>>>  \n>>>  \tfor (unsigned int index = 0;; index++) {\n>>> -\t\tstruct v4l2_subdev_frame_size_enum sizeEnum = {\n>>> -\t\t\t.index = index,\n>>> -\t\t\t.pad = pad,\n>>> -\t\t\t.code = code,\n>>> -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n>>> -\t\t};\n>>> +\t\tstruct v4l2_subdev_frame_size_enum sizeEnum;\n>>> +\n>>> +\t\tsizeEnum.index = index;\n>>> +\t\tsizeEnum.pad = pad;\n>>> +\t\tsizeEnum.code = code;\n>>> +\t\tsizeEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n>>>  \n>>>  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_FRAME_SIZE, &sizeEnum);\n>>>  \t\tif (ret)\n>>>  \t\t\tbreak;\n>>>\n>>>>>     error: missing initializer for member ‘foo::baz’ [-Werror=missing-field-initializers]\n>>>>>\n>>>>> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n>>>>> ---\n>>>>>  meson.build | 1 +\n>>>>>  1 file changed, 1 insertion(+)\n>>>>>\n>>>>> diff --git a/meson.build b/meson.build\n>>>>> index 4d3e99d3e58f71d5..90ad58328f9a2bd5 100644\n>>>>> --- a/meson.build\n>>>>> +++ b/meson.build\n>>>>> @@ -22,6 +22,7 @@ endif\n>>>>>\n>>>>>  common_arguments = [\n>>>>>      '-Wno-unused-parameter',\n>>>>> +    '-Wno-missing-field-initializers',\n>>>>>      '-include', 'config.h',\n>>>>>  ]\n>>>>>\n>","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DF7F76CA33\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  9 Jun 2019 02:26:03 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3E7E55D;\n\tSun,  9 Jun 2019 02:26:03 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1560039963;\n\tbh=kP3MKharPVWbZRYVKmBXKekH9IJs5rclc++0WK+R6sc=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=FduxBk+1m3UYl90PvMwq6uD/MFPieMeDRUyfWqBk3DfZvaZIkkk4nMs7m/+93bknP\n\tfWsk1umOwFY1umSP+eiqWec0sZ9LbTBSGlE2O2AtCnOToqbqeIMNZLTGP1gQDdAnuV\n\tjf54QU8QqdDD4xEVOhoAr/trtJfeeOQEN55x9L9E=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20190527001543.13593-1-niklas.soderlund@ragnatech.se>\n\t<20190527001543.13593-2-niklas.soderlund@ragnatech.se>\n\t<20190527091807.7snlquso5zpncodk@uno.localdomain>\n\t<45f9ba91-566b-adab-b602-604a35e29b7b@ideasonboard.com>\n\t<3a37b6cd-affd-649a-9342-45adf99851a5@ideasonboard.com>\n\t<20190608162056.GH4786@pendragon.ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tsbsRB8KNNvVXBOVNwko86rQqF9drZuw=","Organization":"Ideas on Board","Message-ID":"<29051d58-9072-db13-6e29-91a3d5e07f66@ideasonboard.com>","Date":"Sun, 9 Jun 2019 01:26:00 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.7.0","MIME-Version":"1.0","In-Reply-To":"<20190608162056.GH4786@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Sun, 09 Jun 2019 00:26:04 -0000"}},{"id":1800,"web_url":"https://patchwork.libcamera.org/comment/1800/","msgid":"<20190609101850.GB4778@pendragon.ideasonboard.com>","date":"2019-06-09T10:18:50","subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Sun, Jun 09, 2019 at 01:26:00AM +0100, Kieran Bingham wrote:\n> On 08/06/2019 17:20, Laurent Pinchart wrote:\n> > On Fri, May 31, 2019 at 11:10:10AM +0100, Kieran Bingham wrote:\n> >> On 29/05/2019 22:13, Kieran Bingham wrote:\n> >>> On 27/05/2019 10:18, Jacopo Mondi wrote:\n> >>>> On Mon, May 27, 2019 at 02:15:27AM +0200, Niklas Söderlund wrote:\n> >>>>> There are valid use-cases where one might wish to partially initialize a\n> >>>>> structure when creating it without needing to initialize all members.\n> >>>>> This is especially common when working with V4L2.\n> >>>>>\n> >>>>> struct foo {\n> >>>>>     int bar;\n> >>>>>     int baz;\n> >>>>> };\n> >>>>>\n> >>>>> struct foo f = {\n> >>>>>     .bar = 1;\n> >>>>> };\n> >>>>>\n> >>>>> Without -Wno-missing-field-initializers fails to compile with the error,\n> >>>>\n> >>>> I asked for the same a few weeks ago, so I welcome this change\n> >>>> Acked-by: Jacopo Mondi <jacopo@jmondi.org>\n> >>>\n> >>> I was uncertain before, but I can't deny it would be useful to simplify\n> >>> code /iff/ you know certain members do not need to be initialised.\n> >>>\n> >>> We'll have to watch our reviews more closely on initialising structures :-)\n> >>>\n> >>> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >>\n> >> Errr,,, uhmmm ... sorry - Ack retracted? :-(\n> >>\n> >> This breaks compilation on GCC v5 and GCC v6.\n> >>\n> >> (Raspbian has GCC v6.3, and compilation on the target fails.)\n> > \n> > Could you please share the error messages ?\n> \n> Ah yes, sorry - that might have been useful content:\n> \n> c++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera\n> -I../src/libcamera -Iinclude -I../include -I../src/libcamera/include\n> -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall\n> -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g\n> -Wno-unused-parameter -Wno-missing-field-initializers -include config.h\n> -fPIC -MD -MQ 'src/libcamera/4ab8042@@camera@sha/v4l2_subdevice.cpp.o'\n> -MF 'src/libcamera/4ab8042@@camera@sha/v4l2_subdevice.cpp.o.d' -o\n> 'src/libcamera/4ab8042@@camera@sha/v4l2_subdevice.cpp.o' -c\n> ../src/libcamera/v4l2_subdevice.cpp\n> ../src/libcamera/v4l2_subdevice.cpp: In member function\n> ‘std::vector<unsigned int>\n> libcamera::V4L2Subdevice::enumPadCodes(unsigned int)’:\n> ../src/libcamera/v4l2_subdevice.cpp:517:3: sorry, unimplemented:\n> non-trivial designated initializers not supported\n>    };\n>    ^\n> ../src/libcamera/v4l2_subdevice.cpp: In member function\n> ‘std::vector<libcamera::SizeRange>\n> libcamera::V4L2Subdevice::enumPadSizes(unsigned int, unsigned int)’:\n> ../src/libcamera/v4l2_subdevice.cpp:549:3: sorry, unimplemented:\n> non-trivial designated initializers not supported\n>    };\n>    ^\n> \n> \"Sorry, unimplemented:\" - well at least they apologised :-D\n> \n> I'm not sure what we could do here. It sounds like they simply hadn't\n> implemented the 'feature' at this point.\n> \n> We could explicitly state that our minimum compiler requirement is\n> GCCv7+ (once we verify GCCv7 supports our requirements)?\n\nThe issue is that aggregate designated initializers have been introduced\nin C++20, so we can't depend on it. I see two options, either upgrading\nour minimum compiler version and hoping that it will just work (without\nany formal guarantee that newer compiler versions will handle it\ncorrectly), or stop using designated initializers. If we go for the\nsecond option, this patch won't be needed.\n\n> (gcc version information from the target below:)\n> \n> gcc -v\n> Using built-in specs.\n> COLLECT_GCC=gcc\n> COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper\n> Target: arm-linux-gnueabihf\n> Configured with: ../src/configure -v --with-pkgversion='Raspbian\n> 6.3.0-18+rpi1+deb9u1'\n> --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs\n> --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++\n> --prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf-\n> --enable-shared --enable-linker-build-id --libexecdir=/usr/lib\n> --without-included-gettext --enable-threads=posix --libdir=/usr/lib\n> --enable-nls --with-sysroot=/ --enable-clocale=gnu\n> --enable-libstdcxx-debug --enable-libstdcxx-time=yes\n> --with-default-libstdcxx-abi=new --enable-gnu-unique-object\n> --disable-libitm --disable-libquadmath --enable-plugin\n> --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk\n> --enable-gtk-cairo\n> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre\n> --enable-java-home\n> --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf\n> --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf\n> --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar\n> --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch\n> --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp\n> --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf\n> --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf\n> Thread model: posix\n> gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1)\n> \n> >> To fix, I had to make the following change for this series.\n> >> Other solutions may also exist :-)\n> >>\n> >>> @@ -309,15 +309,15 @@ std::vector<unsigned int> V4L2Subdevice::enumPadCodes(unsigned int pad)\n> >>>  {\n> >>>  \tstd::vector<unsigned int> codes;\n> >>>  \tint ret;\n> >>>  \n> >>>  \tfor (unsigned int index = 0;; index++) {\n> >>> -\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum = {\n> >>> -\t\t\t.pad = pad,\n> >>> -\t\t\t.index = index,\n> >>> -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n> >>> -\t\t};\n> >>> +\t\tstruct v4l2_subdev_mbus_code_enum mbusEnum;\n> >>> +\n> >>> +\t\tmbusEnum.pad = pad;\n> >>> +\t\tmbusEnum.index = index;\n> >>> +\t\tmbusEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n> >>>  \n> >>>  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_MBUS_CODE, &mbusEnum);\n> >>>  \t\tif (ret)\n> >>>  \t\t\tbreak;\n> >>>  \n> >>> @@ -340,16 +340,16 @@ std::vector<SizeRange> V4L2Subdevice::enumPadSizes(unsigned int pad,\n> >>>  {\n> >>>  \tstd::vector<SizeRange> sizes;\n> >>>  \tint ret;\n> >>>  \n> >>>  \tfor (unsigned int index = 0;; index++) {\n> >>> -\t\tstruct v4l2_subdev_frame_size_enum sizeEnum = {\n> >>> -\t\t\t.index = index,\n> >>> -\t\t\t.pad = pad,\n> >>> -\t\t\t.code = code,\n> >>> -\t\t\t.which = V4L2_SUBDEV_FORMAT_ACTIVE,\n> >>> -\t\t};\n> >>> +\t\tstruct v4l2_subdev_frame_size_enum sizeEnum;\n> >>> +\n> >>> +\t\tsizeEnum.index = index;\n> >>> +\t\tsizeEnum.pad = pad;\n> >>> +\t\tsizeEnum.code = code;\n> >>> +\t\tsizeEnum.which = V4L2_SUBDEV_FORMAT_ACTIVE;\n> >>>  \n> >>>  \t\tret = ioctl(fd_, VIDIOC_SUBDEV_ENUM_FRAME_SIZE, &sizeEnum);\n> >>>  \t\tif (ret)\n> >>>  \t\t\tbreak;\n> >>>\n> >>>>>     error: missing initializer for member ‘foo::baz’ [-Werror=missing-field-initializers]\n> >>>>>\n> >>>>> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> >>>>> ---\n> >>>>>  meson.build | 1 +\n> >>>>>  1 file changed, 1 insertion(+)\n> >>>>>\n> >>>>> diff --git a/meson.build b/meson.build\n> >>>>> index 4d3e99d3e58f71d5..90ad58328f9a2bd5 100644\n> >>>>> --- a/meson.build\n> >>>>> +++ b/meson.build\n> >>>>> @@ -22,6 +22,7 @@ endif\n> >>>>>\n> >>>>>  common_arguments = [\n> >>>>>      '-Wno-unused-parameter',\n> >>>>> +    '-Wno-missing-field-initializers',\n> >>>>>      '-include', 'config.h',\n> >>>>>  ]\n> >>>>>","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5B1CD69F14\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  9 Jun 2019 12:19:05 +0200 (CEST)","from pendragon.ideasonboard.com (unknown\n\t[IPv6:2a02:a03f:44f0:8500:ca05:8177:199c:fed4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BD9055D;\n\tSun,  9 Jun 2019 12:19:04 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1560075544;\n\tbh=rhG10uF+rdCa4vmYm0NdG5bDawdvqQD7k0ttj8UUGYk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=jI13EBVr1zHfAmytnkYd4eHwaWeu6SxGvqGHKf5IMCKBLDrnP/4PiAApAPLhY8chC\n\t9UZSBkAeAnba+FinjUu6B+3Ub8hCYzXaAgM756dy7+JnAJl2aGRd3aYHmyUWdqFvRU\n\tIDDF+F9pCMQDjlhIn5QrsU019k7jScw9Veb6n270=","Date":"Sun, 9 Jun 2019 13:18:50 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>,\n\tlibcamera-devel@lists.libcamera.org","Message-ID":"<20190609101850.GB4778@pendragon.ideasonboard.com>","References":"<20190527001543.13593-1-niklas.soderlund@ragnatech.se>\n\t<20190527001543.13593-2-niklas.soderlund@ragnatech.se>\n\t<20190527091807.7snlquso5zpncodk@uno.localdomain>\n\t<45f9ba91-566b-adab-b602-604a35e29b7b@ideasonboard.com>\n\t<3a37b6cd-affd-649a-9342-45adf99851a5@ideasonboard.com>\n\t<20190608162056.GH4786@pendragon.ideasonboard.com>\n\t<29051d58-9072-db13-6e29-91a3d5e07f66@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<29051d58-9072-db13-6e29-91a3d5e07f66@ideasonboard.com>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 01/17] meson: Allow partially\n\tinitializing objects","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Sun, 09 Jun 2019 10:19:05 -0000"}}]