Tíquete #43357

Configure check for proper size_t printf() format

: 2021-12-09 10:48 Última Atualização: 2021-12-24 17:48

Relator:
Dono:
Tipo:
Estado:
Fechado
Componente:
Marcos:
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Fixed
Arquivo:
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
  • Resolução Update from Nenhum 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
  • Resolução Update from Accepted to Nenhum
Comentário

That "%ldd" should be "%lld"

2021-12-13 06:22 Updated by: cazfi
  • Resolução Update from Nenhum to Accepted
Comentário

- New version corrects "%lld"

2021-12-13 13:12 Updated by: cazfi
  • Resolução Update from Accepted to Nenhum
Comentário

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
  • Resolução Update from Nenhum to Accepted
Comentário

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
  • Resolução Update from Accepted to Nenhum
Comentário

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

2021-12-20 21:20 Updated by: cazfi
  • Resolução Update from Nenhum to Accepted
Comentário

Support for "%I64d" added in latest version

2021-12-24 17:48 Updated by: cazfi
  • Estado Update from Aberto to Fechado
  • Dono Update from (Nenhum) to cazfi
  • Resolução Update from Accepted to Fixed

Editar

Please login to add comment to this ticket » Login