Ошибки соединения с gdb-7.8, скомпилированным с os161 mips - PullRequest
0 голосов
/ 19 декабря 2018

Я работаю над Ubuntu 18.10.Я настроил его следующим образом:

./configure --target=mips-harvard-os161 --prefix=$HOME/os161/tools  

Ошибки компиляции с gdb-7.8, скомпилированным с os161 mips.

Как это исправить?


The ...ниже /home/kapperchino/Downloads/

.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-io.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-info.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-module.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-options.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-profile.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-signal.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-trace.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-utils.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-watch.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(interp.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-main.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-hload.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-engine.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-stop.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-resume.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-reason.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(irun.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-command.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-core.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-events.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-fpu.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/./../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-load.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/./../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(sim-memopt.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(cp1.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(engine.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(semantics.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here
/usr/bin/ld: libsim.a(idecode.o): in function `sim_addr_range_hit_p':
.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: multiple definition of `sim_addr_range_hit_p'; nrun.o:.../gdb-7.8+os161-2.1/sim/mips/../common/sim-arange.c:290: first defined here

1 Ответ

0 голосов
/ 04 июля 2019

Я понимаю, что опаздываю на ответ, но чувствую, что многим это будет полезно.

Я сталкивался с той же проблемой, и это из-за "внешнего inline" и того, как GNU GCC интерпретируетэто (c89 и c99 интерпретируют это по-разному).Я использовал -fgnu89-inline CFLAG, но это не помогло (я думаю, это было бы на более старых версиях, но теперь GNU говорит, что с текущей версией GCC CFLAG может вызывать проблемы, которые он делал), поэтому я решил сделатьСам изменения.

Есть 2 изменения файла:

1) Теперь перейдите к определению INLINE_SIM_MAIN.Если ваш редактор не поддерживает переход к определениям, он находится в gdb * / sim / common внутри файла "sim-inline.h"

  • для поиска "extern INLINE2".
  • удалите extern и добавьте статический

2) В том же каталоге откройте «sim-arange.h» и конвертируйте INLINE в статический.

Это устранило проблему для меняпосле того, как я провел огромное количество времени.Надеюсь, это поможет.

...