[PATCH 1/3] sim: split sim/callback.h include out
Mike Frysinger
vapier@gentoo.org
Sun Jun 20 20:56:08 GMT 2021
On 20 Jun 2021 11:11, Simon Marchi wrote:
> On 2021-06-16 2:33 a.m., Mike Frysinger via Gdb-patches wrote:
> > The sim-basics.h is too big and includes too many things. This leads
> > to some arch's sim-main.h having circular loop issues with defs, and
> > makes it hard to separate out common objects from arch-specific defs.
> > By splitting up sim-basics.h and killing off sim-main.h, it'll make
> > it easier to separate out the two.
> >
> > Start with splitting out sim/callback.h.
>
> Starting with this patch (according to bisect), I get this link error:
bisecting is why i've been doing small/medium patches and not giant dumps :).
> make[3]: Entering directory '/home/simark/build/binutils-gdb/sim/erc32'
> ccache gcc -DHAVE_CONFIG_H -DWITH_HW=1 -DHAVE_DV_SOCKSER -DDEFAULT_INLINE=0 -Wall -Wdeclaration-after-statement -Wpointer-arith -Wpointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type -Wold-style-declaration -I. -I/home/simark/src/binutils-gdb/sim/erc32 -I../common -I/home/simark/src/binutils-gdb/sim/erc32/../common -I../../include -I/home/simark/src/binutils-gdb/sim/erc32/../../include -I../../bfd -I/home/simark/src/binutils-gdb/sim/erc32/../../bfd -I../../opcodes -I/home/simark/src/binutils-gdb/sim/erc32/../../opcodes -I../.. -I/home/simark/src/binutils-gdb/sim/erc32/../../gnulib/import -I../../gnulib/import -DFAST_UART -I/home/simark/src/binutils-gdb/sim/erc32/../.. -g3 -O0 -fsanitize=address -fmax-errors=1 -fdiagnostics-color=always -o sis \
> sis.o exec.o erc32.o func.o help.o float.o ../common/common_libcommon_a-portability.o ../common/common_libcommon_a-sim-load.o ../common/common_libcommon_a-version.o ../../bfd/libbfd.a ../../opcodes/libopcodes.a ../../libiberty/libiberty.a -lm -ltinfo -ldl -lnsl -lz -lreadline -ltinfo -lm ../../gnulib/import/libgnu.a
> /usr/bin/ld: ../common/common_libcommon_a-sim-load.o: warning: relocation against `current_target_byte_order' in read-only section `.text'
> /usr/bin/ld: ../common/common_libcommon_a-sim-load.o: in function `LSEXTRACTED':
> /home/simark/src/binutils-gdb/sim/common/sim-bits.c:64: undefined reference to `sim_io_error'
this is weird. it builds fine for me with -O0. i just tried with sanitizers
enabled too and still passes. all with gcc-11.1.
but let's focus on the error.
LSEXTRACTED doesn't call sim_io_error. it does call the ASSERT macro which
might expand to calling sim_io_error, but that includes sim-io.h before using
the func. so that part looks ok.
sim_io_error is defined in sim-io.o. but erc32 doesn't link that in. but it
also doesn't use it in general ...
why does your sim-load have references to LSEXTRACTED et al in the first place ?
sim-load doesn't use any of those APIs. i guess this gets back to your system
not handling static/inline the way others are for some reason ?
$ readelf -sW common/common_libcommon_a-sim-load.o | grep sim
1: 0000000000000000 0 FILE LOCAL DEFAULT ABS sim-load.c
17: 0000000000000127 990 FUNC GLOBAL DEFAULT 1 sim_load_file
-mike
More information about the Gdb-patches
mailing list