RE: [ROOT] Problem compiling class with "netinet/in.h"

From: Philippe Canal (pcanal@fnal.gov)
Date: Wed Jul 09 2003 - 15:07:34 MEST


Hi Jesse,

CINT does not yet cope well with gcc __extension__ keywords.

It should work by using:

   rootcint TWaveformDict.cxx -c -D__extension__="" TWaveform.h
TWaveformLinkDef.h

And actually for the rest of your code, which includes stdint.h you should
use:

  rootcint
Dict.cxx -c -p -D__extension__=""  -D__attribute__\\\(X\\\)="" -D__const=con
st -D__restrict="" -D__signed=signed -D__volatile=volatile -D__BEGIN_DECLS= 
-D__END_DECLS= -D__THROW= .....

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Jesse Wodin
Sent: Tuesday, July 08, 2003 10:53 PM
To: roottalk@cern.ch
Cc: jwodin@stanford.edu
Subject: [ROOT] Problem compiling class with "netinet/in.h"


Hi, I use "htons" and "htonl" (/usr/include/netinet/in.h) to convert data
between host and network byte order.  If I include netinet/in.h in a script
or compiled program, everything works fine.  BUT, I can't seem to include
netinet/in.h in a class!  I get a huge error when I run rootcint (Without
this inclusion, the class compiles fine).

[jwodin@erinyes TPCAnalysisClass]$ rootcint TWaveformDict.cxx -c
TWaveform.h TWaveformLinkDef.h
Error: Symbol __extension__typedeflonglongintint64_t is not defined in
current scope  FILE:/usr/inc
lude/stdint.h LINE:44
Error: Symbol __extension__typedefunsignedlonglongintuint64_t is not
defined in current scope  FILE
:/usr/include/stdint.h LINE:59
Error: Symbol __extension__typedeflonglongintint_least64_t is not defined
in current scope  FILE:/u
sr/include/stdint.h LINE:73
Error: Symbol __extension__typedefunsignedlonglongintuint_least64_t is not
defined in current scope
   FILE:/usr/include/stdint.h LINE:84
