PR29348, BFD_VMA_FMT wrong
authorAlan Modra <amodra@gmail.com>
Sun, 31 Jul 2022 09:55:32 +0000 (19:25 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 1 Aug 2022 00:00:33 +0000 (09:30 +0930)
commit1a5178fe284547ef2abd8ae66588c9999d61c524
treea3e10f649adb19dfc046d345a73ecf2f1befdc3f
parentdf0e73ff9307251d179aa4158347deccc9576b85
PR29348, BFD_VMA_FMT wrong

There is a problem with my commit 0e3c1eebb2, which replaced
bfd_uint64_t with uint64_t: Some hosts typedef int64_t to long long
even when long is the same size as long long.  That confuses the code
choosing one of "l", "ll", or "I64" for BFD_VMA_FMT, and results in
warnings.

Write a direct configure test for the printf int64_t style instead.
This removes the last use of BFD_HOST_64BIT_LONG, so delete that.
Note that the changes to configure.com are pure guesswork.

PR 29348
* bfd-in.h (BFD_HOST_64BIT_LONG): Don't define.
(BFD_VMA_FMT): Define using BFD_INT64_FMT when 64-bit.
(bfd_vma, bfd_signed_vma): Move comments to 64-bit typedefs.
* configure.ac (BFD_HOST_64BIT_LONG): Delete.
(BFD_INT64_FMT): New config test.
* configure.com: Update similarly.
* Makefile.in: Regenerate.
* bfd-in2.h: Regenerate.
* configure: Regenerate.
bfd/Makefile.in
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/configure
bfd/configure.ac
bfd/configure.com