Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking ABI change in Windows builds of 10.2.0 #3785

Closed
saraedum opened this issue Jan 3, 2024 · 4 comments
Closed

Breaking ABI change in Windows builds of 10.2.0 #3785

saraedum opened this issue Jan 3, 2024 · 4 comments

Comments

@saraedum
Copy link
Contributor

saraedum commented Jan 3, 2024

On some Windows builds, the signature of fmt::v10::detail::write_console has changed:

- bool __cdecl fmt::v10::detail::write_console(struct _iobuf * __ptr64,class fmt::v10::basic_string_view<char>)
+ bool __cdecl fmt::v10::detail::write_console(int,class fmt::v10::basic_string_view<char>)

This causes dynamic linking errors. The problem seems to be caused by this change 2a2c6e6

See e.g., mamba-org/mamba#3095 for where this breaks a library on Windows.

@saraedum
Copy link
Contributor Author

saraedum commented Jan 3, 2024

This also happens on Linux upon closer inspection (somehow I missed this initially.)

-fmt::v10::detail::write_console(_IO_FILE*, fmt::v10::basic_string_view<char>)
+fmt::v10::detail::write_console(int, fmt::v10::basic_string_view<char>)

saraedum added a commit to saraedum/fmt that referenced this issue Jan 3, 2024
Fixes fmtlib#3785.

the write_console symbol has changed from 10.1 to 10.2. Here we restore
the symbol as introduced in 10.1.
@saraedum
Copy link
Contributor Author

saraedum commented Jan 3, 2024

The function write_console is, however, only used when _WIN32 is defined. So the symbol changing does not matter on Linux and macOS.

saraedum added a commit to saraedum/fmt that referenced this issue Jan 3, 2024
Fixes fmtlib#3785.

the write_console symbol has changed from 10.1 to 10.2. Here we restore
the symbol as introduced in 10.1.
@saraedum
Copy link
Contributor Author

saraedum commented Jan 3, 2024

A proposed fix is in #3786.

kmilos referenced this issue in msys2/MINGW-packages Jan 3, 2024
@vitaut
Copy link
Contributor

vitaut commented Jan 3, 2024

Thanks for reporting. I'll merge the fix into a separate branch (since master has a bunch of experimental changes) and make a patch release.

vitaut pushed a commit that referenced this issue Jan 3, 2024
Fixes #3785.

the write_console symbol has changed from 10.1 to 10.2. Here we restore
the symbol as introduced in 10.1.
@vitaut vitaut closed this as completed Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants