GNUARM multiple definition of AT91F_AIC_ConfigureIt

Look, I'm having a real battle with GNUARM. I just can not get rid of all of these multiple definition include problems between device.c and board.c, both of which Atmel wrote.

-------- begin (mode: ROM_RUN) -------- arm-elf-gcc (GCC) 4.2.0 Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Assembling (ARM-only): startup.S arm-elf-gcc -c -mcpu=arm7tdmi -I. -x assembler-with-cpp -Ilib/ AT91SAM7S256 -DROM_RUN -DAT91SAM7S256 -Wa,-adhlns=st artup.lst,--gdwarf-2 startup.S -o startup.o

Compiling C: main.c arm-elf-gcc -c -mcpu=arm7tdmi -I. -gdwarf-2 -DROM_RUN -DAT91SAM7S256

-DAT91SAM7SEK -Ilib/AT91SAM7S256 -Os -Wall - Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls - Wreturn-type -Wshadow -Wunused -Wa,-adhlns=main .lst -MD -MP -MF .dep/main.o.d -Wnested-externs -std=gnu89 main.c - o main.o

Compiling C: core/device.c arm-elf-gcc -c -mcpu=arm7tdmi -I. -gdwarf-2 -DROM_RUN -DAT91SAM7S256

-DAT91SAM7SEK -Ilib/AT91SAM7S256 -Os -Wall - Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls - Wreturn-type -Wshadow -Wunused -Wa,-adhlns=core /device.lst -MD -MP -MF .dep/device.o.d -Wnested-externs -std=gnu89 core/device.c -o core/device.o

Compiling C: core/board.c arm-elf-gcc -c -mcpu=arm7tdmi -I. -gdwarf-2 -DROM_RUN -DAT91SAM7S256

-DAT91SAM7SEK -Ilib/AT91SAM7S256 -Os -Wall - Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls - Wreturn-type -Wshadow -Wunused -Wa,-adhlns=core /board.lst -MD -MP -MF .dep/board.o.d -Wnested-externs -std=gnu89 core/board.c -o core/board.o

Linking: main.elf arm-elf-gcc -mcpu=arm7tdmi -I. -gdwarf-2 -DROM_RUN -DAT91SAM7S256 - DAT91SAM7SEK -Ilib/AT91SAM7S256 -Os -Wall -Wca st-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls - Wreturn-type -Wshadow -Wunused -Wa,-adhlns=startup .lst -MD -MP -MF .dep/main.elf.d startup.o main.o core/device.o core/board.o --output main.elf -nostartfile s -Wl,-Map=main.map,--cref -lc -lm -lc -lgcc -Llib/AT91SAM7S256 - Tld/AT91SAM7S256/AT91SAM7S256-ROM.ld core/device.o: In function `AT91F_AIC_ConfigureIt': lib/AT91SAM7S256/lib_AT91SAM7S256.h:64: multiple definition of `AT91F_AIC_ConfigureIt'

My map file with the cross reference table looks like this:

Cross Reference Table

Symbol File AT91F_ADC_CfgModeReg core/board.o core/device.o main.o AT91F_ADC_CfgPIO core/board.o core/device.o main.o AT91F_ADC_CfgPMC core/board.o core/device.o main.o .... etc. ....

All of those functions are defined as "inline". The original make file used -std=gnu99 (came from WinARM) which in my reading kind of rules out the inlines, so I reverted the flag to -std=gnu89, everything as you can see compiles but the dam thing just won't link.

DC

Reply to
GDan
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.