I am sorry, I am a newbie in GCC and ARM. I am trying to use LPC17xx series of CPU and I am using the latest Yagarto build 4.4.1. I search the internet and in this forum, and I don't seem to be able to solve problem. I have read a few comment from Clifford Slocombe about this subjects, and I have followed his suggestion, I still can't fixed my problem. I am writing a program that need floating point maths. So I have included libgcc in my build. I keep on receiving the following Error message from the linker,"libgcc.a uses VFP whereas xxx.elf does not". Clifford Slocombe said that in default GCC compile the code with -mhard-float. Yet when I compile the code without -msoft-float , I still receive the above message. If I compile with -mHard-float, I get hard-float conflict with specified fpu. My question is do I have to rebuild libgcc.a ? Clifford Slocombe seem to suggest it is not necessary. If I need to build libgcc.a, how do I do it ? I have installed minGW and MSYS but I don't know how to use it with Yagarto. Thank you in advance. Best Regards to all Tony
Tony Whitehall wrote: > I am writing a program that need floating point maths. So I have > included libgcc in my build. I suggest to "include" libm too (option -lm) >I keep on receiving the following Error > message from the linker,"libgcc.a uses VFP whereas xxx.elf does not". Verify that the target-options are also given for linking (-mthumb -mcpu-cortex-m3), don't call the linker (*-ld) directly but use compiler-frontend (*-gcc). > Clifford Slocombe said that in default GCC compile the code with > -mhard-float. Yet when I compile the code without -msoft-float , I still > receive the above message. If I compile with -mHard-float, I get > hard-float conflict with specified fpu. Should not be needed for your target. > My question is do I have to rebuild libgcc.a ? Clifford Slocombe seem to > suggest it is not necessary. I don't think so. > If I need to build libgcc.a, how do I do it ? I have installed minGW and > MSYS but I don't know how to use it with Yagarto. AFAIK Michael Fischer provides buildscripts. Cygwin might be a better environment to build a toolchain. With the -nocygwin compiler-option binaries can be generated which can work without cygwin-DLLs on any MS-Windows system. But I expect building/updating the toolchain is not needed.
Hi Martin, Thank you for your response. >> I am writing a program that need floating point maths. So I have >> included libgcc in my build. >I suggest to "include" libm too (option -lm) I am Sorry I didn't mention that I also include libc and Libm. >>I keep on receiving the following Error >> message from the linker,"libgcc.a uses VFP whereas xxx.elf does not". >Verify that the target-options are also given for linking (-mthumb >-mcpu-cortex-m3), don't call the linker (*-ld) directly but use >compiler-frontend (*-gcc). I am using LD = $(GNUTOOLS)/arm-elf-gcc, I believe that is using the compiler front. After your response I include -mthumb and mcpu-cortex-m3 as part of the linking option. Unfortunately, it make no difference. It seem my best solution is to avoid using int64_t variables or make use my own int64_t divide and mod , as the compiler uses link in libgcc for these functions. Is this correct ? >> Clifford Slocombe said that in default GCC compile the code with >> -mhard-float. Yet when I compile the code without -msoft-float , I still >> receive the above message. If I compile with -mHard-float, I get >> hard-float conflict with specified fpu. >Should not be needed for your target. >> My question is do I have to rebuild libgcc.a ? Clifford Slocombe seem to >> suggest it is not necessary. >I don't think so. >> If I need to build libgcc.a, how do I do it ? I have installed minGW and >> MSYS but I don't know how to use it with Yagarto. >AFAIK Michael Fischer provides buildscripts. Cygwin might be a better >environment to build a toolchain. With the -nocygwin compiler-option >binaries can be generated which can work without cygwin-DLLs on any >MS-Windows system. But I expect building/updating the toolchain is not >needed. I have no experience in using cygwin. I am chicken out, so for the moment I will try to avoid using libgcc or implement 64 bits divide and mod. Best Regards Tony
Guest
#1445155
Hi Toni, I'm using yagarto too. I compile my program with options: -mfpu=vfp -msoft-float You should set the optimizing level to 0. (With level s I had no floating point support: Beitrag "Yagarto printf und float funktioniert nicht richtig" ) Best Regards Tom
Hi Tom, You response hit the nail right on the head. The only option I didn't try was -mfpu=vfp. When I compiled with -mfpu=vfp, I can now link with libgcc.a Thank you, Tom and Martin for your help. Best Regard, Tony
Hallo, I'm having the same problem. Up to now I used a custom build gcc toolchain, but maintaining it is too much an efford, so I decided to switch to Yagarto. My Makefile looks like this:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
As you can see, I tried -mfpu=vfp -msoft-float, but it did not work for me. Maybe there is still something wrong. Current Yagartos arm-elf-gcc was build without the configure option "-with-float=soft", maybe that has something to do with it. Is there anybody, who uses Yagarto for Cortex-M3 an can provide me his Makefile? Any other suggestions? Kind regards, Oliver.
Reply
Please log in before posting.