Error: Symbol __extension__typedeflonglongintint_fast64_t is not defined in
current scope  FILE:/us
[jwodin@erinyes TPCAnalysisClass]$ ./compile
Removing old dictionary file...
Creating new dictionary...
Error: Symbol __extension__typedeflonglongintint64_t is not defined in
current scope  FILE:/usr/include/stdint.h LINE:44
Error: Symbol __extension__typedefunsignedlonglongintuint64_t is not
defined in current scope  FILE:/usr/include/stdint.h LINE:59
Error: Symbol __extension__typedeflonglongintint_least64_t is not defined
in current scope  FILE:/usr/include/stdint.h LINE:73
Error: Symbol __extension__typedefunsignedlonglongintuint_least64_t is not
defined in current scope  FILE:/usr/include/stdint.h LINE:84
Error: Symbol __extension__typedeflonglongintint_fast64_t is not defined in
current scope  FILE:/usr/include/stdint.h LINE:100
Error: Symbol __extension__typedefunsignedlonglongintuint_fast64_t is not
defined in current scope  FILE:/usr/include/stdint.h LINE:113
Error: Symbol __extension__typedeflonglongintintmax_t is not defined in
current scope  FILE:/usr/include/stdint.h LINE:139
Error: Symbol __extension__typedefunsignedlonglongintuintmax_t is not
defined in current scope  FILE:/usr/include/stdint.h LINE:141
Error: integer literal too large FILE:/usr/include/stdint.h LINE:164
Error: integer literal too large FILE:tmpfile LINE:289
Error: integer literal too large FILE:/usr/include/stdint.h LINE:169
Error: integer literal too large FILE:tmpfile LINE:294
Error: integer literal too large FILE:/usr/include/stdint.h LINE:175
Error: integer literal too large FILE:tmpfile LINE:299
Error: integer literal too large FILE:/usr/include/stdint.h LINE:182
Error: integer literal too large FILE:tmpfile LINE:304
Error: integer literal too large FILE:/usr/include/stdint.h LINE:187
Error: integer literal too large FILE:tmpfile LINE:309
Error: integer literal too large FILE:/usr/include/stdint.h LINE:193
Error: integer literal too large FILE:tmpfile LINE:314
Error: integer literal too large FILE:/usr/include/stdint.h LINE:205
Error: integer literal too large FILE:tmpfile LINE:319
Error: integer literal too large FILE:/usr/include/stdint.h LINE:215
Error: integer literal too large FILE:tmpfile LINE:324
Error: integer literal too large FILE:/usr/include/stdint.h LINE:226
Error: integer literal too large FILE:tmpfile LINE:329
Error: integer literal too large FILE:/usr/include/stdint.h LINE:242
Error: integer literal too large FILE:tmpfile LINE:334
Error: integer literal too large FILE:/usr/include/stdint.h LINE:244
Error: integer literal too large FILE:tmpfile LINE:339
Error: integer literal too large FILE:/usr/include/stdint.h LINE:247
Error: integer literal too large FILE:tmpfile LINE:344
Error: Symbol __extension__typedefunsignedlonglongint__u_quad_t is not
defined in current scope  FILE:/usr/include/bits/types.h LINE:37
Error: Symbol __extension__typedeflonglongint__quad_t is not defined in
current scope  FILE:/usr/include/bits/types.h LINE:38
Error: Symbol __extension__typedefsignedlonglongint__int64_t is not defined
in current scope  FILE:/usr/include/bits/types.h LINE:56
Error: Symbol __extension__typedefunsignedlonglongint__uint64_t is not
defined in current scope  FILE:/usr/include/bits/types.h LINE:57
Error: class,struct,union or type __quad_t not
defined  FILE:/usr/include/bits/types.h LINE:59
Error: class,struct,union or type __u_quad_t not
defined  FILE:/usr/include/bits/types.h LINE:61
Error: class,struct,union or type __quad_t not
defined  FILE:/usr/include/bits/types.h LINE:68
Error: class,struct,union or type __u_quad_t not
defined  FILE:/usr/include/bits/types.h LINE:72
Error: class,struct,union or type __quad_t not
defined  FILE:/usr/include/bits/types.h LINE:114
Error: class,struct,union or type __u_quad_t not
defined  FILE:/usr/include/bits/types.h LINE:118
Error: class,struct,union or type __u_quad_t not
defined  FILE:/usr/include/bits/types.h LINE:122
Error: class,struct,union or type __u_quad_t not
defined  FILE:/usr/include/bits/types.h LINE:125
Syntax Error: IPPROTO_MAX Maybe missing ';' FILE:/usr/include/netinet/in.h
LINE:85
Limitation: can not handle macro s6_addr in6_u.u6_addr8 Use +P or -p option
FILE:/usr/include/netinet/in.h LINE:199
Limitation: can not handle macro s6_addr16 in6_u.u6_addr16 Use +P or -p
option FILE:/usr/include/netinet/in.h LINE:200
Limitation: can not handle macro s6_addr32 in6_u.u6_addr32 Use +P or -p
option FILE:/usr/include/netinet/in.h LINE:201
Limitation: can not handle macro IN6ADDR_ANY_INIT
{{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}} Use +P or -p option
FILE:/usr/include/netinet/in.h LINE:206
Limitation: can not handle macro IN6ADDR_LOOPBACK_INIT
{{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}}} Use +P or -p option
FILE:/usr/include/netinet/in.h LINE:207
#error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
Error: Symbol __extension__unsignedchar__cmsg_data__flexarr is not defined
in current scope  FILE:/usr/include/bits/socket.h LINE:235
Limitation: can not handle macro SCM_SRCRT IPV6_RXSRCRT Use +P or -p option
FILE:/usr/include/bits/in.h LINE:120
Error: Unexpected EOF G__fgetspace():2 FILE:/usr/include/netinet/in.h
LINE:370
Advice: You may need to use +P or -p option
Report: Unrecognized string '__END_DECLS' ignored
FILE:/usr/include/netinet/in.h LINE:371
Warning: Error occured during reading source files
Warning: Error occured during dictionary source generation
!!!Removing TWaveformDict.cxx TWaveformDict.h !!!
Error: rootcint: error loading headers...
Compiling library...
gmake: *** No rule to make target `TWaveformDict.o', needed by
`libTWaveform.so'.  Stop.


Any ideas?

Jesse Wodin



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET