Ticket #43357

Configure check for proper size_t printf() format

Open Date: 2021-12-09 10:48 Last Update: 2021-12-24 17:48

Reporter:
Owner:
Type:
Status:
Closed
Component:
MileStone:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
4

Details

For better support of using size_t variables in the printf() family of functions, add a configure check for determining which kind of specifier should be used for them. This ticket is about autotools implementation, though care should be taken not to completely break meson build.

As part of #43200, this has also been posted to http://forum.freeciv.org/f/viewtopic.php?f=14&t=92093

Ticket History (3/15 Histories)

2021-12-09 10:48 Updated by: cazfi
  • New Ticket "Confgure check for proper size_t printf() format" created
2021-12-09 10:52 Updated by: cazfi
  • Resolution Update from None to Accepted
2021-12-09 11:00 Updated by: cazfi
  • Summary Updated
2021-12-09 12:01 Updated by: cazfi
  • Details Updated
2021-12-13 00:38 Updated by: cazfi
  • Resolution Update from Accepted to None
Comment

That "%ldd" should be "%lld"

2021-12-13 06:22 Updated by: cazfi
  • Resolution Update from None to Accepted
Comment

- New version corrects "%lld"

2021-12-13 13:12 Updated by: cazfi
  • Resolution Update from Accepted to None
Comment

This was a great pain to debug in msys2, but it turns out that %zu is valid format specifier for printf() (which we used in configure test), but not for our function declared with attribute((format(printf, ...)))

I have other fixes to this as well. Will submit a new version later.

2021-12-16 12:55 Updated by: cazfi
  • Resolution Update from None to Accepted
Comment

New patch version
- Make sure that the build test has -Wall and -Werror set so that it fails for specifiers for which it should
- Added "checking..." outputs
- In the compilation test, call function defined with attribute((format(printf, ...))) instead of printf()

2021-12-20 14:00 Updated by: cazfi
  • Resolution Update from Accepted to None
Comment

Crosser based build fails with the current patch version. It would expect "%I64d"

2021-12-20 21:20 Updated by: cazfi
  • Resolution Update from None to Accepted
Comment

Support for "%I64d" added in latest version

2021-12-24 17:48 Updated by: cazfi
  • Status Update from Open to Closed
  • Owner Update from (None) to cazfi
  • Resolution Update from Accepted to Fixed

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login