Skip to content

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

@omerguzelelectronicguy

Description

@omerguzelelectronicguy

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions