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

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

[avr-gcc-list] unresolved symbol from libgcc.a


From: Rolf Ebert
Subject: [avr-gcc-list] unresolved symbol from libgcc.a
Date: Sun, 09 Nov 2008 00:14:15 +0100
User-agent: Thunderbird 2.0.0.17 (Windows/20080914)

After cleaning up my project and separating some routines into libraries I now get an unresolved symbol when linking.

The output from the final command (with lots of -v) is:

C:\Programme\msys_1.0\mingw\avr_43\bin\avr-gcc.exe b~main.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\bf_cnt.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\counters.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\crc8.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\dataflash.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\dataflash-cfg.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\dataflash-output.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\lcd_driver_direct.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\edit_df.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\edit_clock.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\button.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\menu_description.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-avr_wiring.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-commands.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-rom.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-search.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-temperature_sensors.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\sensors-data.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\edit_values.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\setup_clock.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\structure.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\main.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\temperatures.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\bf_volt_temp.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\sensors.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\measurements.o -Wl,--gc-sections -gdwarf-2 -Wl,--relax -v -Wl,-Map=main.map,--cref --RTS=rts/atmega169 -LK:\Data\Development\AVR-Ada\apps\Butterfly\logger1\owlib -lonewire -LK:\Data\Development\AVR-Ada\apps\Butterfly\logger1\slib -lsht -Lk:\Data\Development\AVR-Ada\util\debug\lib -ldebug -Lk:\Data\Development\AVR-Ada\avr\atmega169\lib -lavrada -o K:\Data\Development\AVR-Ada\apps\Butterfly\logger1\main.elf -Lk:\data\development\avr-ada\apps\butterfly\logger1\obj\ -Lk:\data\development\avr-ada\avr\atmega169\lib\ -Lk:\data\development\avr-ada\util\debug\lib\ -Lk:\data\development\avr-ada\apps\butterfly\logger1\owlib\ -Lk:\data\development\avr-ada\util\onewire\gobj\ -Lk:\data\development\avr-ada\apps\butterfly\logger1\slib\ -Lk:\data\development\avr-ada\util\sensirion\obj\ -LC:/Programme/msys_1.0/mingw/avr_43/lib/gcc/avr/4.3.2/rts/atmega169\adalib\ C:/Programme/msys_1.0/mingw/avr_43/lib/gcc/avr/4.3.2/rts/atmega169\adalib\libgnat.a -static-libgcc -Os -mmcu=atmega169 --RTS=rts/atmega169 -fdata-sections -ffunction-sections
Using built-in specs.
Target: avr
Configured with: ../gcc-4.3.2/configure --prefix=/mingw/avr_43 --target=avr --enable-languages=ada,c --with-dwarf2 --disable-nls --disable-libssp --disable-libada --with-gmp=/mingw --with-bugurl=http://avr-ada.sourceforge.net
Thread model: single
gcc version 4.3.2 (GCC)
COMPILER_PATH=c:/programme/msys_1.0/mingw/avr_43/bin/../libexec/gcc/avr/4.3.2/;c:/programme/msys_1.0/mingw/avr_43/bin/../libexec/gcc/;c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/
LIBRARY_PATH=c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/avr5/;c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/;c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/;c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/;c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/
COLLECT_GCC_OPTIONS='-gdwarf-2' '-v' '-fRTS=rts/atmega169' '-LK:\Data\Development\AVR-Ada\apps\Butterfly\logger1\owlib' '-LK:\Data\Development\AVR-Ada\apps\Butterfly\logger1\slib' '-Lk:\Data\Development\AVR-Ada\util\debug\lib' '-Lk:\Data\Development\AVR-Ada\avr\atmega169\lib' '-o' 'K:\Data\Development\AVR-Ada\apps\Butterfly\logger1\main.elf' '-Lk:\data\development\avr-ada\apps\butterfly\logger1\obj\' '-Lk:\data\development\avr-ada\avr\atmega169\lib\' '-Lk:\data\development\avr-ada\util\debug\lib\' '-Lk:\data\development\avr-ada\apps\butterfly\logger1\owlib\' '-Lk:\data\development\avr-ada\util\onewire\gobj\' '-Lk:\data\development\avr-ada\apps\butterfly\logger1\slib\' '-Lk:\data\development\avr-ada\util\sensirion\obj\' '-LC:/Programme/msys_1.0/mingw/avr_43/lib/gcc/avr/4.3.2/rts/atmega169\adalib\' '-static-libgcc' '-Os' '-mmcu=atmega169' '-fRTS=rts/atmega169' '-fdata-sections' '-ffunction-sections'

c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe -m avr5 -Tdata 0x800100 -o K:\Data\Development\AVR-Ada\apps\Butterfly\logger1\main.elf c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5/crtm169.o -LK:\Data\Development\AVR-Ada\apps\Butterfly\logger1\owlib -LK:\Data\Development\AVR-Ada\apps\Butterfly\logger1\slib -Lk:\Data\Development\AVR-Ada\util\debug\lib -Lk:\Data\Development\AVR-Ada\avr\atmega169\lib -Lk:\data\development\avr-ada\apps\butterfly\logger1\obj\ -Lk:\data\development\avr-ada\avr\atmega169\lib\ -Lk:\data\development\avr-ada\util\debug\lib\ -Lk:\data\development\avr-ada\apps\butterfly\logger1\owlib\ -Lk:\data\development\avr-ada\util\onewire\gobj\ -Lk:\data\development\avr-ada\apps\butterfly\logger1\slib\ -Lk:\data\development\avr-ada\util\sensirion\obj\ -LC:/Programme/msys_1.0/mingw/avr_43/lib/gcc/avr/4.3.2/rts/atmega169\adalib\ -Lc:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/avr5 -Lc:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr5 -Lc:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2 -Lc:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc -Lc:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib b~main.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\bf_cnt.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\counters.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\crc8.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\dataflash.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\dataflash-cfg.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\dataflash-output.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\lcd_driver_direct.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\edit_df.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\edit_clock.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\button.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\menu_description.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-avr_wiring.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-commands.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-rom.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-search.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\one_wire-temperature_sensors.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\sensors-data.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\edit_values.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\setup_clock.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\structure.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\main.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\temperatures.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\bf_volt_temp.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\sensors.o k:\data\development\avr-ada\apps\butterfly\logger1\obj\measurements.o --gc-sections --relax -Map=main.map --cref -lonewire -lsht -ldebug -lavrada C:/Programme/msys_1.0/mingw/avr_43/lib/gcc/avr/4.3.2/rts/atmega169\adalib\libgnat.a -lgcc -lc -lgcc K:\Data\Development\AVR-Ada\apps\Butterfly\logger1\slib\libsht.a(sht-calc.o): In function `sht__calc__raw_to_humidity':
sht-calc.adb:(.text+0x5e): undefined reference to `__mulhi3'
sht-calc.adb:(.text+0x7c): undefined reference to `__mulhi3'
avr-gnatlink: error when calling C:\Programme\msys_1.0\mingw\avr_43\bin\avr-gcc.exe
avr-gnatmake: *** link failed.
make: *** [main.elf] Error 4


As far as I can see the option -lgcc is the last object to link on the resulting command line. And of course libgcc contains the required symbol:

$ avr-gcc -print-libgcc-file-name
c:/programme/msys_1.0/mingw/avr_43/bin/../lib/gcc/avr/4.3.2/libgcc.a
$ avr-nm `avr-gcc -print-libgcc-file-name` | grep mulhi
_mulhi3.o:
00000000 T __mulhi3
0000001e t __mulhi3_exit
00000004 t __mulhi3_loop
0000000c t __mulhi3_skip1

I admit that it is an unusual environment that I am programming in: a self built compiler and Ada as programming language on Windows XP. I don't think that the problem I face has anything to do with my setup, though. It is a linker problem, not a compiler problem.

Thanks for any pointer

   Rolf




reply via email to

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