[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-gcc-list] unresolved symbol from libgcc.a,
Rolf Ebert <=