avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] Unable to link using libm.a and libc.a


From: Sean
Subject: [avr-gcc-list] Unable to link using libm.a and libc.a
Date: Sat, 13 Apr 2013 15:19:21 +0930

I’ve been attempting to compile and link an Ada programme for the Arduino.

I have managed to get a simple programme compiled linked and running on an AtMega328p board.

 

But when I start to use some of the more complex functions I obviously had to start using avrlibc.

 

I’ve down loaded and built avrlibc and I have then attempted to link my programme.

 

But no matter how I try to tell the compiler/linker to use libc or libm I keep getting link issues:

 

avr-gnatbind --RTS=C:\GNAT\2012\lib\gcc\avr\4.5.4\rts-zfp -nostdlib -I- -x C:\Arduino\Arduino_Ada\BMP085\obj\main.ali

avr-gnatlink C:\Arduino\Arduino_Ada\BMP085\obj\main.ali C:\Arduino\Arduino_Ada\BMP085\\obj\crtm328p._o -nostdlib -lgcc -lc -lm -mavr5 -Tdata=0x00800200 -mmcu=avr5 -g -nostdlib C:\avr-ada-1.2.0_bin\avr\onewire\lib\libonewire.a C:\avr-ada-1.2.0_bin\avr\debug\lib\libdebug.a C:\avr-ada-1.2.0_bin\avr\crc

\lib\libcrc.a C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a -o C:\Arduino\Arduino_Ada\BMP085\main.elf

C:\avr-ada-1.2.0_bin\avr\onewire\lib\libonewire.a(one_wire-search.o): In function `one_wire__search__verify':

C:\avr-ada-1.2.0_bin\avr\onewire/one_wire-search.adb:238: undefined reference to `memcmp'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-int_img.o): In function `avr__int_img__u8_img_c':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-int_img.adb:82: undefined reference to `itoa'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-int_img.o): In function `avr__int_img__u8_img_right':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-int_img.adb:98: undefined reference to `__udivmodqi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-int_img.adb:105: undefined reference to `__udivmodqi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-int_img.adb:110: undefined reference to `__udivmodqi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-int_img.o): In function `avr__int_img__u8_img_99_right':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-int_img.adb:119: undefined reference to `__udivmodqi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-int_img.o): In function `avr__int_img__u16_div_10':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-int_img.adb:28: undefined reference to `__udivmodhi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__julian_day':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:86: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:89: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:91: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:91: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:87: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:90: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:90: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__julian_date':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:106: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:106: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:106: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:107: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:107: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:107: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:108: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:108: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:108: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:109: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__hour':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:163: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:163: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__minute':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:170: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:170: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:170: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o):C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:182: more undefined references to `__divmodsi4' follow

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__sub_second':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:183: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__second':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:176: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:176: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__seconds_of':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:220: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:220: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:220: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__split':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:243: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:244: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:246: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:248: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__day_of_week':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:127: undefined reference to `__divmodsi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__seconds_of':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:220: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:220: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:220: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__time_of':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:306: undefined reference to `__divmodqi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__microseconds':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:417: undefined reference to `__divmodhi4'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__seconds__2':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:429: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__minutes':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:435: undefined reference to `__mulsi3'

C:\avr-ada-1.2.0_bin\avr\avr_lib\atmega328p\lib\libavrada.a(avr-real_time.o): In function `avr__real_time__hours':

C:\avr-ada-1.2.0_bin\avr\avr_lib/avr-real_time.adb:441: undefined reference to `__mulsi3'

collect2: ld returned 1 exit status

avr-gnatlink: error when calling C:\GNAT\2012\bin\avr-gcc.exe

avr-gnatmake: *** link failed.

make: *** [avr_all] Error 4

 

C:\Arduino\Arduino_Ada\BMP085>

C:\Arduino\Arduino_Ada\BMP085>

 

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]