James Peach created MESOS-9137:
----------------------------------

             Summary: GRPC build fails to pass compiler flags
                 Key: MESOS-9137
                 URL: https://issues.apache.org/jira/browse/MESOS-9137
             Project: Mesos
          Issue Type: Bug
          Components: build
            Reporter: James Peach


The GRPC build integration fails to pass compiler flags down from the main 
build into the GRPC component build. This can make the build fail in surprising 
ways.

For example, if you use {{CXXFLAGS="-fsanitize=thread" 
CFLAGS="-fsanitize=tthread"}}, the build fails because of the inconsistent 
application of these flags across bundled components.

In this build log, libprotobuf was built using the correct flags, which then 
causes GRPC to fail because it is missing the flags:

{noformat}
make[3]: Entering directory '/home/jpeach/src/asf-mesos/build/3rdparty'
   20 cd grpc-1.10.0 &&                                       \
   19   
CPPFLAGS="-I/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src        
      \
   18                         \
   17                         \
   16             -Wno-array-bounds"                  \
   15   make                  \
   14     
/home/jpeach/src/asf-mesos/build/3rdparty/grpc-1.10.0/libs/opt/libgrpc++.a 
/home/jpeach/src/asf-mesos/build/3rdparty/grpc-1      .10.0/libs/opt/libgrpc.a 
/home/jpeach/src/asf-mesos/build/3rdparty/grpc-1.10.0/libs/opt/libgpr.a         
\
   13     CC="/home/jpeach/src/asf-mesos/build/cc"                              
      \
   12     CXX="/home/jpeach/src/asf-mesos/build/c++"                          \
   11     LD="/home/jpeach/src/asf-mesos/build/cc"                              
      \
   10     LDXX="/home/jpeach/src/asf-mesos/build/c++"                         \
    9     
LDFLAGS="-L/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src/.libs   
            \
    8                         \
    7              "          \
    6     HAS_PKG_CONFIG=false                        \
    5     NO_PROTOC=false                             \
    4     
PROTOC="/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src/protoc"
    3 make[4]: Entering directory 
'/home/jpeach/src/asf-mesos/build/3rdparty/grpc-1.10.0'
    2 mkdir -p `dirname 
/home/jpeach/src/asf-mesos/build/3rdparty/grpc-1.10.0/bins/opt/grpc_cpp_plugin`
    1 /home/jpeach/src/asf-mesos/build/c++ 
-L/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src/.libs            
                                               
/home/jpeach/src/asf-mesos/build/3rdparty/grpc-1.10.0/objs/opt/src/compiler/cpp_plugin.o
 /home/j      
peach/src/asf-mesos/build/3rdparty/grpc-1.10.0/libs/opt/libgrpc_plugin_support.a
  -lprotoc -lprotobuf -ldl -lrt -lm -lpthread -      lz  -lprotoc -lprotobuf -o 
/home/jpeach/src/asf-mesos/build/3rdparty/grpc-1.10.0/bins/opt/grpc_cpp_plugin
31    
/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src/.libs/libprotoc.a(code_generator.o):
 In function `__cxx_global_var      _init':
    1 code_generator.cc:(.text.startup+0xd): undefined reference to 
`__tsan_func_entry'
    2 code_generator.cc:(.text.startup+0x43): undefined reference to 
`__tsan_func_exit'
    3 code_generator.cc:(.text.startup+0x57): undefined reference to 
`__tsan_func_exit'
    4 
/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src/.libs/libprotoc.a(code_generator.o):
 In function `_GLOBAL__sub_I_c      ode_generator.cc':
    5 code_generator.cc:(.text.startup+0x7d): undefined reference to 
`__tsan_func_entry'
    6 code_generator.cc:(.text.startup+0x8c): undefined reference to 
`__tsan_func_exit'
    7 code_generator.cc:(.text.startup+0xa0): undefined reference to 
`__tsan_func_exit'
    8 
/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src/.libs/libprotoc.a(code_generator.o):
 In function `google::protobuf      
::compiler::CodeGenerator::~CodeGenerator()':
    9 
code_generator.cc:(.text._ZN6google8protobuf8compiler13CodeGeneratorD0Ev+0x14): 
undefined reference to `__tsan_func_entry'
   10 
/home/jpeach/src/asf-mesos/build/3rdparty/protobuf-3.5.0/src/.libs/libprotoc.a(code_generator.o):
 In function `google::protobuf      
::compiler::CodeGenerator::GenerateAll(std::vector<google::protobuf::FileDescriptor
 const*, std::allocator<google::protobuf::Fi      leDescriptor const*> > 
const&, std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&, google::      
protobuf::compiler::GeneratorContext*, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >*) const'      :
{noformat}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to