You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@aurora.apache.org by "Maxim Khutornenko (JIRA)" <ji...@apache.org> on 2016/07/01 16:14:11 UTC

[jira] [Commented] (AURORA-1727) The thrift compiler fails to bootstrap under modern gcc

    [ https://issues.apache.org/jira/browse/AURORA-1727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15359196#comment-15359196 ] 

Maxim Khutornenko commented on AURORA-1727:
-------------------------------------------

Thanks for investigating this, John! Any chance you could roll out a build.gradle patch with a fix? 

> The thrift compiler fails to bootstrap under modern gcc
> -------------------------------------------------------
>
>                 Key: AURORA-1727
>                 URL: https://issues.apache.org/jira/browse/AURORA-1727
>             Project: Aurora
>          Issue Type: Bug
>          Components: Build
>            Reporter: John Sirois
>            Priority: Minor
>
> I'm using:
> {noformat}
> $ gcc --version | head -1
> gcc (GCC) 6.1.1 20160602
> {noformat}
> Failure is like so:
> {noformat}
> $ git clean -fdx build-support/thrift/
> $ ./gradlew clean
> $ ./gradlew build
> ...
> thrift 0.9.1
> Building C++ Library ......... : no
> Building C (GLib) Library .... : no
> Building Java Library ........ : no
> Building C# Library .......... : no
> Building Python Library ...... : no
> Building Ruby Library ........ : no
> Building Haskell Library ..... : no
> Building Perl Library ........ : no
> Building PHP Library ......... : no
> Building Erlang Library ...... : no
> Building Go Library .......... : no
> Building D Library ........... : no
> If something is missing that you think should be present,
> please skim the output of configure to find the missing
> component.  Details are present in config.log.
> make[1]: Entering directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1'
> make  all-recursive
> make[2]: Entering directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1'
> Making all in compiler/cpp
> make[3]: Entering directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1/compiler/cpp'
> make  all-am
> make[4]: Entering directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1/compiler/cpp'
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -Wno-sign-compare -Wno-unused -g -O2 -c -o libparse_a-thrifty.o `test -f 'thrifty.cc' || echo './'`thrifty.cc
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -Wno-sign-compare -Wno-unused -g -O2 -c -o libparse_a-thriftl.o `test -f 'thriftl.cc' || echo './'`thriftl.cc
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -g -O2 -c -o thrift-main.o `test -f 'src/main.cc' || echo './'`src/main.cc
> gcc -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src   -g -O2 -c -o thrift-md5.o `test -f 'src/md5.c' || echo './'`src/md5.c
> thrifty.yy:664:21: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
> thrifty.yy:971:25: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
> thrifty.yy:982:23: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -g -O2 -c -o thrift-t_generator.o `test -f 'src/generate/t_generator.cc' || echo './'`src/generate/t_generator.cc
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -g -O2 -c -o thrift-parse.o `test -f 'src/parse/parse.cc' || echo './'`src/parse/parse.cc
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -g -O2 -c -o thrift-t_c_glib_generator.o `test -f 'src/generate/t_c_glib_generator.cc' || echo './'`src/generate/t_c_glib_generator.cc
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -g -O2 -c -o thrift-t_cpp_generator.o `test -f 'src/generate/t_cpp_generator.cc' || echo './'`src/generate/t_cpp_generator.cc
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift  -I./src  -Wall -g -O2 -c -o thrift-t_java_generator.o `test -f 'src/generate/t_java_generator.cc' || echo './'`src/generate/t_java_generator.cc
> src/generate/t_java_generator.cc: In member function ‘void t_java_generator::generate_process_async_function(t_service*, t_function*)’:
> src/generate/t_java_generator.cc:2830:14: error: operands to ?: have different types ‘bool’ and ‘std::basic_ostream<char>’
>         first ? first = false : indent(f_service_) << "else ";
>         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> make[4]: *** [Makefile:704: thrift-t_java_generator.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> make[4]: Leaving directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1/compiler/cpp'
> make[3]: Leaving directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1/compiler/cpp'
> make[3]: *** [Makefile:417: all] Error 2
> make[2]: *** [Makefile:434: all-recursive] Error 1
> make[2]: Leaving directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1'
> make[1]: *** [Makefile:355: all] Error 2
> make[1]: Leaving directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thrift-0.9.1'
> make: *** [Makefile:50: thrift-0.9.1/compiler/cpp/thrift] Error 2
> make: Leaving directory '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift'
> :api:generateThriftJava FAILED
> FAILURE: Build failed with an exception.
> * What went wrong:
> Execution failed for task ':api:generateThriftJava'.
> > Process 'command '/home/jsirois/dev/apache/jsirois-aurora/build-support/thrift/thriftw'' finished with non-zero exit value 2
> * Try:
> Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
> BUILD FAILED
> Total time: 1 mins 47.847 secs
> {noformat}
> The workaround is to use clang.  I have:
> {noformat}
> $ clang --version | head -1
> clang version 3.8.0 (tags/RELEASE_380/final)
> {noformat}
> And these work:
> {noformat}
> $ CC=clang CXX=clang++ ./gradlew build
> $ CC=clang CXX=clang++ ./build-support/release/verify-release-candidate 0.15.0-rc1
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)