-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Closed
Description
This appears to be an ABI break(?) or at least difference between fmt 11.0.2 and 11.1.0.
Feel free to close this if it's entirely homebrew's fault though :)
With older homebrew's build of 11.0.2, this issue does not reproduce.
However, on current latest versions, I see the following behavior:
ccache --version: 👍
ccahe --help : 💥
Here's the brew issue I opened: https://github.com/orgs/Homebrew/discussions/5830
And the backtrace:
$ lldb ccache
(lldb) target create "ccache"
Current executable set to '/opt/homebrew/bin/ccache' (arm64).
(lldb) run --help
Process 85982 launched: '/opt/homebrew/bin/ccache' (arm64)
Process 85982 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
frame #0: 0x000000010000e350 ccache`fmt::v11::basic_appender<char> fmt::v11::detail::write_padded<char, (fmt::v11::align::type)1, fmt::v11::basic_appender<char>, fmt::v11::basic_appender<char> fmt::v11::detail::write<char, fmt::v11::basic_appender<char>>(fmt::v11::basic_appender<char>, fmt::v11::basic_string_view<char>, fmt::v11::format_specs const&)::'lambda'(fmt::v11::basic_appender<char>)>(fmt::v11::basic_appender<char>, fmt::v11::format_specs const&, unsigned long, unsigned long, fmt::v11::basic_appender<char> fmt::v11::detail::write<char, fmt::v11::basic_appender<char>>(fmt::v11::basic_appender<char>, fmt::v11::basic_string_view<char>, fmt::v11::format_specs const&)::'lambda'(fmt::v11::basic_appender<char>)&&) + 64
ccache`fmt::v11::detail::write_padded<char, (fmt::v11::align::type)1, fmt::v11::basic_appender<char>, fmt::v11::basic_appender<char> fmt::v11::detail::write<char, fmt::v11::basic_appender<char>>(fmt::v11::basic_appender<char>, fmt::v11::basic_string_view<char>, fmt::v11::format_specs const&)::'lambda'(fmt::v11::basic_appender<char>)>:
-> 0x10000e350 <+64>: ldp x8, x9, [x0, #0x8]
0x10000e354 <+68>: add x8, x8, x2
0x10000e358 <+72>: add x21, x1, #0xb
0x10000e35c <+76>: ldrb w10, [x1, #0xf]
Target 0: (ccache) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
* frame #0: 0x000000010000e350 ccache`fmt::v11::basic_appender<char> fmt::v11::detail::write_padded<char, (fmt::v11::align::type)1, fmt::v11::basic_appender<char>, fmt::v11::basic_appender<char> fmt::v11::detail::write<char, fmt::v11::basic_appender<char>>(fmt::v11::basic_appender<char>, fmt::v11::basic_string_view<char>, fmt::v11::format_specs const&)::'lambda'(fmt::v11::basic_appender<char>)>(fmt::v11::basic_appender<char>, fmt::v11::format_specs const&, unsigned long, unsigned long, fmt::v11::basic_appender<char> fmt::v11::detail::write<char, fmt::v11::basic_appender<char>>(fmt::v11::basic_appender<char>, fmt::v11::basic_string_view<char>, fmt::v11::format_specs const&)::'lambda'(fmt::v11::basic_appender<char>)&&) + 64
frame #1: 0x000000010000e274 ccache`fmt::v11::basic_appender<char> fmt::v11::detail::write<char, fmt::v11::basic_appender<char>>(fmt::v11::basic_appender<char>, fmt::v11::basic_string_view<char>, fmt::v11::format_specs const&) + 232
frame #2: 0x000000010000d7a8 ccache`auto fmt::v11::formatter<std::__1::__fs::filesystem::path, char, void>::format<fmt::v11::context>(std::__1::__fs::filesystem::path const&, fmt::v11::context&) const + 108
frame #3: 0x000000010000d6fc ccache`void fmt::v11::detail::value<fmt::v11::context>::format_custom_arg<std::__1::__fs::filesystem::path, fmt::v11::formatter<std::__1::__fs::filesystem::path, char, void>>(void*, fmt::v11::basic_format_parse_context<char>&, fmt::v11::context&) + 112
frame #4: 0x000000010018b39c libfmt.11.dylib`void fmt::v11::detail::parse_format_string<char, fmt::v11::detail::format_handler<char>>(fmt::v11::basic_string_view<char>, fmt::v11::detail::format_handler<char>&&) + 1264
frame #5: 0x000000010018ac64 libfmt.11.dylib`fmt::v11::detail::vformat_to(fmt::v11::detail::buffer<char>&, fmt::v11::basic_string_view<char>, fmt::v11::basic_format_args<fmt::v11::context>, fmt::v11::detail::locale_ref) + 76
frame #6: 0x000000010018b62c libfmt.11.dylib`fmt::v11::vprint(__sFILE*, fmt::v11::basic_string_view<char>, fmt::v11::basic_format_args<fmt::v11::context>) + 84
frame #7: 0x000000010004be88 ccache`core::process_main_options(int, char const* const*) + 4116
frame #8: 0x0000000100021a9c ccache`ccache_main(int, char const* const*) + 144
frame #9: 0x0000000195210274 dyld`start + 2840
This appears to be an issue upgrading from 11.0.2 to 11.1.0, which feels unexpected from fmtlib's perspective.
fmt info
$ brew info fmt
==> fmt: stable 11.1.0 (bottled), HEAD
Open-source formatting library for C++
https://fmt.dev/
Installed
/opt/homebrew/Cellar/fmt/11.1.0 (29 files, 1MB) *
Poured from bottle using the formulae.brew.sh API on 2024-12-26 at 09:32:49
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/f/fmt.rb
License: MIT
==> Dependencies
Build: cmake ✔
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 18,699 (30 days), 61,427 (90 days), 237,794 (365 days)
install-on-request: 634 (30 days), 3,807 (90 days), 14,685 (365 days)
build-error: 0 (30 days)
Metadata
Metadata
Assignees
Labels
No labels