[Buildroot] [PATCH] cryptsetup: fix build with pre C11 toolchains

Matthew Weber matthew.weber at rockwellcollins.com
Wed Aug 15 15:12:43 UTC 2018


Hollis,
On Wed, Aug 15, 2018 at 10:10 AM Hollis Blanchard
<hollis_blanchard at mentor.com> wrote:
>
> I can manually place this in the autobuilder's checkout of buildroot,
> but maybe it will pick some arbitrary branch the next time it runs. Is
> there a better way to try it out?

https://git.busybox.net/buildroot-test/tree/utils/br-reproduce-build

using the hash from one of those failing commits will reproduce the
build.  then you can git am the patch in a verify the fix.

>
> Hollis Blanchard
> Mentor Graphics Emulation Division
>
> On 08/15/2018 05:14 AM, Baruch Siach wrote:
> > Add a patch removing a redefined typedef. Redefinition of typedef, even
> > to the same type, used to be illegal before C11.
> >
> > Fixes:
> > http://autobuild.buildroot.net/results/93b/93b300a62f2ddbad66eab08e25fc3225969f224b/
> > http://autobuild.buildroot.net/results/6c6/6c6092d633400498ee5b8090733a949a9632e473/
> > http://autobuild.buildroot.net/results/f46/f46ef6123b5fa92753ff534b4ef7bea3f53ac388/
> >
> > Signed-off-by: Baruch Siach <baruch at tkos.co.il>
> > ---
> > Hi Hollis,
> >
> > Can you git this a run on your autobuilder? I would like to verify that
> > it actually fixes the problem before I send the patch upstream.
> >
> > Thanks,
> > baruch
> > ---
> >   .../0001-Remove-json_object-typedef.patch     | 46 +++++++++++++++++++
> >   1 file changed, 46 insertions(+)
> >   create mode 100644 package/cryptsetup/0001-Remove-json_object-typedef.patch
> >
> > diff --git a/package/cryptsetup/0001-Remove-json_object-typedef.patch b/package/cryptsetup/0001-Remove-json_object-typedef.patch
> > new file mode 100644
> > index 000000000000..fa865314a7da
> > --- /dev/null
> > +++ b/package/cryptsetup/0001-Remove-json_object-typedef.patch
> > @@ -0,0 +1,46 @@
> > +From 567e7f8664c621f8aeaa95d9f4ab4b590574f572 Mon Sep 17 00:00:00 2001
> > +From: Baruch Siach <baruch at tkos.co.il>
> > +Date: Wed, 15 Aug 2018 14:13:46 +0300
> > +Subject: [PATCH] Remove json_object typedef
> > +
> > +The json-c header already defines the same typedef. While C11 allows
> > +typedef redefinition to the same type, older versions of gcc disallow
> > +that.
> > +
> > +In file included from lib/luks2/luks2_internal.h:32,
> > +                 from lib/luks2/luks2_disk_metadata.c:24:
> > +lib/luks2/luks2.h:86: error: redefinition of typedef 'json_object'
> > +
> > +Signed-off-by: Baruch Siach <baruch at tkos.co.il>
> > +---
> > + lib/luks2/luks2.h | 1 -
> > + lib/setup.c       | 1 +
> > + 2 files changed, 1 insertion(+), 1 deletion(-)
> > +
> > +diff --git a/lib/luks2/luks2.h b/lib/luks2/luks2.h
> > +index ee57b41ba974..25e36190da45 100644
> > +--- a/lib/luks2/luks2.h
> > ++++ b/lib/luks2/luks2.h
> > +@@ -83,7 +83,6 @@ struct luks2_hdr_disk {
> > + /*
> > +  * LUKS2 header in-memory.
> > +  */
> > +-typedef struct json_object json_object;
> > + struct luks2_hdr {
> > +     size_t          hdr_size;
> > +     uint64_t        seqid;
> > +diff --git a/lib/setup.c b/lib/setup.c
> > +index fddbe7ef7897..856f6e80f465 100644
> > +--- a/lib/setup.c
> > ++++ b/lib/setup.c
> > +@@ -28,6 +28,7 @@
> > + #include <sys/utsname.h>
> > + #include <fcntl.h>
> > + #include <errno.h>
> > ++#include <json-c/json.h>
> > +
> > + #include "libcryptsetup.h"
> > + #include "luks.h"
> > +--
> > +2.18.0
> > +
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot



-- 
Matthew L Weber / Pr Software Engineer
Airborne Information Systems / RC Linux Secure Platforms
MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA
www.rockwellcollins.com

Note: Any Export License Required Information and License Restricted
Third Party Intellectual Property (TPIP) content must be encrypted and
sent to matthew.weber at corp.rockwellcollins.com.



More information about the buildroot mailing list