Hi list, Now that I've had a little more time to look at this and I'm not on a train with exceptionally awful connectivity........ iproute2 commit 6256f8c9e45f01187b297a576e148534a393c990 introduced a backup definition of 'offsetof' macro in utils.h presumably to cover the case where it wasn't defined elsewhere. Anything post that iproute2 commit (Dave's tc-adv repo as example) will have this macro defined courtesy 'utils.h'. According to various man pages, 'offsetof' should be defined as part of 'stddef.h' which q_cake.c does not include. By including 'stddef.h' in q_cake.c I can get q_cake.c to compile and I think that this is a more correct solution than that proposed previously. I'm sure someone will come up with an even more correct solution :-) For full disclosure I should point out that toke's iproute2 4.0.0 + cake repo still fails to build completely on my Linux mint 17.2 box *BUT* with the following diff it at least finishes 'cake' whereas it used to blow up over 'offsetof' :-) Kevin diff --git a/tc/q_cake.c b/tc/q_cake.c index 3ab93c2..8c3e9c8 100644 --- a/tc/q_cake.c +++ b/tc/q_cake.c @@ -37,6 +37,7 @@ #include #include +#include #include #include #include On 19/10/15 22:17, Kevin Darbyshire-Bryant wrote: > I think the problem is we're not including stddef.h which defines offsetof. Later versions of iproute include a def in Utils.h but that wasn't in v4.0.0 which is what tokes repo is based on. Tc-adv is a bit more recent. > > -- > Cheers, > > Kevin@Darbyshire-Bryant.me.uk > Sent from my phone, apologies for brevity, spelling & top posting > >> On 19 Oct 2015, at 17:41, Kevin Darbyshire-Bryant wrote: >> >> Hold the phone... >> >> My guess is a difference in definition of offsetof as potentially defined in tc/include/Utils.h >> >> But very hard to tell on my phone! >> >> -- >> Cheers, >> >> Kevin@Darbyshire-Bryant.me.uk >> Sent from my phone, apologies for brevity, spelling & top posting >> >>> On 19 Oct 2015, at 17:01, Toke Høiland-Jørgensen wrote: >>> >>> So finally got iproute2 to compile out of the kau.toke.dk repo. The >>> patch below was needed to cake. Posting it here rather than just >>> committing in the hope of getting someone (Jonathan?) to take a look at >>> it and fix it everywhere it's needed :) >>> >>> -Toke >>> >>> diff --git a/tc/q_cake.c b/tc/q_cake.c >>> index 4d64405..1384a46 100644 >>> --- a/tc/q_cake.c >>> +++ b/tc/q_cake.c >>> @@ -495,7 +496,7 @@ static int cake_print_xstats(struct qdisc_util *qu, FILE *f, >>> >>> } else if (stnc->version >= 1 && stnc->version < 0xFF >>> && stnc->max_tins == TC_CAKE_MAX_TINS >>> - && RTA_PAYLOAD(xstats) >= offsetof(*stnc, capacity_estimate)) >>> + && RTA_PAYLOAD(xstats) >= offsetof(typeof(*stnc), capacity_estimate)) >>> { >>> int i; >>> >>> _______________________________________________ >>> Cake mailing list >>> Cake@lists.bufferbloat.net >>> https://lists.bufferbloat.net/listinfo/cake >> _______________________________________________ >> Cake mailing list >> Cake@lists.bufferbloat.net >> https://lists.bufferbloat.net/listinfo/cake >> >> >> _______________________________________________ >> Cake mailing list >> Cake@lists.bufferbloat.net >> https://lists.bufferbloat.net/listinfo/cake