facebook / fbthrift

Facebook's branch of Apache Thrift, including a new C++ server.
Apache License 2.0
2.58k stars 610 forks source link

OSS builds fail after annotation bundling change #627

Closed sin-ack closed 2 weeks ago

sin-ack commented 2 weeks ago

Starting with 1f3fec4fc490744fedb4821d618d6bba8c0659e0, builds now fail with:

$ cmake --build build_
[0/2] Re-checking globbed directories...
[2/195] Linking CXX executable bin/thrift1
FAILED: bin/thrift1 
: && /usr/bin/c++ -march=native -mtune=native -rdynamic thrift/compiler/CMakeFiles/thrift1.dir/main.cc.o thrift/compiler/CMakeFiles/thrift1.dir/compiler.cc.o -o bin/thrift1  -Wl,-rpath,::::::::::::::  lib/libcompiler_ast.a  lib/libcompiler_lib.a  -Wl,--whole-archive  lib/libcompiler_generators.a  -Wl,--no-whole-archive  lib/libcompiler_lib.a  lib/libcompiler.a  lib/libcompiler_ast.a  -lssl  -lcrypto  lib/libmustache.a  lib/libwhisker.a  lib/libcompiler_base.a  /usr/lib64/libfmt.so.9.1.0 && :
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: thrift/compiler/CMakeFiles/thrift1.dir/compiler.cc.o: in function `apache::thrift::compiler::(anonymous namespace)::parse_and_mutate(apache::thrift::compiler::source_manager&, apache::thrift::compiler::sema_context&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::compiler::parsing_params const&, apache::thrift::compiler::(anonymous namespace)::gen_params const&)':
compiler.cc:(.text+0x306f): undefined reference to `apache::thrift::detail::bundled_annotations::scope_file_content()'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

I suspect this is due to the scope_file_content call being moved out of the #ifndef THRIFT_OSS block.

vitaut commented 2 weeks ago

Should be fixed by https://github.com/facebook/fbthrift/commit/94d56756734f57d8357478cf9a8e199bbc996c7d. Could you confirm?

sin-ack commented 2 weeks ago

Builds fine now, thanks!