[ https://issues.apache.org/jira/browse/THRIFT-852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12915591#action_12915591 ]
Santosh Patil commented on THRIFT-852: -------------------------------------- Hello Anthony, I am facing a similar issue. I am trying to compile thrift-0.4.0 on Centos 5.5. Could you please suggest a work around? Here is the output that I get : /[had...@localhost thrift]$ make > make.output In file included from ./src/parse/t_program.h:41, from src/thrifty.yy:35: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/thriftl.ll:33: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file thriftl.cc: In function 'int yylex()': thriftl.cc:1479: warning: label 'find_rule' defined but not used thriftl.cc: At global scope: thriftl.cc:2752: warning: 'void yyunput(int, char*)' defined but not used thriftl.cc:3239: warning: 'int yy_flex_strlen(const char*)' defined but not used In file included from src/parse/t_program.h:41, from src/main.cc:49: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/main.cc:51: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_generator.cc:20: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_generator.cc:20: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_cpp_generator.cc:35: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_cpp_generator.cc:35: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_java_generator.cc:31: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_java_generator.cc:31: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file src/generate/t_java_generator.cc: In member function 'void t_java_generator::generate_java_struct_clear(std::ofstream&, t_struct*)': src/generate/t_java_generator.cc:3887: warning: enumeration value 'TYPE_VOID' not handled in switch src/generate/t_java_generator.cc:3887: warning: enumeration value 'TYPE_STRING' not handled in switch In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_as3_generator.cc:31: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_as3_generator.cc:31: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_csharp_generator.cc:34: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_csharp_generator.cc:34: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_py_generator.cc:30: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_py_generator.cc:30: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_rb_generator.cc:36: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_rb_generator.cc:36: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_perl_generator.cc:29: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_perl_generator.cc:29: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_php_generator.cc:28: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_php_generator.cc:28: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_erl_generator.cc:29: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_erl_generator.cc:29: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_cocoa_generator.cc:28: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_cocoa_generator.cc:28: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_st_generator.cc:36: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_st_generator.cc:36: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_ocaml_generator.cc:29: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_ocaml_generator.cc:29: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_hs_generator.cc:29: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_hs_generator.cc:29: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_xsd_generator.cc:27: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_xsd_generator.cc:27: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_html_generator.cc:29: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_html_generator.cc:29: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from ./src/parse/t_program.h:41, from src/generate/t_generator.h:27, from src/generate/t_oop_generator.h:27, from src/generate/t_js_generator.cc:33: ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of file In file included from src/generate/t_generator.h:29, from src/generate/t_oop_generator.h:27, from src/generate/t_js_generator.cc:33: src/generate/t_generator_registry.h:103:7: warning: no newline at end of file src/protocol/TDebugProtocol.cpp: In member function 'virtual uint32_t apache::thrift::protocol::TDebugProtocol::writeMessageBegin(const std::string&, apache::thrift::protocol::TMessageType, int32_t)': src/protocol/TDebugProtocol.cpp:152: warning: enumeration value 'T_ONEWAY' not handled in switch src/protocol/fastbinary.c:20:20: error: Python.h: No such file or directory src/protocol/fastbinary.c:21:23: error: cStringIO.h: No such file or directory src/protocol/fastbinary.c:123: error: expected specifier-qualifier-list before 'PyObject' src/protocol/fastbinary.c:133: error: expected specifier-qualifier-list before 'PyObject' src/protocol/fastbinary.c:142: error: expected specifier-qualifier-list before 'PyObject' src/protocol/fastbinary.c:153: error: expected specifier-qualifier-list before 'PyObject' src/protocol/fastbinary.c:163: error: expected specifier-qualifier-list before 'PyObject' src/protocol/fastbinary.c:168: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token src/protocol/fastbinary.c:170: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token src/protocol/fastbinary.c: In function 'check_ssize_t_32': src/protocol/fastbinary.c:175: warning: implicit declaration of function 'PyErr_Occurred' src/protocol/fastbinary.c:179: warning: implicit declaration of function 'PyErr_SetString' src/protocol/fastbinary.c:179: error: 'PyExc_OverflowError' undeclared (first use in this function) src/protocol/fastbinary.c:179: error: (Each undeclared identifier is reported only once src/protocol/fastbinary.c:179: error: for each function it appears in.) src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:186: error: expected ')' before '*' token src/protocol/fastbinary.c:205: error: expected declaration specifiers or '...' before 'PyObject' src/protocol/fastbinary.c: In function 'parse_set_list_args': src/protocol/fastbinary.c:206: warning: implicit declaration of function 'PyTuple_Size' src/protocol/fastbinary.c:206: error: 'typeargs' undeclared (first use in this function) src/protocol/fastbinary.c:207: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c:211: warning: implicit declaration of function 'PyInt_AsLong' src/protocol/fastbinary.c:211: warning: implicit declaration of function 'PyTuple_GET_ITEM' src/protocol/fastbinary.c:216: error: 'SetListTypeArgs' has no member named 'typeargs' src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:222: error: expected declaration specifiers or '...' before 'PyObject' src/protocol/fastbinary.c: In function 'parse_map_args': src/protocol/fastbinary.c:223: error: 'typeargs' undeclared (first use in this function) src/protocol/fastbinary.c:224: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c:238: error: 'MapTypeArgs' has no member named 'ktypeargs' src/protocol/fastbinary.c:239: error: 'MapTypeArgs' has no member named 'vtypeargs' src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:245: error: expected declaration specifiers or '...' before 'PyObject' src/protocol/fastbinary.c: In function 'parse_struct_args': src/protocol/fastbinary.c:246: error: 'typeargs' undeclared (first use in this function) src/protocol/fastbinary.c:247: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c:251: error: 'StructTypeArgs' has no member named 'klass' src/protocol/fastbinary.c:252: error: 'StructTypeArgs' has no member named 'spec' src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:258: error: expected declaration specifiers or '...' before 'PyObject' src/protocol/fastbinary.c: In function 'parse_struct_item_spec': src/protocol/fastbinary.c:261: error: 'spec_tuple' undeclared (first use in this function) src/protocol/fastbinary.c:262: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c:276: error: 'StructItemSpec' has no member named 'attrname' src/protocol/fastbinary.c:277: error: 'StructItemSpec' has no member named 'typeargs' src/protocol/fastbinary.c:278: error: 'StructItemSpec' has no member named 'defval' src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:289: error: expected ')' before '*' token src/protocol/fastbinary.c:294: error: expected ')' before '*' token src/protocol/fastbinary.c:299: error: expected ')' before '*' token src/protocol/fastbinary.c:304: error: expected ')' before '*' token src/protocol/fastbinary.c:309: error: expected ')' before '*' token src/protocol/fastbinary.c:323: error: expected ')' before '*' token src/protocol/fastbinary.c:569: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token src/protocol/fastbinary.c: In function 'free_decodebuf': src/protocol/fastbinary.c:598: warning: implicit declaration of function 'Py_XDECREF' src/protocol/fastbinary.c:598: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:599: error: 'DecodeBuffer' has no member named 'refill_callable' src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:603: error: expected declaration specifiers or '...' before 'PyObject' src/protocol/fastbinary.c: In function 'decode_buffer_from_obj': src/protocol/fastbinary.c:604: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:604: warning: implicit declaration of function 'PyObject_GetAttr' src/protocol/fastbinary.c:604: error: 'obj' undeclared (first use in this function) src/protocol/fastbinary.c:604: error: '_intern_cstringio_buf' undeclared (first use in this function) src/protocol/fastbinary.c:605: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:609: warning: implicit declaration of function 'PycStringIO_InputCheck' src/protocol/fastbinary.c:609: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:611: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c:615: error: 'DecodeBuffer' has no member named 'refill_callable' src/protocol/fastbinary.c:615: error: '_intern_cstringio_refill' undeclared (first use in this function) src/protocol/fastbinary.c:617: error: 'DecodeBuffer' has no member named 'refill_callable' src/protocol/fastbinary.c:622: warning: implicit declaration of function 'PyCallable_Check' src/protocol/fastbinary.c:622: error: 'DecodeBuffer' has no member named 'refill_callable' src/protocol/fastbinary.c: In function 'readBytes': src/protocol/fastbinary.c:638: error: 'PycStringIO' undeclared (first use in this function) src/protocol/fastbinary.c:638: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:645: error: 'PyObject' undeclared (first use in this function) src/protocol/fastbinary.c:645: error: 'newiobuf' undeclared (first use in this function) src/protocol/fastbinary.c:648: warning: implicit declaration of function 'PyObject_CallFunction' src/protocol/fastbinary.c:649: error: 'DecodeBuffer' has no member named 'refill_callable' src/protocol/fastbinary.c:655: warning: implicit declaration of function 'Py_CLEAR' src/protocol/fastbinary.c:655: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:656: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:658: error: 'DecodeBuffer' has no member named 'stringiobuf' src/protocol/fastbinary.c:666: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c: In function 'checkTypeByte': src/protocol/fastbinary.c:730: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c: In function 'skip': src/protocol/fastbinary.c:842: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:855: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token src/protocol/fastbinary.c:859: error: expected declaration specifiers or '...' before 'PyObject' src/protocol/fastbinary.c:859: error: expected declaration specifiers or '...' before 'PyObject' src/protocol/fastbinary.c: In function 'decode_struct': src/protocol/fastbinary.c:860: error: 'spec_seq' undeclared (first use in this function) src/protocol/fastbinary.c:868: error: 'PyObject' undeclared (first use in this function) src/protocol/fastbinary.c:868: error: 'item_spec' undeclared (first use in this function) src/protocol/fastbinary.c:869: error: 'fieldval' undeclared (first use in this function) src/protocol/fastbinary.c:886: error: 'Py_None' undeclared (first use in this function) src/protocol/fastbinary.c:897: error: too many arguments to function 'parse_struct_item_spec' src/protocol/fastbinary.c:902: error: 'PyExc_TypeError' undeclared (first use in this function) src/protocol/fastbinary.c:909: warning: implicit declaration of function 'decode_val' src/protocol/fastbinary.c:909: error: 'StructItemSpec' has no member named 'typeargs' src/protocol/fastbinary.c:914: warning: implicit declaration of function 'PyObject_SetAttr' src/protocol/fastbinary.c:914: error: 'output' undeclared (first use in this function) src/protocol/fastbinary.c:914: error: 'StructItemSpec' has no member named 'attrname' src/protocol/fastbinary.c:915: warning: implicit declaration of function 'Py_DECREF' src/protocol/fastbinary.c: At top level: src/protocol/fastbinary.c:927: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token src/protocol/fastbinary.c:1144: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token src/protocol/fastbinary.c:1179: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ThriftFastBinaryMethods' src/protocol/fastbinary.c:1188: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'initfastbinary' error: command 'gcc' failed with exit status 1 make[3]: *** [all-local] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 [had...@localhost thrift]$ / > Missing newline causes many compiler warnings > --------------------------------------------- > > Key: THRIFT-852 > URL: https://issues.apache.org/jira/browse/THRIFT-852 > Project: Thrift > Issue Type: Bug > Components: Compiler (General) > Affects Versions: 0.4, 0.5 > Reporter: Anthony Molinaro > Assignee: Anthony Molinaro > Fix For: 0.5 > > Attachments: newline.patch > > > When compiling with -Wall, I see a lot of these > gmake[3]: Entering directory `/home/molinaro/thrift-0.4.0/compiler/cpp' > g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/local/include -Wall -I./src > -I/usr/include -g -O3 -funroll-loops -I/usr/local/include -MT > thrift-thrifty.o -MD -MP -MF .deps/thrift-thrifty.Tpo -c -o thrift-thrifty.o > `test -f 'thrifty.cc' || echo './'`thrifty.cc > In file included from ./src/parse/t_program.h:41, > from thrifty.yy:35: > ./src/generate/t_generator_registry.h:103:7: warning: no newline at end of > file > Which is easily fixed with the attached patch. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.