[haiku-development] Re: Cross-compiling Haiku with jam under Freebsd: fails consistently on undefined references

  • From: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Thu, 17 Aug 2017 07:25:33 +0200

On Wed, Aug 16, 2017 at 08:44:44PM +0000, Thomas Mueller wrote:

I fixed the lib and include paqths in BuildSetup, or thought I did, was able 
to get further, but now come up against another kind of linker (ld) error, 
undefined reference to some std:: items.


Which libraries and paths did you use eventually?

I can't tell what causes this error.  Either I need to go deeper into those 
HOST_PLATFORM-sensitive files and check the file names, or for all I know 
there could be a bug in the Haiku code.

It is building fine on Linux and Haiku for many people, so I doubt there
is a bug in our code.


It might help if some other eyes could look at this and see what might have 
gone wrong.

It might help if you shared your changes (output of "git diff" for
example), so people can comment on what you did or try to repeat the
process.

Link 
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/package
 
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_checksum.o:
 In function `ChecksumIO::Digest()':
/home/nbarlene/haiku/haiku/src/bin/package/command_checksum.cpp:(.text._ZN10ChecksumIO6DigestEv[_ZN10ChecksumIO6DigestEv]+0x90):
 undefined reference to `std::bad_alloc::bad_alloc()'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libpackage_build.so: 
undefined reference to 
`std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so: 
undefined reference to 
`std::__1::__basic_string_common<true>::__throw_length_error() const'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libbe_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::compare(unsigned 
long, unsigned long, char const*, unsigned long) const'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::push_back(char)'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> 
::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&)'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::assign(char const*)'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::append(char const*)'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libbe_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(char)'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> >::append(char const*, 
unsigned long)'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> 
::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&)'
/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libbe_build.so: 
undefined reference to `std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char> 
::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> > const&, unsigned long, unsigned long, 
std::__1::allocator<char> const&)'
collect2: error: ld returned 1 exit status


/usr/local/gcc5-aux/bin/gcc -Xlinker --no-as-needed -lm 
-L/usr/local/gcc5-aux/lib -L/usr/local/lib -L/usr/lib -L /lib -lz 
-o 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/package"
   
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_add.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_checksum.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_create.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_dump.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_extract.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_info.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_list.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/command_recompress.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/package.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/PackageWriterListener.o"
 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/tools/package/PackageWritingUtils.o"
 \
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/x86_64/release/build/libroot/libroot_build_function_remapper.a"
 "/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libroot_build.so" 
"/usr/lib/libgnuregex.so" 
"/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libpackage_build.so"
 "/home/nbarlene/myhaiku/fb64generated/objects/freebsd/lib/libbe_build.so" 
-lsupc++  \

In this command line I see a -lsupc++ but no -lstdc++, which is where I
would expect std::bad_alloc and other libstdc++ things to be. Are you
sure your setting for HOST_LIBSTDC++ is correct?

-- 
Adrien.

Other related posts: