[Cake] Fixing iproute2 compile

Kevin Darbyshire-Bryant kevin at darbyshire-bryant.me.uk
Tue Oct 20 05:13:21 EDT 2015


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 <stdio.h>
 #include <stdlib.h>
+#include <stddef.h>
 #include <unistd.h>
 #include <syslog.h>
 #include <fcntl.h>




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 at Darbyshire-Bryant.me.uk
> Sent from my phone, apologies for brevity, spelling & top posting
>
>> On 19 Oct 2015, at 17:41, Kevin Darbyshire-Bryant <kevin at darbyshire-bryant.me.uk> 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 at 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 <toke at toke.dk> 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 at lists.bufferbloat.net
>>> https://lists.bufferbloat.net/listinfo/cake
>> _______________________________________________
>> Cake mailing list
>> Cake at lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/cake
>>
>>
>> _______________________________________________
>> Cake mailing list
>> Cake at lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/cake


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4816 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://lists.bufferbloat.net/pipermail/cake/attachments/20151020/3cd9aed9/attachment-0002.bin>


More information about the Cake mailing list