Hi, I also faced this error while compiling gem5. After Andreas solution, try to copy the potobuf library from /protobuf/lib to gcc/lib. I had set the paths of all libraries but still gcc couldn't link with protobuf.
For me it resolved the error. Thanks On Mon, Oct 3, 2016 at 10:31 AM, Andreas Hansson <[email protected]> wrote: > Hi Adel, > > I suspect this is a result of different C++ ABIs used for protobuf and > gem5, for example protobuf compiled with gcc 4.x and gem5 compiled with gcc > 5.x or later. The easiest way around this is to ensure gem5 is using the > same compiler as what was used for protobuf. Alternatively you can force > gcc to use the old gcc 4.x ABI by setting D_GLIBCXX_USE_CXX11_ABI=0. > > Andreas > > From: gem5-users <[email protected]> on behalf of "Ejjeh, Adel" > <[email protected]> > Reply-To: gem5 users mailing list <[email protected]> > Date: Sunday, 2 October 2016 at 18:52 > To: "[email protected]" <[email protected]> > Subject: [gem5-users] Error while building gem5 > > Hi everyone > > I am trying to build the ARM version of gem5 on a CentOS 6 machine and I > am getting the following error: > scons CPU_MODELS="AtomicSimpleCPU,MinorCPU,O3CPU,TimingSimpleCPU" > build/ARM/gem5.opt -j9 > scons: Reading SConscript files ... > Checking for leading underscore in global variables...(cached) no > Checking for C header file Python.h... (cached) yes > Checking for C library pthread... (cached) yes > Checking for C library dl... (cached) yes > Checking for C library util... (cached) yes > Checking for C library m... (cached) yes > Checking for C library python2.6... (cached) yes > Checking for accept(0,0,0) in C++ library None... (cached) yes > Checking for zlibVersion() in C++ library z... (cached) yes > Checking for GOOGLE_PROTOBUF_VERIFY_VERSION in C++ library protobuf... > (cached) yes > Checking for clock_nanosleep(0,0,NULL,NULL) in C library None... (cached) > no > Checking for clock_nanosleep(0,0,NULL,NULL) in C library rt... (cached) yes > Checking for timer_create(CLOCK_MONOTONIC, NULL, NULL) in C library > None... (cached) yes > Checking for C library tcmalloc... (cached) yes > Checking for C header file fenv.h... (cached) yes > Checking for C header file linux/kvm.h... (cached) yes > Checking size of struct kvm_xsave ... (cached) yes > Checking for member exclude_host in struct perf_event_attr...(cached) yes > Building in /home/aejjeh/gem5-stable/build/ARM > Using saved variables file /home/aejjeh/gem5-stable/build/variables/ARM > scons: done reading SConscript files. > scons: Building targets ... > [NEW DEPS] ARM/arch/arm/generated/inc.d -> arm-deps > [ENVIRONS] arm-deps -> arm-environs > [ LINK] -> ARM/gem5.opt > build/ARM/proto/packet.pb.o: In function `ProtoMessage::PacketHeader:: > SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const': > /home/aejjeh/gem5-stable/build/ARM/proto/packet.pb.cc:281: undefined > reference to `google::protobuf::internal::WireFormatLite::WriteString(int, > std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)' > build/ARM/proto/packet.pb.o: In function `ProtoMessage::PacketHeader:: > MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)': > /home/aejjeh/gem5-stable/build/ARM/proto/packet.pb.cc:213: undefined > reference to `google::protobuf::internal::WireFormatLite::ReadString( > google::protobuf::io::CodedInputStream*, std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >*)' > build/ARM/proto/packet.pb.o: In function `ProtoMessage::protobuf_ > AddDesc_packet_2eproto()': > /home/aejjeh/gem5-stable/build/ARM/proto/packet.pb.cc:110: undefined > reference to `google::protobuf::MessageFactory:: > InternalRegisterGeneratedFile(char const*, void > (*)(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&))' > build/ARM/proto/packet.pb.o: In function `ProtoMessage::protobuf_ > AssignDesc_packet_2eproto()': > /home/aejjeh/gem5-stable/build/ARM/proto/packet.pb.cc:31: undefined > reference to `google::protobuf::DescriptorPool:: > FindFileByName(std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&) const' > build/ARM/proto/packet.pb.o:(.rodata._ZTVN12ProtoMessage12PacketHeaderE[_ > ZTVN12ProtoMessage12PacketHeaderE]+0x20): undefined reference to `_ > ZNK6google8protobuf7Message11GetTypeNameB5cxx11Ev' > build/ARM/proto/packet.pb.o:(.rodata._ZTVN12ProtoMessage12PacketHeaderE[_ > ZTVN12ProtoMessage12PacketHeaderE]+0x40): undefined reference to `_ > ZNK6google8protobuf7Message25InitializationErrorStringB5cxx11Ev' > build/ARM/proto/packet.pb.o:(.rodata._ZTVN12ProtoMessage6PacketE[_ > ZTVN12ProtoMessage6PacketE]+0x20): undefined reference to `_ > ZNK6google8protobuf7Message11GetTypeNameB5cxx11Ev' > build/ARM/proto/packet.pb.o:(.rodata._ZTVN12ProtoMessage6PacketE[_ > ZTVN12ProtoMessage6PacketE]+0x40): undefined reference to `_ > ZNK6google8protobuf7Message25InitializationErrorStringB5cxx11Ev' > build/ARM/proto/inst.pb.o: In function `ProtoMessage::InstHeader:: > SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const': > /home/aejjeh/gem5-stable/build/ARM/proto/inst.pb.cc:350: undefined > reference to `google::protobuf::internal::WireFormatLite::WriteString(int, > std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)' > build/ARM/proto/inst.pb.o: In function `ProtoMessage::InstHeader:: > MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)': > /home/aejjeh/gem5-stable/build/ARM/proto/inst.pb.cc:266: undefined > reference to `google::protobuf::internal::WireFormatLite::ReadString( > google::protobuf::io::CodedInputStream*, std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >*)' > build/ARM/proto/inst.pb.o: In function `ProtoMessage::protobuf_ > AddDesc_inst_2eproto()': > /home/aejjeh/gem5-stable/build/ARM/proto/inst.pb.cc:158: undefined > reference to `google::protobuf::MessageFactory:: > InternalRegisterGeneratedFile(char const*, void > (*)(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&))' > build/ARM/proto/inst.pb.o: In function `ProtoMessage::protobuf_ > AssignDesc_inst_2eproto()': > /home/aejjeh/gem5-stable/build/ARM/proto/inst.pb.cc:35: undefined > reference to `google::protobuf::DescriptorPool:: > FindFileByName(std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&) const' > build/ARM/proto/inst.pb.o:(.rodata._ZTVN12ProtoMessage10InstHeaderE[_ > ZTVN12ProtoMessage10InstHeaderE]+0x20): undefined reference to `_ > ZNK6google8protobuf7Message11GetTypeNameB5cxx11Ev' > build/ARM/proto/inst.pb.o:(.rodata._ZTVN12ProtoMessage10InstHeaderE[_ > ZTVN12ProtoMessage10InstHeaderE]+0x40): undefined reference to `_ > ZNK6google8protobuf7Message25InitializationErrorStringB5cxx11Ev' > build/ARM/proto/inst.pb.o:(.rodata._ZTVN12ProtoMessage14Inst_MemAccessE[_ > ZTVN12ProtoMessage14Inst_MemAccessE]+0x20): undefined reference to `_ > ZNK6google8protobuf7Message11GetTypeNameB5cxx11Ev' > build/ARM/proto/inst.pb.o:(.rodata._ZTVN12ProtoMessage14Inst_MemAccessE[_ > ZTVN12ProtoMessage14Inst_MemAccessE]+0x40): undefined reference to `_ > ZNK6google8protobuf7Message25InitializationErrorStringB5cxx11Ev' > build/ARM/proto/inst.pb.o:(.rodata._ZTVN12ProtoMessage4InstE[_ > ZTVN12ProtoMessage4InstE]+0x20): undefined reference to `_ > ZNK6google8protobuf7Message11GetTypeNameB5cxx11Ev' > build/ARM/proto/inst.pb.o:(.rodata._ZTVN12ProtoMessage4InstE[_ > ZTVN12ProtoMessage4InstE]+0x40): undefined reference to `_ > ZNK6google8protobuf7Message25InitializationErrorStringB5cxx11Ev' > collect2: error: ld returned 1 exit status > scons: *** [build/ARM/gem5.opt] Error 1 > scons: building terminated because of errors. > > As you can see towards the end of the output it is complaining about > undefined references which seem to be related to protobuf. I have installed > protobuf both using “yum” and from source. Any ideas? > > Regards > Adel Ejjeh > > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > -- Regards, Abdul Mutaal LinkedIn : https://de.linkedin.com/in/abdulmutaalahmad Email : [email protected]
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
