[Click] Minimizing patch size

Philip Prindeville philipp_subx at redfish-solutions.com
Tue Jan 4 22:59:46 EST 2011


Ok, so it seems to me that the solution is twofold:

(1) require a reasonably recent version of gcc;
(2) In places where the 'new' keyword is used in header files for inlines, etc. do:

#define new __new
#include <linux/list.h>
#undef new




On 1/4/11 6:39 PM, Joonwoo Park wrote:
> Hi,
>
> I don't think 'extern "C"' made any difference.  If you were able to
> compile your example you should be able to compile even without
> 'extern "C"' from your example.
> Don't remember exact gcc version but IIRC earlier version of g++
> parses '::' as namespace keyword always.  To support old versions,
> patching '::' was necessary.
>
> Joonwoo
>
> On Tue, Jan 4, 2011 at 5:35 PM, Philip Prindeville
> <philipp_subx at redfish-solutions.com>  wrote:
>> On 1/4/11 12:25 PM, Joonwoo Park wrote:
>>>       1  #include<iostream>
>>>       2
>>>       3  extern "C"
>>>       4  {
>>>       5  struct keyword {
>>>       6          int new;
>>>       7  };
>>>       8  }
>>>       9
>>>      10  int main()
>>>      11  {
>>>      12          return 0;
>>>      13  }
>> I took that and modified it as:
>>
>> #include<iostream>
>>
>> extern "C"
>> {
>> #include<sys/types.h>
>>
>> void load_ldt(int32_t ldt)
>> {
>>         asm volatile("lldt %0"::"m" (ldt));
>> }
>> }
>>
>> int main()
>> {
>>         return 0;
>> }
>>
>>
>> and it compiled fine.
>>
>> So that solves part of the problem.
>>
>> -Philip
>>
>>
>>



More information about the click mailing list