I am having issues compiling icu4c-63.1 with gcc-8.5.0.
I see documentation mentioning requirement of C11 and C++17 support and
if I'm reading gcc docs correctly - that is present in gcc-8.5.0.
When I compile using gcc-11.5.0+ everything just compiles and no issues,
but with gcc-8.5.0 I get
g++ -O3 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings
-Wno-long-long -std=c++11 -L/opt/gitlab/bootstrap/lib64
-Wl,--as-needed -o icuinfo icuinfo.o -L../../lib -licutu -L../../lib
-licui18n -L../../lib -licuuc -L../../stubdata -licudata -lpthread -ldl -lm
/opt/gitlab/bootstrap/lib/gcc/x86_64-unknown-linux-gnu/8.5.0/../../../../x86_64-unknown-linux-gnu/bin/ld:
/opt/gitlab/bootstrap/lib64/libicutu.a(
udbgutil.ao): in function
`std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::map<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::set<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::less<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> > > >, std::less<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::set<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::less<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> > > > > > > > > >::allocate(unsigned long, void
const*)':
udbgutil.cpp:(.text._ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt3mapIS7_St3setIS7_St4lessIS7_ESaIS7_EESC_SaIS1_IS8_SE_EEEEEE8allocateEmPKv[_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt3mapIS7_St3setIS7_St4lessIS7_ESaIS7_EESC_SaIS1_IS8_SE_EEEEEE8allocateEmPKv]+0x40):
undefined reference to `std::__throw_bad_array_new_length()'
/opt/gitlab/bootstrap/lib/gcc/x86_64-unknown-linux-gnu/8.5.0/../../../../x86_64-unknown-linux-gnu/bin/ld:
/opt/gitlab/bootstrap/lib64/libicutu.a(
udbgutil.ao): in function
`std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const,
std::set<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::less<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> > > > > > >::allocate(unsigned long, void const*)':
udbgutil.cpp:(.text._ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt3setIS7_St4lessIS7_ESaIS7_EEEEE8allocateEmPKv[_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt3setIS7_St4lessIS7_ESaIS7_EEEEE8allocateEmPKv]+0x40):
undefined reference to `std::__throw_bad_array_new_length()'
/opt/gitlab/bootstrap/lib/gcc/x86_64-unknown-linux-gnu/8.5.0/../../../../x86_64-unknown-linux-gnu/bin/ld:
/opt/gitlab/bootstrap/lib64/libicutu.a(
udbgutil.ao): in function
`std::__new_allocator<std::_Rb_tree_node<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >::allocate(unsigned
long, void const*)':
udbgutil.cpp:(.text._ZNSt15__new_allocatorISt13_Rb_tree_nodeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateEmPKv[_ZNSt15__new_allocatorISt13_Rb_tree_nodeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateEmPKv]+0x40):
undefined reference to `std::__throw_bad_array_new_length()'
--
Sr. Backend Engineer
GitLab