[Click] Doing some research

Eddie Kohler kohler at cs.ucla.edu
Tue Jan 25 14:52:53 EST 2011


This is a more significant problem that I think will require serious effort to 
solve.  The Ethernet bridging hooks used by Click patchless have been removed 
in 2.6.37.  I am not sure what alternative we have.

Eddie


On 01/25/2011 11:37 AM, Outback Dingo wrote:
> until
>
>    CXX [M] anydevice.o
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc: In
> member function ‘void AnyDevice::alter_from_device(int)’:
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:121:61:
> error: ‘struct net_device’ has no member named ‘br_port’
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:129:2:
> error: ‘struct net_device’ has no member named ‘br_port’
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:129:2:
> error: invalid type argument of unary ‘*’
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:129:2:
> error: invalid type argument of unary ‘*’
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:129:2:
> error: invalid type argument of unary ‘*’
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:129:2:
> error: expected primary-expression before ‘typeof’
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:129:2:
> error: expected ‘)’ before ‘typeof’
> /home/dingo/click/linuxmodule/../elements/linuxmodule/anydevice.cc:136:2:
> error: ‘struct net_device’ has no member named ‘br_port’
> make[3]: *** [/home/dingo/click/linuxmodule/anydevice.o] Error 1
> make[2]: *** [_module_/home/dingo/click/linuxmodule] Error 2
>
>
> On Tue, Jan 25, 2011 at 2:37 PM, Outback Dingo<outbackdingo at gmail.com>wrote:
>
>> Wow scary you were right.... progressing on
>>
>>
>> On Tue, Jan 25, 2011 at 2:24 PM, Bobby Longpocket<
>> bobbylongpocket at yahoo.com>  wrote:
>>
>>> Maybe you ran configure --fix-includes again after you made the change?
>>> The file that you are modifying is the result of running configure, so your
>>> changes will get clobbered if you run configure again.  Check your file
>>> again to verify that lines 150 and 176 include the int pointer casts.
>>>
>>>
>>> --- On *Tue, 1/25/11, Outback Dingo<outbackdingo at gmail.com>* wrote:
>>>
>>>
>>> From: Outback Dingo<outbackdingo at gmail.com>
>>> Subject: Re: [Click] Doing some research
>>> To: "Bobby Longpocket"<bobbylongpocket at yahoo.com>
>>> Cc: click at pdos.csail.mit.edu
>>> Date: Tuesday, January 25, 2011, 6:23 AM
>>>
>>>
>>> On Tue, Jan 25, 2011 at 1:33 AM, Bobby Longpocket<
>>> bobbylongpocket at yahoo.com<http://mc/compose?to=bobbylongpocket@yahoo.com>
>>>> wrote:
>>>
>>> Dingo:
>>>
>>> Click patchless has a problem with 2.6.37.  In radix-tree.h there's a call
>>> to a macro that ends up trying to dereference a void*.  The C++ compiler
>>> doesn't like this.  You can apply the following changes to
>>> click/include/click-linuxmodule/include1/linux/radix-tree.h to make more
>>> progress with your compilation:
>>>
>>> 150c150
>>> <        return rcu_dereference(*pslot);
>>> ---
>>>>        return (void *)rcu_dereference(*(int **)pslot);
>>> 176c176
>>> <        rcu_assign_pointer(*pslot, item);
>>> ---
>>>>        rcu_assign_pointer(*(int **)pslot, (int *)item);
>>>
>>>
>>> ok applied the reference patch to click and now.... still no joy
>>>
>>>
>>>
>>>   In file included from
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/fs.h:392:0,
>>>                   from /home/dingo/click/linuxmodule/../lib/ino.cc:30:
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:
>>> In function ‘void* radix_tree_deref_slot(void**)’:
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: invalid type in declaration before ‘=’ token
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: expected primary-expression before ‘typeof’
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: expected ‘)’ before ‘typeof’
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: expected primary-expression before ‘typeof’
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: expected ‘)’ before ‘typeof’
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:150:9:
>>> error: expected ‘)’ before ‘;’ token
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:
>>> In function ‘void radix_tree_replace_slot(void**, void*)’:
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:176:2:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:176:2:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:176:2:
>>> error: ‘void*’ is not a pointer-to-object type
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:176:2:
>>> error: expected primary-expression before ‘typeof’
>>> /home/dingo/click/include/click-linuxmodule/include1/linux/radix-tree.h:176:2:
>>> error: expected ‘)’ before ‘typeof’
>>> make[3]: *** [/home/dingo/click/linuxmodule/ino.o] Error 1
>>> make[2]: *** [_module_/home/dingo/click/linuxmodule] Error 2
>>> make[2]: Leaving directory `/home/dingo/src/linux-source-2.6.37'
>>> make[1]: *** [all] Error 2
>>> make[1]: Leaving directory `/home/dingo/click/linuxmodule'
>>> make: *** [linuxmodule] Error 2
>>>
>>>
>>>
>>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list