jasonyu1996 / elasticlave Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Awesome project!
I want to run it on QEMU, but I'm having some build problems.
Ubuntu 18.04.
Working on master
branch.
Result of git submodule status
:
1fcdfbfb8a28b81283575efc3faa92ce4a0d4e56 buildroot (2019.08)
4917510626c55c1f199ef7383ae164cf96044aea libsodium (1.0.16-107-g49175106)
4d856f72c10ecb060868ed10ff1b1453943fc6c8 linux (v5.3)
3fe7e2c75df78eef42dcdc352a55757729f451e2 musl (heads/staging)
d4bd55eb41c01482ba6ce3dc0d648f952d75a06c qemu (heads/pmpfix)
Result of git branch -a
:
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Bug 0:
Firstly, I followed the steps in Readme. I ran ./docker.sh
with all submodules updated.
But I found some small bugs, as shown in log message below:
make -s -C /keystone/buildroot RISCV=/keystone/riscv/ PATH=/keystone/riscv//bin:/keystone/riscv/bin:/tools/riscv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin O=/keystone/build/buildroot.build
make[4]: Entering directory '/keystone/buildroot'
>>> toolchain-external-custom Configuring�[27m
Cannot execute cross-compiler '/keystone/riscv//bin/riscv64-unknown-linux-gnu-gcc'
make[4]: ** [package/pkg-generic.mk:231: /keystone/build/buildroot.build/build/toolchain-external-custom/.stamp_configured] Error 1
make[4]: Leaving directory '/keystone/buildroot'
make[3]: ** [CMakeFiles/image.dir/build.make:63: CMakeFiles/image] Error 2
make[3]: Leaving directory '/keystone/build'
make[2]: ** [CMakeFiles/Makefile2:290: CMakeFiles/image.dir/all] Error 2
make[2]: Leaving directory '/keystone/build'
make[1]: ** [CMakeFiles/Makefile2:297: CMakeFiles/image.dir/rule] Error 2
make[1]: Leaving directory '/keystone/build'
make: *** [Makefile:212: image] Error 2
Wrong PATH. I changed the relevant 'Makefile' to get it fixed, and I decided to build it step by step.
sudo ./docker-build.sh
sudo ./docker-run.sh ./fast-setup.sh
make: Leaving directory '/keystone/sdk'
Keystone is fully setup! You can build everything and run the tests with 'make run-tests'
Looks right. But I got:
make: *** No rule to make target 'run-tests'. Stop.
sudo ./docker-run.sh ./make-sodium.sh
Succeed.
sudo ./docker-run.sh ./make-musl.sh
Succeed.
BUG 1:
There is something wrong in this step: sudo ./docker-run.sh ./make.sh
Here is Error Log:
[ 28%] Building buildroot
make -s -C /keystone/buildroot RISCV=/keystone/riscv64 PATH=/keystone/riscv64/bin:/tools/riscv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin O=/keystone/build/buildroot.build
make[3]: Entering directory '/keystone/buildroot'
make[4]: Entering directory '/keystone/buildroot'
GEN /keystone/build/buildroot.build/Makefile
make[4]: Leaving directory '/keystone/buildroot'>>> toolchain-external-custom Configuring
Incorrect selection of kernel headers: expected 4.13.x, got 5.0.x
make[3]: *** [package/pkg-generic.mk:231: /keystone/build/buildroot.build/build/toolchain-external-custom/.stamp_configured] Error 1
make[3]: Leaving directory '/keystone/buildroot'
make[2]: *** [CMakeFiles/buildroot.dir/build.make:64: CMakeFiles/buildroot] Error 2
make[2]: Leaving directory '/keystone/build'
make[1]: *** [CMakeFiles/Makefile2:208: CMakeFiles/buildroot.dir/all] Error 2
make[1]: Leaving directory '/keystone/build'
make: *** [Makefile:87: all] Error 2
Well, it seems that my kernel header is too NEW. I found some comments in buildroot/toolchain/toolchain/toolchain.mk
:
# Apply a hack that Rick Felker suggested[1] to avoid conflicts between libc
# headers and kernel headers. This is needed for kernel headers older than
# 4.15. Kernel headers 4.15 and newer don't require GLIBC to be defined.
#
# Augment the original suggestion with __USE_MISC since recent kernels
# (older than 4.15) require this glibc internal macro. Also, as musl defines
# IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO, add another macro to suppress
# them in the kernel header, and avoid macro/enum conflict.
#
# Kernel version 3.12 introduced the libc-compat.h header.
#
# [1] http://www.openwall.com/lists/musl/2015/10/08/2
So I changed the kernel header to 4.14 via make menuconfig
in /buildroot
, but failed again with the same Log.
Incorrect selection of kernel headers: expected 4.13.x, got 5.0.x
Bug 2:
./docker-run.sh ./make-sdk.sh
/keystone/riscv64/bin:/tools/riscv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
make: Entering directory '/keystone/sdk/lib'
make -C app
make[1]: Entering directory '/keystone/sdk/lib/app'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/keystone/sdk/lib/app'
make -C host
make[1]: Entering directory '/keystone/sdk/lib/host'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/keystone/sdk/lib/host'
make -C edge
make[1]: Entering directory '/keystone/sdk/lib/edge'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/keystone/sdk/lib/edge'
make -C verifier
make[1]: Entering directory '/keystone/sdk/lib/verifier'
#riscv64-unknown-linux-gnu-g++ -std=gnu++11 test.cpp ../libkeystone-verifier.a -o test
make[1]: Leaving directory '/keystone/sdk/lib/verifier'
make: Leaving directory '/keystone/sdk/lib'
make: Entering directory '/keystone/sdk/rts/eyrie'
riscv64-unknown-linux-gnu-ld -static -nostdlib --no-dynamic-linker -z text -L/keystone/sdk/lib -o eyrie-rt entry.o fp_asm.o boot.o interrupt.o printf.o syscall.o string.o linux_wrap.o io_wrap.o fast_io_wrap.o rt_util.o mm.o env.o freemem.o paging.o performance.o /keystone/sdk/rts/eyrie/rpc/rpc.o /keystone/sdk/rts/eyrie/rpc/rpc_crypto.o /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o /keystone/sdk/rts/eyrie/rpc/rpc_crypto_enc.o /keystone/sdk/lib/libkeystone-edge.a uaccess.o -T runtime.lds
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: interrupt.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: syscall.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: linux_wrap.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: io_wrap.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: fast_io_wrap.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: rt_util.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: mm.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: env.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: freemem.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x0): multiple definition of `runtime_va_start'; boot.o:(.bss+0x0): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x8): multiple definition of `kernel_offset'; boot.o:(.bss+0x8): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x10): multiple definition of `load_pa_start'; boot.o:(.bss+0x10): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x1000): multiple definition of `root_page_table'; boot.o:(.bss+0x1000): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x2000): multiple definition of `secondary_page_tables'; boot.o:(.bss+0x2000): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x202000): multiple definition of `page_tables_count'; boot.o:(.bss+0x202000): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x202008): multiple definition of `program_break'; boot.o:(.bss+0x202008): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x202010): multiple definition of `freemem_va_start'; boot.o:(.bss+0x202010): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x202018): multiple definition of `freemem_size'; boot.o:(.bss+0x202018): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x202020): multiple definition of `shared_buffer'; boot.o:(.bss+0x202020): first defined here
riscv64-unknown-linux-gnu-ld: /keystone/sdk/rts/eyrie/rpc/edge_wrapper.o:(.bss+0x202028): multiple definition of `shared_buffer_size'; boot.o:(.bss+0x202028): first defined here
make: *** [Makefile:47: eyrie-rt] Error 1
make: Leaving directory '/keystone/sdk/rts/eyrie'
Looks like there's something wrong with the RISC-V linker rather than eyrie
. I noticed that there is a similar issue in Keystone's repo. However, I still didn't figure out the solution... Well, I'm really not an expert on toolchain or docker.
Merry Xmas !
Any help would be appreciated !
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.