Bug#962533: mlpack FTBFS on mips64el: relocation truncated to fit

YunQiang Su wzssyqa at gmail.com
Thu Jun 11 22:56:39 BST 2020


Adrian Bunk <bunk at debian.org> 于 2020年6月9日周二 下午11:18写道:

> Source: mlpack
> Version: 3.3.1-1
> Severity: serious
> Tags: ftbfs
>
> It seems Boost 1.67 -> 1.71 increased something:
>
>
> https://buildd.debian.org/status/fetch.php?pkg=mlpack&arch=mips64el&ver=3.3.1-1%2Bb1&stamp=1591444281&raw=0
>
> ...
> /usr/bin/c++  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=.
> -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time
> -D_FORTIFY_SOURCE=2 -Wall -Wextra -ftemplate-depth=1000
> -Wno-unused-function -O3 -fopenmp  -Wl,-z,relro -Wl,-z,now -rdynamic
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o  -o ../../../../bin/mlpack_cf
> -Wl,-rpath,/<<PKGBUILDDIR>>/obj-mips64el-linux-gnuabi64/lib:
> ../../../../lib/libmlpack.so.3.3 /usr/lib/libarmadillo.so
> /usr/lib/mips64el-linux-gnuabi64/libboost_program_options.so
> /usr/lib/mips64el-linux-gnuabi64/libboost_unit_test_framework.so
> /usr/lib/mips64el-linux-gnuabi64/libboost_serialization.so -lpthread
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char,
> std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char,
> std::char_traits<char> >&, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)':
> /usr/include/c++/9/bits/basic_string.h:6421:(.text+0x300): relocation
> truncated to fit: R_MIPS_CALL16 against `std::basic_ostream<char,
> std::char_traits<char> >& std::__ostream_insert<char,
> std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char>
> >&, char const*, long)@@GLIBCXX_3.4.9'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function `void
> std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >::_M_construct<char*>(char*, char*,
> std::forward_iterator_tag)':
> /usr/include/c++/9/bits/basic_string.tcc:219:(.text+0x760): relocation
> truncated to fit: R_MIPS_CALL16 against `std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&,
> unsigned long)@@GLIBCXX_3.4.21'
> /usr/include/c++/9/bits/basic_string.tcc:233:(.text+0x7c0): relocation
> truncated to fit: R_MIPS_CALL16 against `__stack_chk_fail@@GLIBC_2.4'
> /usr/include/c++/9/bits/basic_string.tcc:212:(.text+0x7d0): relocation
> truncated to fit: R_MIPS_CALL16 against `std::__throw_logic_error(char
> const*)@@GLIBCXX_3.4'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `__gnu_cxx::new_allocator<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long,
> void const*)':
> /usr/include/c++/9/ext/new_allocator.h:114:(.text+0xb34): relocation
> truncated to fit: R_MIPS_CALL16 against `operator new(unsigned
> long)@@GLIBCXX_3.4'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >
> >::_S_check_init_len(unsigned long,
> std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > const&)':
> /usr/include/c++/9/bits/stl_vector.h:1767:(.text+0xbc4): relocation
> truncated to fit: R_MIPS_CALL16 against `std::__throw_length_error(char
> const*)@@GLIBCXX_3.4'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >*
> std::__uninitialized_copy<false>::__uninit_copy<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const*,
> std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >*>(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const*,
> std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const*, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >*)':
> /usr/include/c++/9/bits/stl_uninitialized.h:86:(.text+0xbd0): relocation
> truncated to fit: R_MIPS_CALL16 against `__cxa_begin_catch@@CXXABI_1.3'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function `void
> std::_Destroy_aux<false>::__destroy<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char>
> >*>(std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >*, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >*)':
> /usr/include/c++/9/bits/stl_construct.h:107:(.text+0xbe0): relocation
> truncated to fit: R_MIPS_CALL16 against `__cxa_rethrow@@CXXABI_1.3'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >
> >::_M_deallocate(std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >*, unsigned long)':
> /usr/include/c++/9/bits/stl_vector.h:350:(.text+0xbf8): relocation
> truncated to fit: R_MIPS_CALL16 against `operator
> delete(void*)@@GLIBCXX_3.4'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `__gnu_cxx::new_allocator<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::~new_allocator()':
> /usr/include/c++/9/ext/new_allocator.h:89:(.text+0xc04): relocation
> truncated to fit: R_MIPS_CALL16 against `_Unwind_Resume@@GCC_3.0'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >::_M_dispose()':
> /usr/include/c++/9/bits/basic_string.h:231:(.text+0xc1c): additional
> relocation overflows omitted from the output
>

just add -mxgot to cxxflags.
there are 2 type of GOT in mips: one use fewer insn while has a length
limitaion; another uses more insns while has a big address space support.

collect2: error: ld returned 1 exit status
> make[4]: ***
> [src/mlpack/methods/cf/CMakeFiles/mlpack_cf.dir/build.make:92:
> bin/mlpack_cf] Error 1
>
>
> I tried "export DEB_CXXFLAGS_MAINT_APPEND += -mxgot" which gave me:
>
> ...
> /usr/bin/c++  -g -O2 -fdebug-prefix-map=/home/bunk/build/mlpack-3.3.1=.
> -fstack-protector-strong -Wformat -Werror=format-security -mxgot
> -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -ftemplate-depth=1000
> -Wno-unused-function -O3 -fopenmp  -Wl,-z,relro -Wl,-z,now -rdynamic
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o  -o ../../../../bin/mlpack_cf
> -Wl,-rpath,/home/bunk/build/mlpack-3.3.1/obj-mips64el-linux-gnuabi64/lib:
> ../../../../lib/libmlpack.so.3.3 /usr/lib/libarmadillo.so
> /usr/lib/mips64el-linux-gnuabi64/libboost_program_options.so
> /usr/lib/mips64el-linux-gnuabi64/libboost_unit_test_framework.so
> /usr/lib/mips64el-linux-gnuabi64/libboost_serialization.so -lpthread
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `std::mersenne_twister_engine<unsigned long, 64ul, 312ul, 156ul, 31ul,
> 13043109905998158313ul, 29ul, 6148914691236517205ul, 17ul,
> 8202884508482404352ul, 37ul, 18444473444759240704ul, 43ul,
> 6364136223846793005ul>::seed(unsigned long)':
> /usr/include/c++/9/bits/random.tcc:329:(.text._ZN6mlpack4math10RandomSeedEm[_ZN6mlpack4math10RandomSeedEm]+0xb8):
> relocation truncated to fit: R_MIPS_TLS_GOTTPREL against
> `arma::arma_rng_cxx11_instance'
> CMakeFiles/mlpack_cf.dir/cf_main.cpp.o: in function
> `std::mersenne_twister_engine<unsigned long, 64ul, 312ul, 156ul, 31ul,
> 13043109905998158313ul, 29ul, 6148914691236517205ul, 17ul,
> 8202884508482404352ul, 37ul, 18444473444759240704ul, 43ul,
> 6364136223846793005ul>::operator()()':
> /usr/include/c++/9/bits/random.tcc:458:(.text._ZN4arma8arma_rng5randuIdE4fillEPdy[_ZN4arma8arma_rng5randuIdE4fillEPdy]+0x70):
> relocation truncated to fit: R_MIPS_TLS_GOTTPREL against
> `arma::arma_rng_cxx11_instance'
> /usr/include/c++/9/bits/random.tcc:457:(.text._ZN4arma8arma_rng5randuIdE4fillEPdy[_ZN4arma8arma_rng5randuIdE4fillEPdy]+0x354):
> relocation truncated to fit: R_MIPS_TLS_GOTTPREL against
> `arma::arma_rng_cxx11_instance'
> collect2: error: ld returned 1 exit status
>
>
> debian-mips is Cc'ed, can a mips porter please have a look?
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20200612/db743f1e/attachment-0002.html>


More information about the debian-science-maintainers mailing list