VMA format in linker map file on 64-bit host for 32-bit target.
Sergey Organov
sorganov@gmail.com
Tue Nov 17 15:20:00 GMT 2015
More information about the Binutils mailing list
Tue Nov 17 15:20:00 GMT 2015
- Previous message (by thread): VMA format in linker map file on 64-bit host for 32-bit target.
- Next message (by thread): Commit: RX: Fix disassembly of erroneous conditionals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Nick Clifton <nickc@redhat.com> writes: > Hi Sergey, > >> I've build binutils-2.25.1 on x86_64 for --target=sparc-elf, and in the >> map file for the target linker prints all the VMA addresses as 64-bit >> (16-chars hexadecimals), that is inconvenient. Is there any configure or >> invocation switch that controls this, or the only way is to build >> binutils on 32-bit host? > > Sorry - the size of the VMA printing is controlled by the size of the > host. Have you tried this: > > CC="gcc -m32" CXX="g++ -m32" ABI="32" setarch i686 \ > <binutils-source)/configure \ > --target=sparc-elf Now I did, and it does the trick, thanks! Without this I've had to patch the sources like this (not a proper patch, I know, as it breaks 64-bit targets): Modified bfd/bfd-in.h diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index 1607872..b837289 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -144,8 +144,8 @@ typedef BFD_HOST_U_64_BIT symvalue; #endif #ifndef fprintf_vma -#define sprintf_vma(s,x) sprintf (s, "%016" BFD_VMA_FMT "x", x) -#define fprintf_vma(f,x) fprintf (f, "%016" BFD_VMA_FMT "x", x) +#define sprintf_vma(s,x) sprintf (s, "%08" BFD_VMA_FMT "x", ((x) & ((1UL << 32) - 1))) +#define fprintf_vma(f,x) fprintf (f, "%08" BFD_VMA_FMT "x", ((x) & ((1UL << 32) - 1))) #endif #else /* not BFD64 */ -- Sergey.
- Previous message (by thread): VMA format in linker map file on 64-bit host for 32-bit target.
- Next message (by thread): Commit: RX: Fix disassembly of erroneous conditionals
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list