compile error of undefined reference to "__udivsi3"

Guest #1171952
Rate this post
• ▲ useful
▼ not useful
Martin Thomas wrote:
> Min Ge wrote:
>> The compile error is undefined reference to "__udivsi3".
>
> Do the linker-parameters include -lgcc?
>
>
> Martin Thomas

hi, I have the same problem. Please tell me where I add the option
-lgcc.


this is my console output :

make -k all
..linking
arm-elf-ld -v -Map main.map -Tlpc2214-rom.ld -o main.out boot.o system.o
rs232.o blink.o main.o
rs232.o: In function `UART0Init':
/cygdrive/c/temp/workspace/serial/rs232.c:9: undefined reference to
`__udivsi3'
rs232.o: In function `UART1Init':
/cygdrive/c/temp/workspace/serial/rs232.c:57: undefined reference to
`__udivsi3'
GNU ld version 2.17
make: *** [main.out] Error 1
make: Target `all' not remade because of errors.


I'm waiting for your answer thanks
Guest #1171953
Rate this post
• ▲ useful
▼ not useful
ayman wrote:
> hi, I have the same problem. Please tell me where I add the option
> -lgcc.

In Makefile look for the section with LDFLAGS and add (append) the -lgcc
flag to the flags already defined e.g. with

LDFLAGS += -lgcc

Greetings
Stefan
Guest #1171954
Rate this post
• ▲ useful
▼ not useful
> arm-elf-ld -v -Map main.map -Tlpc2214-rom.ld -o main.out boot.o system.o

It's easier to use the compiler-frontend (arm-elf-gcc) for linking since
this will "adjust" the search path for needed libgcc.a "automatically".
See for example the makefile that come with the WinARM Examples in the
package or on my web-site.

Martin Thomas
(Company: MOSCHIP) #3589149
Rate this post
• ▲ useful
▼ not useful
Hi Stefan,

I am directly using the below command for arc cross compilation, it is 
giving below error, how can i rectify this error.

anish@MOSDROID:~/arc/arc_basic/arc$ arc-elf32-ld -T u-boot.lds boot.o 
serial_pl01x.o hello.o -L 
/firma/anish/arc/usr/local/arc/lib/gcc/arc-elf32/3.4.5/libgcc.a -Map 
boot.map -o uboot
serial_pl01x.o(.text+0x38): In function `serial_init':
: undefined reference to `__udivsi3'
arc-elf32-ld: Error: Overflow detected in relocation value for symbol 
"__udivsi3".
Relocation value should be between 16777215 and -16777216 whereas it is 
-1562312800.
Relocation type is:R_ARC_S25W_PCREL
FileName:serial_pl01x.o
Section Name:.text
Offset in Section:56
arc-elf32-ld: final link failed: Bad value

I even tried giving -lgcc, which is giving below error.
anish@MOSDROID:~/arc/arc_basic/arc$ arc-elf32-ld -T u-boot.lds boot.o 
serial_pl01x.o hello.o -lgcc -Map boot.map -o uboot
arc-elf32-ld: cannot find -lgcc
anish@MOSDROID:~/arc/arc_basic/arc$

Reply

Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.

Formatting
  • [c]C-Code[/c]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.