This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] bfd: Use size_t for length argument totarget_read_memory function passed into bfd_elf_bfd_from_remote_memory
- From: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- To: siddhesh at redhat dot com
- Cc: binutils at sourceware dot org, gdb-patches at sourceware dot org
- Date: Fri, 1 Jun 2012 20:24:14 +0200
- Subject: Re: [PATCH] bfd: Use size_t for length argument totarget_read_memory function passed into bfd_elf_bfd_from_remote_memory
> From: Siddhesh Poyarekar <siddhesh@redhat.com>
> The target_read_memory function pointer that
> bfd_elf_bfd_from_remote_memory accepts current accepts int for length.
> I have attached a patch which changes this argument to size_t. This
> change is needed because I'm looking to make analogous changes in gdb to
> ensure consistency of storage sizes passed across functions to ensure
> that larger values are not truncated.
There's always bfd_size_type, though I haven't checked if it
fits your needs.
> 2012-05-28 Siddhesh Poyarekar <siddhesh@redhat.com>
>
> * bfd-in.h (bfd_elf_bfd_from_remote_memory): Make LEN argument
> of target_read_memory as size_t.
> * bfd-in2.h: Regenerate.
> * elf-bfd.h (elf_backend_bfd_from_remote_memory): Make LEN
> argument of target_read_memory as size_t.
> (_bfd_elf32_bfd_from_remote_memory): Likewise.
> (_bfd_elf64_bfd_from_remote_memory): Likewise.
> * elf.c (bfd_elf_bfd_from_remote_memory): Likewise.
> * enfcode.h (NAME): Likewise.
This caused failure to build for simulators for (at least) the
following targets:
cris-elf, frv-elf, h8300-elf, iq2000-elf, m32r-elf, mips-elf, and
mn10300-elf.
They fail building either of sim/common/cgen-utils.c,
sim/common/sim-command.c, sim/mips/interp.c, or
sim/common/nrun.c all due to lack of size_t definition; a
missing include of stddef.h before its use.
Should bfd.h include sysdep.h or what is missing?
For reference, the m32r-elf fail:
gcc -DHAVE_CONFIG_H -DWITH_DEFAULT_MODEL='"m32r/d"' -DPROFILE=1 -DWITH_PROFILE=-1 -DWITH_ALIGNMENT=STRICT_ALIGNMENT -DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN -DWITH_ENVIRONMENT=ALL_ENVIRONMENT -DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN -DWITH_SCACHE=16384 -DM32R_ELF -I. -I/tmp/hpautotest-sim/src/sim/m32r -I../common -I/tmp/hpautotest-sim/src/sim/m32r/../common -I../../include -I/tmp/hpautotest-sim/src/sim/m32r/../../include -I../../bfd -I/tmp/hpautotest-sim/src/sim/m32r/../../bfd -I../../opcodes -I/tmp/hpautotest-sim/src/sim/m32r/../../opcodes -g -O2 -c -o cgen-utils.o -MT cgen-utils.o -MMD -MP -MF .deps/cgen-utils.Tpo /tmp/hpautotest-sim/src/sim/m32r/../common/cgen-utils.c
In file included from /tmp/hpautotest-sim/src/sim/m32r/../common/cgen-utils.c:21:
../../bfd/bfd.h:708: error: expected declaration specifiers or '...' before 'size_t'
brgds, H-P