This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
--target=v850-unknown-elf, linker problem
- From: Torsten Mohr <tmohr at s dot netic dot de>
- To: binutils at sources dot redhat dot com
- Date: Sun, 14 Aug 2005 22:55:40 +0200
- Subject: --target=v850-unknown-elf, linker problem
Hi,
i configured and installed a toolchain for a NEC V850
as described in detail at the end of this mail.
When i link a function marked as __attribute__((interrupt))
somewhere in the sources, i get an error:
void irq_nmi(void) __attribute__((signal));
void __attribute__((signal)) irq_nmi(void) {
// just empty
}
int main(int argc, char** argv) {
return 0;
}
v850-unknown-elf-gcc -mv850e -o main.o -c main.c
v850-unknown-elf-gcc -mv850e -o hw2.elf \
main.o
/opt/v850-unknown-elf/lib/gcc/v850-unknown-elf/3.4.4/v850e/libgcc.a \
(_callt_save_interrupt.o): In function `__callt_return_interrupt':
../../gcc-3.4.4/gcc/config/v850/lib1funcs.asm:(.call_table_data+0x2): \
relocation truncated to fit: R_V850_CALLT_16_16_OFFSET against `.text'
collect2: ld gab 1 als Ende-Status zurück
When i don't use -mv850e, but use -mv850, all works fine.
v850-unknown-elf-nm says about the -mv850e compiled object file:
tmohr@schleim:~/p/v850/hw2> v850-unknown-elf-nm main.o
U __callt_return_interrupt
U __callt_save_interrupt
00000000 T _irq_nmi
0000002c T _main
For the -mv850 i get:
tmohr@schleim:~/p/v850/hw2> v850-unknown-elf-nm main.o
U __ep
U __gp
00000000 T _irq_nmi
0000004a T _main
Is this a linker script problem? I think the undefined symbols
are set / should be set in a linker script.
Can anybody tell me how i can use interrupt functions on
a V850E?
Best regards,
Torsten.
# Set up the tool chain:
in /rest/tmp/bbin:
../binutils-2.16/configure --target=v850-unknown-elf \
--prefix=/opt/v850-unknown-elf
make
make install
Patch gcc-3.4.4: gcc/gcc/config/v850/t-v850:
Remove -mwarn-[un]signed-overflow from TCFLAGS
in /rest/tmp/bgcc:
../gcc-3.4.4/configure --target=v850-unknown-elf \
--prefix=/opt/v850-unknown-elf \
--enable-languages="c"
make
make install
in /rest/tmp/bnl:
../newlib-1.13.0/configure --target=v850-unknown-elf \
--prefix=/opt/v850-unknown-elf
make
make install
gcc-4.0.1 and gcc-4.1-20050806 did not compile clean.