From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16689 invoked by alias); 4 Jun 2013 10:41:31 -0000 Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Received: (qmail 16656 invoked by uid 89); 4 Jun 2013 10:41:30 -0000 X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,SPF_PASS,TW_GD autolearn=ham version=3.3.1 Received: from mail-wg0-f49.google.com (HELO mail-wg0-f49.google.com) (74.125.82.49) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 04 Jun 2013 10:41:28 +0000 Received: by mail-wg0-f49.google.com with SMTP id y10so38540wgg.28 for ; Tue, 04 Jun 2013 03:41:26 -0700 (PDT) X-Received: by 10.194.158.34 with SMTP id wr2mr23146874wjb.57.1370342486007; Tue, 04 Jun 2013 03:41:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.194.178.229 with HTTP; Tue, 4 Jun 2013 03:41:05 -0700 (PDT) In-Reply-To: <515FFBD2.6060400@siva.com.mk> References: <515FFBD2.6060400@siva.com.mk> From: Davide Pippa Date: Tue, 04 Jun 2013 10:41:00 -0000 Message-ID: To: ilijak@siva.com.mk Cc: ecos-discuss@sourceware.org Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [ECOS] GCC toolchain with HW floating-point enabled X-SW-Source: 2013-06/txt/msg00007.txt.bz2 Hi! I tried to update ecos to latest cvs and rebuilding the whole rom, but I still have that problem. I was already using the GCC test release that you pointed me. What it seems to me is that I'm linking to the wrong version of libgcc anyway (a version not supporting hardware floating point), as the problems arise in libgcc (linking log points to bpapi, _divdi3, _udivdi3 functions): /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/../../../../arm-eabi/bin/ld: error: demo1.elf uses VFP register arguments, /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/libgcc.a(bpabi.o) does not makefile:59: recipe for target `demo1.elf' failed /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/../../../../arm-eabi/bin/ld: failed to merge target specific data of file /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/libgcc.a(bpabi.o) /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/../../../../arm-eabi/bin/ld: error: demo1.elf uses VFP register arguments, /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/libgcc.a(_divdi3.o) does not /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/../../../../arm-eabi/bin/ld: failed to merge target specific data of file /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/libgcc.a(_divdi3.o) /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/../../../../arm-eabi/bin/ld: error: demo1.elf uses VFP register arguments, /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/libgcc.a(_udivdi3.o) does not /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/../../../../arm-eabi/bin/ld: failed to merge target specific data of file /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-eabi= /4.6.3/libgcc.a(_udivdi3.o) demo1.elf only contains an object of mine (main.o), which is compiled with hardware floating point, as flags indicate: arm-eabi-g++ -I"H:/Works/Arm/PyIde/roms/04001_TWR-K70F120M/include" -O0 -Wall -Wa,-adhlns=3D"main.o.lst" -fno-exceptions -fno-rtti -c -fmessage-length=3D0 -MMD -MP -MF"main.d" -MT"main.d" -mcpu=3Dcortex-m4 -mthumb -mfloat-abi=3Dhard -mfpu=3Dvfpv4-d16 -g3 -gdwarf-2 -o "main.o" "../main.cpp" I've seen there is many libgcc versions in the toolchain directory (gnuttols/arm-eabi/lib/gcc/), which should I pick? Is there some compiler flags to indicate which version to pick, or should I just copy files over the version that currently is being linked? Thanks! Davide 2013/4/6 Ilija Kocho : > Hi David. > > We have a GCC (test) release with FPU support for Cortex-M4F in eCos > gnutools. You shall find information for download and installation here. > http://ecos.sourceware.org/ml/ecos-discuss/2012-06/msg00047.html > > As this is still test release, your feedback will be appreciated. > > Ilija > > On 06.04.2013 12:23, Davide Pippa wrote: >> Hi! >> >> I've recently updated my ecos CVS, and made a new rom using the new hw >> floating point support (I'm compiling for TWR-K70F120M). The rom >> builds fine, but the application I used to work with complains during >> compilation: >> >> make all >> Building file: ../main.cpp >> Invoking: ARM devkitPro Windows GCC C++ Compiler >> arm-eabi-g++ -I"H:/Works/Arm/PyIde/roms/01009_TWR-K70F120M/include" >> -O0 -Wall -Wa,-adhlns=3D"main.o.lst" -fno-exceptions -fno-rtti -c >> -fmessage-length=3D0 -MMD -MP -MF"main.d" -MT"main.d" -mcpu=3Dcortex-m4 >> -mthumb -mfloat-abi=3Dhard -mfpu=3Dvfpv4-d16 -g3 -gdwarf-2 -o "main.o" >> "../main.cpp" >> ../main.cpp: In function =E2=80=98void cyg_user_start()=E2=80=99: >> ../main.cpp:33:30: warning: deprecated conversion from string constant >> to =E2=80=98char*=E2=80=99 [-Wwrite-strings] >> ../main.cpp: In function =E2=80=98void main_thread_entry(cyg_addrword_t)= =E2=80=99: >> ../main.cpp:80:87: warning: deprecated conversion from string constant >> to =E2=80=98char*=E2=80=99 [-Wwrite-strings] >> ../main.cpp: In function =E2=80=98void udpecho_thread_entry(void*)=E2=80= =99: >> ../main.cpp:107:20: warning: unused variable =E2=80=98port=E2=80=99 [-Wu= nused-variable] >> ../main.cpp:110:9: warning: variable =E2=80=98j=E2=80=99 set but not used >> [-Wunused-but-set-variable] >> Finished building: ../main.cpp >> >> Building target: demo1.elf >> Invoking: ARM devkitPro Windows GCC C++ Linker >> arm-eabi-g++ -T"target.ld" -nostdlib >> -LH:/Works/Arm/PyIde/roms/01009_TWR-K70F120M/lib -Wl,-Map,demo1.map >> -mcpu=3Dcortex-m4 -mthumb -mfloat-abi=3Dhard -mfpu=3Dvfpv4-d16 -g3 -gdwa= rf-2 >> -o "demo1.elf" ./main.o >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/../../../../arm-eabi/bin/ld: >> error: demo1.elf uses VFP register arguments, >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/libgcc.a(bpabi.o) >> does not >> makefile:59: recipe for target `demo1.elf' failed >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/../../../../arm-eabi/bin/ld: >> failed to merge target specific data of file >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/libgcc.a(bpabi.o) >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/../../../../arm-eabi/bin/ld: >> error: demo1.elf uses VFP register arguments, >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/libgcc.a(_divdi3.o) >> does not >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/../../../../arm-eabi/bin/ld: >> failed to merge target specific data of file >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/libgcc.a(_divdi3.o) >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/../../../../arm-eabi/bin/ld: >> error: demo1.elf uses VFP register arguments, >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/libgcc.a(_udivdi3.o) >> does not >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/../../../../arm-eabi/bin/ld: >> failed to merge target specific data of file >> /cygdrive/h/Works/Arm/PyIde/tools/gnutools/arm-eabi/bin/../lib/gcc/arm-e= abi/4.6.3/libgcc.a(_udivdi3.o) >> collect2: ld returned 1 exit status >> make: *** [demo1.elf] Error 1 >> >> The application is built with HW fpu enabled, but it seems that >> libgcc.a is not floating-point aware (sort-of?)... is there any new >> release of the 4.6.3 gcc toolchain built with floating point support? >> Or is there any guide to rebuild the 4.6.3 gcc toolchain myself? >> >> Thanks! >> >> Pyper. >> > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss