Hi Damjan, I am using Ubuntu 20.04 image on Qemu. I had to do following changes to make it work.
diff --git a/src/vppinfra/CMakeLists.txt b/src/vppinfra/CMakeLists.txt index 58ec32fbf..2168da185 100644 --- a/src/vppinfra/CMakeLists.txt +++ b/src/vppinfra/CMakeLists.txt @@ -219,7 +219,7 @@ if(VPP_USE_EXTERNAL_LIBEXECINFO) endif() add_vpp_library(vppinfra SOURCES ${VPPINFRA_SRCS} - LINK_LIBRARIES m ${EXECINFO_LIB} + LINK_LIBRARIES m ${EXECINFO_LIB} atomic INSTALL_HEADERS ${VPPINFRA_HEADERS} COMPONENT libvppinfra LTO ubuntu@ubuntu:~/work/vpp$ ubuntu@ubuntu:~/work/vpp$ ubuntu@ubuntu:~/work/vpp$ ubuntu@ubuntu:~/work/vpp$ ubuntu@ubuntu:~/work/vpp$ uname -a Linux ubuntu 5.11.0-1022-generic #23~20.04.1-Ubuntu SMP Thu Oct 21 10:16:27 UTC 2021 riscv64 riscv64 riscv64 GNU/Linux ubuntu@ubuntu:~/work/vpp$ Thanks, Hrishikesh On Fri, Nov 12, 2021 at 6:01 PM Damjan Marion <dmar...@me.com> wrote: > > Hi, > > i tried to repro with gcc-10 on ubuntu 21.10 x86_64 and everything works > fine. > Only caveat is that I had to pass -Wno-stringop-overflow in CFLAGS. > > — > Damjan > > > > On 10.11.2021., at 08:29, Hrishikesh Karanjikar < > hrishikesh.karanji...@gmail.com> wrote: > > Hi Damjan, > > I upgraded my Unmatched board to run Ubuntu 21.10 from 21.04. > I was able to build VPP on Unmatched. > I am also trying to build it on Qemu with GCC 10. > I am getting following error, > > > ======================================================================================== > > ubuntu@ubuntu:~/work/vpp$ make build > make[1]: Entering directory '/home/ubuntu/work/vpp/build-root' > @@@@ Arch for platform 'vpp' is native @@@@ > @@@@ Finding source for external @@@@ > @@@@ Makefile fragment found in /home/ubuntu/work/vpp/build-data/packages/ > external.mk @@@@ > @@@@ Source found in /home/ubuntu/work/vpp/build @@@@ > @@@@ Arch for platform 'vpp' is native @@@@ > @@@@ Finding source for vpp @@@@ > @@@@ Makefile fragment found in /home/ubuntu/work/vpp/build-data/packages/ > vpp.mk @@@@ > @@@@ Source found in /home/ubuntu/work/vpp/src @@@@ > find: ‘/home/ubuntu/work/vpp/build-root/config.site’: No such file or > directory > @@@@ Configuring external: nothing to do @@@@ > @@@@ Building external: nothing to do @@@@ > @@@@ Installing external: nothing to do @@@@ > find: ‘/home/ubuntu/work/vpp/build-root/config.site’: No such file or > directory > @@@@ Configuring vpp: nothing to do @@@@ > @@@@ Building vpp in > /home/ubuntu/work/vpp/build-root/build-vpp_debug-native/vpp @@@@ > [2/1463] Linking C executable bin/svmtool > FAILED: bin/svmtool > : && ccache /usr/lib/ccache/gcc-10 > CMakeFiles/svm/CMakeFiles/svmtool.dir/svmtool.c.o -o bin/svmtool > > -Wl,-rpath,/home/ubuntu/work/vpp/build-root/build-vpp_debug-native/vpp/lib/riscv64-linux-gnu:: > lib/riscv64-linux-gnu/libsvm.so.22.02 > lib/riscv64-linux-gnu/libvppinfra.so.22.02 -lm -lrt -lpthread && : > /usr/bin/ld: lib/riscv64-linux-gnu/libvppinfra.so.22.02: undefined > reference to `__atomic_exchange_1' > collect2: error: ld returned 1 exit status > [3/1463] Linking C executable bin/svmdbtool > FAILED: bin/svmdbtool > : && ccache /usr/lib/ccache/gcc-10 > CMakeFiles/svm/CMakeFiles/svmdbtool.dir/svmdbtool.c.o -o bin/svmdbtool > > -Wl,-rpath,/home/ubuntu/work/vpp/build-root/build-vpp_debug-native/vpp/lib/riscv64-linux-gnu:: > lib/riscv64-linux-gnu/libsvmdb.so.22.02 > lib/riscv64-linux-gnu/libsvm.so.22.02 > lib/riscv64-linux-gnu/libvppinfra.so.22.02 -lm -lrt -lpthread && : > /usr/bin/ld: lib/riscv64-linux-gnu/libvppinfra.so.22.02: undefined > reference to `__atomic_exchange_1' > collect2: error: ld returned 1 exit status > [5/1463] Building C object > CMakeFiles/vlib/CMakeFiles/vlib_objs.dir/drop.c.o > ninja: build stopped: subcommand failed. > make[1]: *** [Makefile:693: vpp-build] Error 1 > make[1]: Leaving directory '/home/ubuntu/work/vpp/build-root' > make: *** [Makefile:356: build] Error 2 > > > ======================================================================================== > Libatomic is present on my machine. > > Can you give me some pointers to resolve the same? > > Thanks, > Hrishikesh > > On Mon, Nov 8, 2021 at 8:19 PM Hrishikesh Karanjikar < > hrishikesh.karanji...@gmail.com> wrote: > >> Hi, >> >> This is great. >> Thanks a lot. >> Let me try that. >> >> Hrishikesh >> >> On Mon, Nov 8, 2021 at 8:00 PM Damjan Marion <dmar...@me.com> wrote: >> >>> I compiled directly on the Unmatched board. I also submitted series of >>> patches which are fixing all >>> issues you are referring to. >>> >>> you can use both clang and gcc, problem with clang is that some parts of >>> VPP unconditionally turn address sanitiser on and there is no ASAN >>> shared libraries available for risc-v. >>> You can bypass this temporarely by commenting out test_pnat, test_vat >>> and test_vat2 targets. >>> >>> I also managed to cross-compile vpp on ubuntu system by using debian >>> multiarch libs. >>> >>> # dpkg --add-architecture riscv64 >>> >>> Update sources.list: >>> >>> deb [arch=arm64,armhf,riscv64] http://ports.ubuntu.com/ubuntu-ports/ >>> impish main restricted universe multiverse >>> deb [arch=arm64,armhf,riscv64] http://ports.ubuntu.com/ubuntu-ports/ >>> impish-updates main restricted universe multiverse >>> deb [arch=arm64,armhf,riscv64] http://ports.ubuntu.com/ubuntu-ports/ >>> impish-backports main restricted universe multiverse >>> >>> # apt update >>> >>> # apt install crossbuild-essential-riscv64 libssl-dev:riscv64 >>> uuid-dev:riscv64 libnl-3-dev:riscv6 libnl-route-3-dev:riscv64 >>> libbpf-dev:riscv64 >>> >>> >>> $ cmake \ >>> -DCMAKE_SYSTEM_NAME=Linux \ >>> -DCMAKE_SYSTEM_PROCESSOR=riscv64 \ >>> -DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc \ >>> -DCMAKE_CXX_COMPILER=riscv64-linux-gnu-gcc \ >>> -DCMAKE_C_COMPILER_TARGET=riscv64-linux-gnu \ >>> -DCMAKE_CXX_COMPILER_TARGET=riscv64-linux-gnu \ >>> -DCMAKE_ASM_COMPILER_TARGET=riscv64-linux-gnu \ >>> -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \ >>> -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH \ >>> -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \ >>> -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY \ >>> -DCMAKE_FIND_ROOT_PATH=/usr/riscv64-linux-gnu \ >>> -DCMAKE_INSTALL_PREFIX=/usr/local \ >>> -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \ >>> -DCMAKE_BUILD_TYPE:STRING=debug \ >>> -G Ninja \ >>> -S src \ >>> -B . >>> >>> $ ninja >>> >>> $ file bin/vpp >>> bin/vpp: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), >>> dynamically linked, interpreter /lib/ld-linux-riscv64-lp64d.so.1, >>> BuildID[sha1]=51ac741e44727379a0fbb5936acea4d7b8bdd624, for GNU/Linux >>> 4.15.0, with debug_info, not stripped >>> >>> And run with qemu: >>> >>> $ qemu-riscv64-static ./bin/vpp unix interactive >>> buffer [warn ]: numa[0] falling back to non-hugepage backed buffer >>> pool (vlib_physmem_shared_map_create: pmalloc_map_pages: failed to mmap 19 >>> pages at 0x404fc00000 fd 4 numa 0 flags 0x11: Invalid argument) >>> buffer [warn ]: numa[1] falling back to non-hugepage backed buffer >>> pool (vlib_physmem_shared_map_create: pmalloc_map_pages: failed to set >>> mempolicy for numa node 1: Function not implemented) >>> vlib_physmem_shared_map_create: pmalloc_map_pages: failed to set >>> mempolicy for numa node 1: Function not implementedsvm_queue_init:57: >>> mutex_init: No such file or directory (errno 2) >>> svm_queue_init:57: mutex_init: No such file or directory (errno 2) >>> svm_queue_init:57: mutex_init: No such file or directory (errno 2) >>> svm_queue_init:57: mutex_init: No such file or directory (errno 2) >>> svm_queue_init:57: mutex_init: No such file or directory (errno 2) >>> svm_queue_init:57: mutex_init: No such file or directory (errno 2) >>> svm_queue_init:57: mutex_init: No such file or directory (errno 2) >>> vat-plug/load [error ]: vat_plugin_register: oddbuf plugin not >>> loaded... >>> _______ _ _ _____ ___ >>> __/ __/ _ \ (_)__ | | / / _ \/ _ \ >>> _/ _// // / / / _ \ | |/ / ___/ ___/ >>> /_/ /____(_)_/\___/ |___/_/ /_/ >>> >>> DBGvpp# >>> >>> >>> — >>> Damjan >>> >>> >>> >>> > On 08.11.2021., at 14:59, Hrishikesh Karanjikar < >>> hrishikesh.karanji...@gmail.com> wrote: >>> > >>> > Hi, >>> > >>> > Thanks for this patch. I will check it out. Which compile did you use? >>> Did you cross compile or locally compiled it on Qemu or any other platform? >>> > I was able to compile VPP using GCC10 locally on Qemu but I had to do >>> other modifications. >>> > At many places I was able to put RiscV specific code but vector >>> support for RiscV is still not available so I had to use stubs for >>> compilation to work. >>> > >>> > Thanks, >>> > Hrishikesh >>> > >>> > On Mon, Nov 1, 2021 at 1:53 AM Damjan Marion <dmar...@me.com> wrote: >>> > >>> > Here it is: >>> > >>> > https://gerrit.fd.io/r/c/vpp/+/34298 >>> > >>> > It is early but works for me. >>> > >>> > — >>> > Damjan >>> > >>> > >>> >> On 25.10.2021., at 18:36, Hrishikesh Karanjikar < >>> hrishikesh.karanji...@gmail.com> wrote: >>> >> >>> >> Hi, >>> >> >>> >> Yes. SiFive HiFive boards are available. But they do not support >>> Vector Extension yet. >>> >> Also Qemu is ready for RiscV. Ubuntu images are available for RIscV. >>> >> >>> >> Thanks, >>> >> Hrishikesh >>> >> >>> >> >>> >> On Mon, Oct 25, 2021 at 9:56 PM Damjan Marion <dmar...@me.com> wrote: >>> >> >>> >> >>> >> >>> >> > On 14.10.2021., at 15:43, Hrishikesh Karanjikar < >>> hrishikesh.karanji...@gmail.com> wrote: >>> >> > >>> >> > >>> >> > Hi, >>> >> > >>> >> > Is VPP ported for the Risc-V processor? >>> >> > Is there any project going for the same? >>> >> > >>> >> >>> >> I was looking at that a year ago but I was not able to find any >>> suitable dev board. >>> >> >>> >> Is there anything new on the market? >>> >> >>> >> — >>> >> Damjan >>> >> >>> >> >>> >> >>> >> -- >>> >> >>> >> Regards, >>> >> Hrishikesh Karanjikar >>> >> >>> >> >>> >> >>> > >>> > >>> > >>> > -- >>> > >>> > Regards, >>> > Hrishikesh Karanjikar >>> >>> >> >> -- >> >> Regards, >> Hrishikesh Karanjikar >> > > > -- > > Regards, > Hrishikesh Karanjikar > > > > > -- Regards, Hrishikesh Karanjikar
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20522): https://lists.fd.io/g/vpp-dev/message/20522 Mute This Topic: https://lists.fd.io/mt/86312689/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-