build failure for ia64 (due to -Werror)

Ian Lance Taylor ian@airs.com
Fri Mar 18 22:49:00 GMT 2005


James E Wilson <wilson@specifixinc.com> writes:

> On Fri, 2005-03-18 at 04:21, Alan Modra wrote:
> > I would guess 32-bit host, no --enable-64-bit-bfd.  Then "bfd_vma insn"
> > is 32-bit and ia64_insn is long long.  There's worse things in that code
> > than type-punned pointers..
> 
> I believe this can only happen if --enable-targets=all is used.
> 
> I see this is a documented feature in configure.in.  This seems like a
> flaw to me.  The elfxx-ia64.c file won't work without a 64-bit integer
> type, and it seems unreasonable to try to fix this.  A quick look seems
> to suggest that other elf64-* files have the same problem.  elf64-ppc.c
> is using bfd_get_64 for instance, as are some others.
> 
> I suppose I could add something like
> #ifndef BFD64
> #error This target requires a 64 bit integer type.
> #endif
> to the elfxx-ia64.c file to make the problem more obvious if people
> think something needs to be done.
> 
> It might be better to fix the --enable-targets=all support.  We have
> enough 64-bit targets by now that perhaps --enable-targets=all should
> force use of BFD64.

If you don't have a 64-bit host, nor a 64-bit target, nor do you
configure with --enable-64-bit-bfd, then --enable-targets=all should
only permit the use of 32-bit targets.  This is implemented through
the rather odd mechanism of using #ifdef BFD64 in bfd/config.bfd, from
which targmatch.h is constructed.

Perhaps this has broken somehow.

Ian



More information about the Binutils mailing list