Skip to content

[linux] RISC-V 32/64 support #971

@jwinarske

Description

@jwinarske

Description
Upstream breakpad has preliminary support for RISC-V. Building the latest tag for RISC-V here ends in error.

  • During build
  • During run-time
  • When capturing a hard crash

Environment
Linux RISCV64

  • Compiler: gcc/clang

Steps To Reproduce

Log output

Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: VERBOSE=1 cmake --build /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/build --target all --
| Change Dir: '/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/build'
| 
| Run Build Command(s): ninja -v -j 32 all
| [1/3] /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot-native/usr/bin/riscv64-poky-linux/riscv64-poky-linux-gcc --sysroot=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot -DCRASHPAD_ZLIB_SOURCE_SYSTEM -DSENTRY_BACKEND_CRASHPAD -DSENTRY_BUILD_SHARED -DSENTRY_WITH_UNWINDER_LIBBACKTRACE -DSIZEOF_LONG=8 -DZLIB_CONST -Dsentry_EXPORTS -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/include -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/compat/non_win -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/compat/linux -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/third_party/mini_chromium/mini_chromium -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/third_party/mini_chromium -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security  --sysroot=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map  -fmacro-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git=/usr/src/debug/sentry/0.7.0  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git=/usr/src/debug/sentry/0.7.0  -fmacro-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/build=/usr/src/debug/sentry/0.7.0  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/build=/usr/src/debug/sentry/0.7.0  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot=  -fmacro-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot=  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot-native=  -O3 -g -DNDEBUG -std=gnu11 -fPIC -fvisibility=hidden -Wall -Wextra -Wpedantic -Wno-variadic-macros -Wno-gnu-include-next -Wno-multichar -MD -MT CMakeFiles/sentry.dir/src/modulefinder/sentry_modulefinder_linux.c.o -MF CMakeFiles/sentry.dir/src/modulefinder/sentry_modulefinder_linux.c.o.d -o CMakeFiles/sentry.dir/src/modulefinder/sentry_modulefinder_linux.c.o -c /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c
| FAILED: CMakeFiles/sentry.dir/src/modulefinder/sentry_modulefinder_linux.c.o
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot-native/usr/bin/riscv64-poky-linux/riscv64-poky-linux-gcc --sysroot=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot -DCRASHPAD_ZLIB_SOURCE_SYSTEM -DSENTRY_BACKEND_CRASHPAD -DSENTRY_BUILD_SHARED -DSENTRY_WITH_UNWINDER_LIBBACKTRACE -DSIZEOF_LONG=8 -DZLIB_CONST -Dsentry_EXPORTS -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/include -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/compat/non_win -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/compat/linux -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/third_party/mini_chromium/mini_chromium -I/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/third_party/mini_chromium -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security  --sysroot=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map  -fmacro-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git=/usr/src/debug/sentry/0.7.0  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git=/usr/src/debug/sentry/0.7.0  -fmacro-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/build=/usr/src/debug/sentry/0.7.0  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/build=/usr/src/debug/sentry/0.7.0  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot=  -fmacro-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot=  -fdebug-prefix-map=/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/recipe-sysroot-native=  -O3 -g -DNDEBUG -std=gnu11 -fPIC -fvisibility=hidden -Wall -Wextra -Wpedantic -Wno-variadic-macros -Wno-gnu-include-next -Wno-multichar -MD -MT CMakeFiles/sentry.dir/src/modulefinder/sentry_modulefinder_linux.c.o -MF CMakeFiles/sentry.dir/src/modulefinder/sentry_modulefinder_linux.c.o.d -o CMakeFiles/sentry.dir/src/modulefinder/sentry_modulefinder_linux.c.o -c /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c
| In file included from /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/include/sentry.h:95,
|                  from /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/sentry_boot.h:40,
|                  from /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.h:4,
|                  from /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:4:
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/compat/linux/signal.h:18:2: warning: #include_next is a GCC extension
|    18 | #include_next <signal.h>
|       |  ^~~~~~~~~~~~
| In file included from /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:16:
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/external/crashpad/compat/linux/sys/mman.h:18:2: warning: #include_next is a GCC extension
|    18 | #include_next <sys/mman.h>
|       |  ^~~~~~~~~~~~
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c: In function 'get_linux_vdso':
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:592:5: error: unknown type name 'elf_aux_entry'
|   592 |     elf_aux_entry one_aux_entry;
|       |     ^~~~~~~~~~~~~
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:594:41: error: 'elf_aux_entry' undeclared (first use in this function); did you mean 'one_aux_entry'?
|   594 |         read(fd, &one_aux_entry, sizeof(elf_aux_entry)) == sizeof(elf_aux_entry)
|       |                                         ^~~~~~~~~~~~~
|       |                                         one_aux_entry
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:594:41: note: each undeclared identifier is reported only once for each function it appears in
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:595:25: error: request for member 'a_type' in something not a structure or union
|   595 |         && one_aux_entry.a_type != AT_NULL) {
|       |                         ^
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:596:26: error: request for member 'a_type' in something not a structure or union
|   596 |         if (one_aux_entry.a_type == AT_SYSINFO_EHDR) {
|       |                          ^
| /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/git/src/modulefinder/sentry_modulefinder_linux.c:598:43: error: request for member 'a_un' in something not a structure or union
|   598 |             return (uint64_t)one_aux_entry.a_un.a_val;
|       |                                           ^
| At top level:
| cc1: note: unrecognized command-line option '-Wno-gnu-include-next' may have been intended to silence earlier diagnostics
| ninja: build stopped: subcommand failed.
| 
| WARNING: /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/temp/run.do_compile.3961536:153 exit 1 from 'eval ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '/mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/build' "$@" -- ${EXTRA_OECMAKE_BUILD}'
| WARNING: Backtrace (BB generated script):
| 	#1: cmake_runcmake_build, /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/temp/run.do_compile.3961536, line 153
| 	#2: cmake_do_compile, /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/temp/run.do_compile.3961536, line 147
| 	#3: do_compile, /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/temp/run.do_compile.3961536, line 142
| 	#4: main, /mnt/raid10/yocto/master/visionfive2/tmp/work/riscv64-poky-linux/sentry/0.7.0/temp/run.do_compile.3961536, line 166

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions