riscv-coremark icon indicating copy to clipboard operation
riscv-coremark copied to clipboard

undefined reference to `__umoddi3' collect2: error: ld returned 1 exit status make: *** [Makefile:86: compile] Error 1

Open omerguzelelectronicguy opened this issue 2 years ago • 0 comments

Hello, I want to run coremark for rv32i core in baremetal mode. I changed only the mak file, build-coremark.sh and Makefile. The changes are only the path definitions, the arch, and abi flags. Then it gives an error about size_t in core_portme.mak . I changed the line from typedef unsigned long int size_t; to typedef unsigned int size_t; . However, I am facing an error in the title. The full part of the output is below. Could you help me to solve it, please?

5:~/riscv-coremark-master# bash build-coremark.sh
Start compilation
/opt/release/bin/riscv64-unknown-elf-gcc -O2 -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -lm -lgcc -T ../riscv32i-baremetal/link.ld -I../riscv32i-baremetal -I. -DFLAGS_STR=\""-O2 -mcmodel=medany -static -std=gnu99 -fno-common -nostdlib -nostartfiles -lm -lgcc -T ../riscv32i-baremetal/link.ld   -march=rv32i -mabi=ilp32"\" -DITERATIONS=0  core_list_join.c core_main.c core_matrix.c core_state.c core_util.c ../riscv32i-baremetal/core_portme.c ../riscv32i-baremetal/syscalls.c ../riscv32i-baremetal/crt.S -o ./coremark.bare.riscv -march=rv32i -mabi=ilp32
In file included from coremark.h:38,
                 from core_matrix.c:19:
core_matrix.c: In function 'core_init_matrix':
../riscv32i-baremetal/core_portme.h:111:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  111 | #define align_mem(x) (void *)(4 + (((ee_ptr_int)(x) - 1) & ~3))
      |                                     ^
core_matrix.c:179:21: note: in expansion of macro 'align_mem'
  179 |         A=(MATDAT *)align_mem(memblk);
      |                     ^~~~~~~~~
../riscv32i-baremetal/core_portme.h:111:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  111 | #define align_mem(x) (void *)(4 + (((ee_ptr_int)(x) - 1) & ~3))
      |                      ^
core_matrix.c:179:21: note: in expansion of macro 'align_mem'
  179 |         A=(MATDAT *)align_mem(memblk);
      |                     ^~~~~~~~~
../riscv32i-baremetal/core_portme.h:111:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  111 | #define align_mem(x) (void *)(4 + (((ee_ptr_int)(x) - 1) & ~3))
      |                                     ^
core_matrix.c:197:24: note: in expansion of macro 'align_mem'
  197 |         p->C=(MATRES *)align_mem(B+N*N);
      |                        ^~~~~~~~~
../riscv32i-baremetal/core_portme.h:111:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  111 | #define align_mem(x) (void *)(4 + (((ee_ptr_int)(x) - 1) & ~3))
      |                      ^
core_matrix.c:197:24: note: in expansion of macro 'align_mem'
  197 |         p->C=(MATRES *)align_mem(B+N*N);
      |                        ^~~~~~~~~
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: warning: ./coremark.bare.riscv has a LOAD segment with RWX permissions
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccP9d4nK.o: in function `.L84':
core_list_join.c:(.text+0x724): undefined reference to `__udivsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccP9d4nK.o: in function `.L148':
core_list_join.c:(.text+0x80c): undefined reference to `__udivsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L0 ':
core_main.c:(.text.startup+0xe8): undefined reference to `__udivsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L23':
core_main.c:(.text.startup+0x1bc): undefined reference to `__ltdf2'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_main.c:(.text.startup+0x1d0): undefined reference to `__fixunsdfsi'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_main.c:(.text.startup+0x1e4): undefined reference to `__udivsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_main.c:(.text.startup+0x1f8): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L0 ':
core_main.c:(.text.startup+0x48c): undefined reference to `__gtdf2'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L61':
core_main.c:(.text.startup+0x4a0): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L29':
core_main.c:(.text.startup+0x4a8): undefined reference to `__floatunsidf'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L0 ':
core_main.c:(.text.startup+0x4d0): undefined reference to `__divdf3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_main.c:(.text.startup+0x504): undefined reference to `__ltdf2'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_main.c:(.text.startup+0x520): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L54':
core_main.c:(.text.startup+0x73c): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccVT9lZG.o: in function `.L57':
core_main.c:(.text.startup+0x7b8): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_main.c:(.text.startup+0x7c0): undefined reference to `__floatunsidf'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_main.c:(.text.startup+0x7e8): undefined reference to `__divdf3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/cc44tqoL.o: in function `.L3':
core_matrix.c:(.text+0x68): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_matrix.c:(.text+0x80): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/cc44tqoL.o: in function `.L7':
core_matrix.c:(.text+0xe8): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/cc44tqoL.o: in function `.L30':
core_matrix.c:(.text+0x2f8): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/cc44tqoL.o: in function `.L49':
core_matrix.c:(.text+0x41c): undefined reference to `__mulsi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/cc44tqoL.o:core_matrix.c:(.text+0x500): more undefined references to `__mulsi3' follow
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/cc10K25G.o: in function `time_in_secs':
core_portme.c:(.text+0x4c): undefined reference to `__floatunsidf'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: core_portme.c:(.text+0x64): undefined reference to `__divdf3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccSsyyIK.o: in function `.L51':
syscalls.c:(.text+0x1b8): undefined reference to `__umoddi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: /tmp/ccSsyyIK.o: in function `.L61':
syscalls.c:(.text+0x1e0): undefined reference to `__udivdi3'
/opt/release/bin/../lib/gcc/riscv64-unknown-elf/12.2.0/../../../../riscv64-unknown-elf/bin/ld: syscalls.c:(.text+0x1f8): undefined reference to `__umoddi3'
collect2: error: ld returned 1 exit status
make: *** [Makefile:86: compile] Error 1

omerguzelelectronicguy avatar Feb 13 '23 19:02 omerguzelelectronicguy