aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-tic4x.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-06-26 10:52:30 +0930
committerAlan Modra <amodra@gmail.com>2020-06-26 10:58:03 +0930
commitba9b3ef5ee666467b67780e81f868c432f4fc56d (patch)
tree7b4799779c2f3f03e1d16f89dfdaf495e05ad146 /bfd/coff-tic4x.c
parent30610e152009eab265a9fa484f321c5ab4421cdc (diff)
downloadgdb-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