This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Problem in bfd_in.h with mingw targets if BFD64 is set
- From: Kai Tietz <Kai dot Tietz at onevision dot com>
- To: Binutils <binutils at sourceware dot org>
- Date: Wed, 16 Jan 2008 13:58:51 +0100
- Subject: Problem in bfd_in.h with mingw targets if BFD64 is set
Hi all,
while trying to build native x86_64-pc-mingw32 I noticed, that the
definitions of sprintf_vma and fprintf_vma are assuming gnu-style
formatters, but mingw does not support this. The correct way for mingw to
output a 64-bit value is to use 'I64' prefix instead of 'll' prefix. I ran
over this by trying my patch for gcc to support and treat the ms formatter
styles.
This part of bfd_in.h
#ifndef fprintf_vma
#if BFD_HOST_64BIT_LONG
#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
#elif BFD_HOST_64BIT_LONG_LONG
+ #ifdef _WIN32
#define sprintf_vma(s,x) sprintf (s, "%016I64x", x)
#define fprintf_vma(f,x) fprintf (f, "%016I64x", x)
+ #else
#define sprintf_vma(s,x) sprintf (s, "%016llx", x)
#define fprintf_vma(f,x) fprintf (f, "%016llx", x)
+ #endif
#else
#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
#define fprintf_vma(s,x) \
fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
#define sprintf_vma(s,x) \
sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
#endif
#endif
Are there any comments, before I prepare a patch for this?
Cheers,
i.A. Kai Tietz
| (\_/) This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.
------------------------------------------------------------------------------------------
OneVision Software Entwicklungs GmbH & Co. KG
Dr.-Leo-Ritter-StraÃe 9 - 93049 Regensburg
Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
Handelsregister: HRA 6744, Amtsgericht Regensburg
KomplementÃrin: OneVision Software Entwicklungs Verwaltungs GmbH
Dr.-Leo-Ritter-StraÃe 9 â 93049 Regensburg
Handelsregister: HRB 8932, Amtsgericht Regensburg - GeschÃftsfÃhrer:
Ulrike DÃhler, Manuela Kluger