[MacPorts] #71701: mysql8 build error: link error after Undefined symbols for architecture arm64

MacPorts noreply at macports.org
Tue Dec 31 19:45:35 UTC 2024


#71701: mysql8 build error: link error after Undefined symbols for architecture
arm64
----------------------+---------------------------
  Reporter:  murrayE  |      Owner:  (none)
      Type:  defect   |     Status:  new
  Priority:  Normal   |  Milestone:
 Component:  ports    |    Version:  2.10.5
Resolution:           |   Keywords:  sequoia arm64
      Port:  mysql8   |
----------------------+---------------------------
Description changed by murrayE:

Old description:

> Under macOS Sequoia 15.2. (Is this essentially same issue as previously
> reported?)
>
> {{{
> :info:build Undefined symbols for architecture arm64:
> :info:build   "icu_76::StringPiece::StringPiece(char const*)", referenced
> from:
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::RegexMatcher::matches(UErrorCode&)", referenced
> from:
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::RegexMatcher::~RegexMatcher()", referenced from:
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       std::__1::unique_ptr<icu_76::RegexMatcher,
> std::__1::default_delete<icu_76::RegexMatcher>>::~unique_ptr[abi:ne180100]()
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::RegexPattern::compile(icu_76::UnicodeString
> const&, unsigned int, UParseError&, UErrorCode&)", referenced from:
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::RegexPattern::~RegexPattern()", referenced from:
> :info:build       xpl::Regex::~Regex() in
> libmysqlx.a[3](admin_cmd_arguments.cc.o)
> :info:build   "icu_76::UnicodeString::fromUTF8(icu_76::StringPiece)",
> referenced from:
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::UnicodeString::~UnicodeString()", referenced from:
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::Regex(char const*) in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       ...
> :info:build   "icu_76::UMemory::operator delete(void*)", referenced from:
> :info:build       xpl::Regex::~Regex() in
> libmysqlx.a[3](admin_cmd_arguments.cc.o)
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       std::__1::unique_ptr<icu_76::RegexMatcher,
> std::__1::default_delete<icu_76::RegexMatcher>>::~unique_ptr[abi:ne180100]()
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       icu_76::StringByteSink<std::__1::basic_string<char,
> std::__1::char_traits<char>,
> std::__1::allocator<char>>>::~StringByteSink() in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::ByteSink::GetAppendBuffer(int, int, char*, int,
> int*)", referenced from:
> :info:build       vtable for
> icu_76::StringByteSink<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>> in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::ByteSink::Flush()", referenced from:
> :info:build       vtable for
> icu_76::StringByteSink<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>> in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::ByteSink::~ByteSink()", referenced from:
> :info:build       std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&
> icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
> std::__1::char_traits<char>,
> std::__1::allocator<char>>>(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&
> icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
> std::__1::char_traits<char>,
> std::__1::allocator<char>>>(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&
> icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
> std::__1::char_traits<char>,
> std::__1::allocator<char>>>(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       icu_76::StringByteSink<std::__1::basic_string<char,
> std::__1::char_traits<char>,
> std::__1::allocator<char>>>::~StringByteSink() in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       icu_76::StringByteSink<std::__1::basic_string<char,
> std::__1::char_traits<char>,
> std::__1::allocator<char>>>::~StringByteSink() in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::RegexMatcher::groupCount() const", referenced
> from:
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::RegexMatcher::group(int, UErrorCode&) const",
> referenced from:
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::RegexPattern::matcher(icu_76::UnicodeString
> const&, UErrorCode&) const", referenced from:
> :info:build       xpl::Regex::match(char const*) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build       xpl::Regex::match_groups(char const*,
> std::__1::vector<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>,
> std::__1::allocator<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const
> in libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "icu_76::UnicodeString::toUTF8(icu_76::ByteSink&) const",
> referenced from:
> :info:build       std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&
> icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
> std::__1::char_traits<char>,
> std::__1::allocator<char>>>(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build   "typeinfo for icu_76::ByteSink", referenced from:
> :info:build       typeinfo for
> icu_76::StringByteSink<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char>>> in
> libmysqlx.a[121](xpl_regex.cc.o)
> :info:build ld: symbol(s) not found for architecture arm64
> :info:build clang++: error: linker command failed with exit code 1 (use
> -v to see invocation)
> :info:build /usr/bin/clang++ -std=c++20 -fno-omit-frame-pointer -ftls-
> model=initial-exec -pipe -I/
> }}}

New description:

 For mysql8 at 8.4.2_1 under macOS Sequoia 15.2. (Is this essentially same
 issue as previously reported?)

 {{{
 :info:build Undefined symbols for architecture arm64:
 :info:build   "icu_76::StringPiece::StringPiece(char const*)", referenced
 from:
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::RegexMatcher::matches(UErrorCode&)", referenced
 from:
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::RegexMatcher::~RegexMatcher()", referenced from:
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       std::__1::unique_ptr<icu_76::RegexMatcher,
 std::__1::default_delete<icu_76::RegexMatcher>>::~unique_ptr[abi:ne180100]()
 in libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::RegexPattern::compile(icu_76::UnicodeString const&,
 unsigned int, UParseError&, UErrorCode&)", referenced from:
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::RegexPattern::~RegexPattern()", referenced from:
 :info:build       xpl::Regex::~Regex() in
 libmysqlx.a[3](admin_cmd_arguments.cc.o)
 :info:build   "icu_76::UnicodeString::fromUTF8(icu_76::StringPiece)",
 referenced from:
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::UnicodeString::~UnicodeString()", referenced from:
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::Regex(char const*) in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       ...
 :info:build   "icu_76::UMemory::operator delete(void*)", referenced from:
 :info:build       xpl::Regex::~Regex() in
 libmysqlx.a[3](admin_cmd_arguments.cc.o)
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       std::__1::unique_ptr<icu_76::RegexMatcher,
 std::__1::default_delete<icu_76::RegexMatcher>>::~unique_ptr[abi:ne180100]()
 in libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       icu_76::StringByteSink<std::__1::basic_string<char,
 std::__1::char_traits<char>,
 std::__1::allocator<char>>>::~StringByteSink() in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::ByteSink::GetAppendBuffer(int, int, char*, int,
 int*)", referenced from:
 :info:build       vtable for
 icu_76::StringByteSink<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>> in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::ByteSink::Flush()", referenced from:
 :info:build       vtable for
 icu_76::StringByteSink<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>> in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::ByteSink::~ByteSink()", referenced from:
 :info:build       std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&
 icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
 std::__1::char_traits<char>,
 std::__1::allocator<char>>>(std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&
 icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
 std::__1::char_traits<char>,
 std::__1::allocator<char>>>(std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&
 icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
 std::__1::char_traits<char>,
 std::__1::allocator<char>>>(std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       icu_76::StringByteSink<std::__1::basic_string<char,
 std::__1::char_traits<char>,
 std::__1::allocator<char>>>::~StringByteSink() in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       icu_76::StringByteSink<std::__1::basic_string<char,
 std::__1::char_traits<char>,
 std::__1::allocator<char>>>::~StringByteSink() in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::RegexMatcher::groupCount() const", referenced from:
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::RegexMatcher::group(int, UErrorCode&) const",
 referenced from:
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::RegexPattern::matcher(icu_76::UnicodeString const&,
 UErrorCode&) const", referenced from:
 :info:build       xpl::Regex::match(char const*) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build       xpl::Regex::match_groups(char const*,
 std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
 std::__1::allocator<char>>,
 std::__1::allocator<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>>>*, bool) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "icu_76::UnicodeString::toUTF8(icu_76::ByteSink&) const",
 referenced from:
 :info:build       std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&
 icu_76::UnicodeString::toUTF8String<std::__1::basic_string<char,
 std::__1::char_traits<char>,
 std::__1::allocator<char>>>(std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>&) const in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build   "typeinfo for icu_76::ByteSink", referenced from:
 :info:build       typeinfo for
 icu_76::StringByteSink<std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char>>> in
 libmysqlx.a[121](xpl_regex.cc.o)
 :info:build ld: symbol(s) not found for architecture arm64
 :info:build clang++: error: linker command failed with exit code 1 (use -v
 to see invocation)
 :info:build /usr/bin/clang++ -std=c++20 -fno-omit-frame-pointer -ftls-
 model=initial-exec -pipe -I/
 }}}

--

-- 
Ticket URL: <https://trac.macports.org/ticket/71701#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list