Opened 6 years ago

Last modified 3 years ago

#55733 accepted defect

lz4 fails to build on Snow Leopard — at Initial Version

Reported by: grumpybozo (Bill Cole) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.4.2
Keywords: Cc:
Port: lz4

Description

Errors are typical of missing C++11 support, even on a system where libcxx is installed and the procedure at https://trac.macports.org/wiki/LibcxxOnOlderSystems has been followed. A snippet:

make[1]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_archivers_lz4/lz4/work/lz4-1.8.1.2/contrib/gen_manual'
/opt/local/bin/clang++-mp-5.0 -arch i386  -O3 -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wno-comment   gen_manual.cpp -o gen_manual
Undefined symbols for architecture i386:
  "std::ctype<char>::_M_widen_init() const", referenced from:
      print_line(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) in gen_manual-327bb0.o
      _main in gen_manual-327bb0.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_not_of(char const*, unsigned long, unsigned long) const", referenced from:
      trim(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) in gen_manual-327bb0.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_not_of(char const*, unsigned long, unsigned long) const", referenced from:
      trim(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) in gen_manual-327bb0.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long, unsigned long) const", referenced from:

This is solved by adding these lines to the Portfile:

depends_lib-append   lib:libc++.1:libcxx
configure.cxxflags   -stdlib=libc++
configure.cxx        clang++ -stdlib=libc++

Change History (1)

Changed 6 years ago by grumpybozo (Bill Cole)

Attachment: lz4.Portfile.patch added

Portfile patch for lz4 to add libc++ dependency

Note: See TracTickets for help on using tickets.