[PATCH] Add support for RISC-V

Mark Wielaard mark@klomp.org
Mon Apr 23 16:59:00 GMT 2018

Hi Andreas,

On Thu, Apr 19, 2018 at 05:47:52PM +0200, Andreas Schwab wrote:
> This implements initial support for the RISC-V architecture.  It has
> been tested with qemu linux-user emulation
> <https://build.opensuse.org/package/live_build_log/openSUSE:Factory:RISCV/elfutils/standard/riscv64>,
> with the following unresolved issues

This is a great start. The patch looks fine. I only had to add the new
testfile to EXTRA_DISTS. Pushed to master.

> FAIL: run-strip-strmerge.sh
> ===========================
> elflint /home/abuild/rpmbuild/BUILD/elfutils-0.170/tests/elfstrmerge
> section [32] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x51c0 does not match .got section address 0x5010
> section [32] '.symtab': symbol 119: st_value out of bounds
> FAIL run-strip-strmerge.sh (exit status: 1)

If you know the rules for _GLOBAL_OFFSET_TABLE you can write a
check_special_symbol hook.
Maybe symbol 119 is also special?

> FAIL: run-elflint-self.sh
> =========================
> section [33] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x6220 does not match .got section address 0x6008
> section [33] '.symtab': symbol 135: st_value out of bounds


> FAIL: run-native-test.sh
> ========================
> /home/abuild/rpmbuild/BUILD/elfutils-0.170/tests/allregs: dwfl_module_register_names: no backend registers known
> FAIL run-native-test.sh (exit status: 1)

This needs a register_info hook.

> FAIL: run-backtrace-native-core.sh
> ==================================
> backtrace: backtrace.c:111: callback_verify: Assertion `symname && strcmp (symname, "raise") == 0' failed.
> ./test-subr.sh: line 84: 26040 Aborted                 (core dumped) LD_LIBRARY_PATH="${built_library_path}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" $VALGRIND_CMD "$@"
> backtrace-child-core.26027: no main
> rmdir: failed to remove 'test-26016': Directory not empty
> FAIL run-backtrace-native-core.sh (exit status: 1)

This probably needs an abi_cfi hook and setting up the
frame_nregs field.

> In addition, all tests that use ptrace are failing as linux-user
> emulation does not implement it.

And it would need an set_initial_registers_tid hook
and possible a fallback unwind hook.



More information about the Elfutils-devel mailing list