diff options
author | Alan Modra <amodra@gmail.com> | 2020-06-26 10:52:30 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-06-26 10:58:03 +0930 |
commit | ba9b3ef5ee666467b67780e81f868c432f4fc56d (patch) | |
tree | 7b4799779c2f3f03e1d16f89dfdaf495e05ad146 /bfd/coff-tic4x.c | |
parent | 30610e152009eab265a9fa484f321c5ab4421cdc (diff) | |
download | gdb-ba9b3ef5ee666467b67780e81f868c432f4fc56d.zip gdb-ba9b3ef5ee666467b67780e81f868c432f4fc56d.tar.gz gdb-ba9b3ef5ee666467b67780e81f868c432f4fc56d.tar.bz2 |
RISCV changes broke 32-bit --enable-targets=all
By the look of it, git commit 39ff0b812324 broke 32-bit host
--enable-targets=all binutils builds.
/usr/local/bin/ld: ../opcodes/.libs/libopcodes.a(riscv-dis.o): in function `parse_riscv_dis_option':
/home/alan/src/binutils-gdb/opcodes/riscv-dis.c:102: undefined reference to `riscv_get_priv_spec_class'
collect2: error: ld returned 1 exit status
Makefile:925: recipe for target 'objdump' failed
The problem is that elfxx-riscv.c is not built for a 32-bit host
without --enable-64-bit-bfd or unless RISCV is given specifically as a
target. No such trimming of 64-bit only targets is done in opcodes.
One solution is to move these support functions to cpu-riscv.c, which
runs into "error: implicit declaration of function ‘xmalloc’". Now,
xmalloc is not supposed to be used in libbfd or libopcodes - it's rude
to crash out of an application that calls libbfd or libopcodes
functions without giving it a chance to deal with out-of-memory
itself. So I removed the xmalloc and instead used a fixed size
buffer. If you are worried about adding 36 bytes for the buffer to
the riscv_get_priv_spec_class_from_numbers stack frame size, then you
have no idea of the likely xmalloc + malloc stack frame size! Trying
to reduce memory usage is commendable, but in this instance
riscv_estimate_digit and malloc for a temp buffer uses a lot more
memory than a fixed max-size buffer.
* elfxx-riscv.c (struct priv_spec_t, priv_specs),
(riscv_get_priv_spec_class, riscv_get_priv_spec_class_from_numbers),
(riscv_get_priv_spec_name): Move to..
* cpu-riscv.c: ..here.
(riscv_get_priv_spec_class_from_numbers): Don't xmalloc temp buffer.
Use %u to print unsigned numbers.
Diffstat (limited to 'bfd/coff-tic4x.c')
0 files changed, 0 insertions, 0 deletions