Skip to content

riscv64 and gcc 13: gf16_shuffle128_rvv.c:(.text+0x22e): undefined reference to `__riscv_vlseg2e8_v_u8m1' #449

@sanderjo

Description

@sanderjo

NZBGet Version

v24.5-testing

Platform

Linux/Docker

Environment

riscv64 
Bianbu OS

$ uname -a
Linux sander-desktop 6.6.36 #2.0.2.2 SMP PREEMPT Mon Nov 11 13:06:48 UTC 2024 riscv64 riscv64 riscv64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Bianbu
Description:	Bianbu 2.0.2
Release:	2.0.2
Codename:	noble


$ cat /proc/cpuinfo 
processor	: 0
hart		: 0
model name	: Spacemit(R) X60
isa		: rv64imafdcv_zicbom_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zfhmin_zca_zcd_zba_zbb_zbc_zbs_zkt_zve32f_zve32x_zve64d_zve64f_zve64x_zvfh_zvfhmin_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt
mmu		: sv39
mvendorid	: 0x710
marchid		: 0x8000000058000001
mimpid		: 0x1000000049772200

Problem or Question

gcc (Ubuntu 13.2.0-23ubuntu4bb2) 13.2.0
mkdir build
cd build/
cmake ..
cmake --build . -j 2

gives the errors below (in the linking).

Because I see par2-turbo and gf16, I first tried compiling par2cmd-turbo from @animetosho , and that just works.

The procedure via wget https://nzbget.com/download/nzbget-latest-bin-linux.run works and results in a working riscv64 nzbget binary. So

  1. not urgent
  2. probably a (link?) parameter setting, and possibly a PEBKAC
[ 94%] Building CXX object CMakeFiles/nzbget.dir/daemon/util/Benchmark.cpp.o
[ 95%] Building CXX object CMakeFiles/nzbget.dir/daemon/system/SystemInfo.cpp.o
[ 96%] Building CXX object CMakeFiles/nzbget.dir/daemon/system/OS.cpp.o
[ 97%] Building CXX object CMakeFiles/nzbget.dir/daemon/system/CPU.cpp.o
[ 98%] Building CXX object CMakeFiles/nzbget.dir/daemon/system/Network.cpp.o
[100%] Linking CXX executable nzbget
/usr/bin/ld: par2-turbo/src/par2-turbo-build/libgf16.a(gf16_shuffle128_rvv.c.o): in function `gf16_shuffle_mul_128_rvv':
gf16_shuffle128_rvv.c:(.text+0x22e): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x334): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: par2-turbo/src/par2-turbo-build/libgf16.a(gf16_shuffle128_rvv.c.o): in function `gf16_shuffle_muladd_128_rvv':
gf16_shuffle128_rvv.c:(.text+0x5e8): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x60e): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x722): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: par2-turbo/src/par2-turbo-build/libgf16.a(gf16_shuffle128_rvv.c.o): in function `gf16_shuffle_muladd_multi_128_rvv':
gf16_shuffle128_rvv.c:(.text+0xe7c): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0xea0): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0xfa6): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x10bc): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x11cc): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x16ce): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x16e0): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x17e4): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x190c): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x1bae): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x1bc0): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x1cd6): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: par2-turbo/src/par2-turbo-build/libgf16.a(gf16_shuffle128_rvv.c.o): in function `gf16_shuffle_muladd_multi_stridepf_128_rvv':
gf16_shuffle128_rvv.c:(.text+0x232e): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x2340): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x2454): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x256a): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x268a): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x2d20): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x2d32): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x2e46): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x2f5c): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x306c): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3532): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3544): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3648): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3770): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3bc6): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3bd8): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3cea): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x3e12): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x406a): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x407c): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x41a2): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x43d0): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x43e2): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x4508): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: par2-turbo/src/par2-turbo-build/libgf16.a(gf16_shuffle128_rvv.c.o): in function `gf16_shuffle_muladd_multi_packed_128_rvv':
gf16_shuffle128_rvv.c:(.text+0x4bc8): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x4bda): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x4ce6): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x4dee): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x4f1e): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x5436): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x5460): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x5566): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x567e): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x58d2): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x58fc): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x5a20): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: par2-turbo/src/par2-turbo-build/libgf16.a(gf16_shuffle128_rvv.c.o): in function `gf16_shuffle_muladd_multi_packpf_128_rvv':
gf16_shuffle128_rvv.c:(.text+0x609a): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x60ac): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x61b6): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x62be): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x63ec): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x6a1c): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x6a2e): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x6b38): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x6c40): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x6d70): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x7224): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x724e): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x7354): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x746c): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x78fa): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x7924): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x7a2a): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x7b42): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x8168): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x817a): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x8284): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x838c): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x84bc): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x8770): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x87a8): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x88bc): undefined reference to `__riscv_vsseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x8b0e): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x8b46): undefined reference to `__riscv_vlseg2e8_v_u8m1'
/usr/bin/ld: gf16_shuffle128_rvv.c:(.text+0x8c5a): undefined reference to `__riscv_vsseg2e8_v_u8m1'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/nzbget.dir/build.make:1658: nzbget] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:93: CMakeFiles/nzbget.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
sander@sander-desktop:~/git/nzbget/build$ 

Steps To Reproduce

see above

Logs

No response

Extra information

No response

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions