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 > <[email protected]> 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 >> >> >> _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
