EmbDev.net

Forum: ARM programming with GCC/GNU tools LD error message


von Dan (Guest)


Rate this post
useful
not useful
Hello,

I installed the newest yagarto. Downloaded the AT91bootstrap v1.14 from 
the Atmel site: 
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4093

CD to C:\Bootstrap-v1.14\board\at91sam9g20\nandflash
make

I get the following error:
c:/yagarto/bin/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/bin/ld.exe: 
section
.eh_frame [00200e64 -> 002010db] overlaps section .data [00200e64 -> 
00200f27]
collect2: ld returned 1 exit status
make: *** [nandflash_at91sam9g20ek] Error 1

What did I do wrong? How can I fix this?

Thank you,
Dan

von Clifford S. (clifford)


Rate this post
useful
not useful
You have omitted the part of the log that shows the linker invocation, 
which would have been useful.

Are you sure that the linker script is correct for your target. You 
appear to have two sections at the same location.

I believe that the eh_frame is related to C++ exception handling, but 
are you using C++? Even if you are, are you using exception handling? If 
not use the -fno-exceptions compiler option.

von Tom Swiedler (Guest)


Rate this post
useful
not useful
If you are using a linker script (and you should be) you need to add a 
section for the exception handlers. This can be in uninitialized RAM 
memory.

  . = ALIGN(4);
  .eh_frame :
  {
       KEEP (*(.eh_frame))
  } > ram


In the MEMORY section you should have a definition for the "ram" area 
similar to the following:

  ram  : ORIGIN = 0x40000200, LENGTH = 32513

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.