From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7981 invoked by alias); 4 Jun 2013 11:24:20 -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 7971 invoked by uid 89); 4 Jun 2013 11:24:19 -0000 X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_DNSWL_NONE,RCVD_IN_HOSTKARMA_YE,SPF_NEUTRAL,TW_GD autolearn=no version=3.3.1 Received: from gateway16.websitewelcome.com (HELO gateway16.websitewelcome.com) (67.18.44.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 04 Jun 2013 11:24:18 +0000 Received: by gateway16.websitewelcome.com (Postfix, from userid 5007) id 2A6BA3F134D23; Tue, 4 Jun 2013 06:23:53 -0500 (CDT) Received: from ham03.websitewelcome.com (ham.websitewelcome.com [173.192.100.229]) by gateway16.websitewelcome.com (Postfix) with ESMTP id 0C5EC3F134C93 for ; Tue, 4 Jun 2013 06:23:53 -0500 (CDT) Received: by ham03.websitewelcome.com (Postfix, from userid 666) id EC44E4E48F70F; Tue, 4 Jun 2013 06:21:48 -0500 (CDT) X-Spam-Flag2999: NO X-Spam-Level2999: X-Spam-Status2999: "No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 Received: from montecarlo.websitewelcome.com (montecarlo.websitewelcome.com [174.120.9.66]) by ham03.websitewelcome.com (Postfix) with ESMTP id 53AB64E3E8EEE for ; Tue, 4 Jun 2013 06:12:51 -0500 (CDT) Received: from [195.189.206.101] (port=55032 helo=[192.168.209.11]) by montecarlo.websitewelcome.com with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (Exim 4.80) (envelope-from ) id 1UjpAY-0000jw-WC; Tue, 04 Jun 2013 06:12:51 -0500 Message-ID: <51ADCBB1.1060808@siva.com.mk> Date: Tue, 04 Jun 2013 11:24:00 -0000 From: Ilija Kocho User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 MIME-Version: 1.0 To: Davide Pippa CC: ecos-discuss@sourceware.org References: <515FFBD2.6060400@siva.com.mk> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BWhitelist: no X-Source-Sender: ([192.168.209.11]) [195.189.206.101]:55032 X-Source-Auth: ilijak+siva.mk X-Email-Count: 1 X-Source-Cap: c2l2YW1rO2JpYmltYW47bW9udGVjYXJsby53ZWJzaXRld2VsY29tZS5jb20= Subject: Re: [ECOS] GCC toolchain with HW floating-point enabled X-SW-Source: 2013-06/txt/msg00008.txt.bz2 Hi Davide Probably you have some files compiled with -mfloat-abi-soft and some with -mfloat-abi=hard. They are not compatible. Try to compile all files with same floating point flags. Ilija On 04.06.2013 12:41, Davide Pippa wrote: > 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="main.o.lst" -fno-exceptions -fno-rtti -c > -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -mcpu=cortex-m4 > -mthumb -mfloat-abi=hard -mfpu=vfpv4-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="main.o.lst" -fno-exceptions -fno-rtti -c >>> -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -mcpu=cortex-m4 >>> -mthumb -mfloat-abi=hard -mfpu=vfpv4-d16 -g3 -gdwarf-2 -o "main.o" >>> "../main.cpp" >>> ../main.cpp: In function ‘void cyg_user_start()’: >>> ../main.cpp:33:30: warning: deprecated conversion from string constant >>> to ‘char*’ [-Wwrite-strings] >>> ../main.cpp: In function ‘void main_thread_entry(cyg_addrword_t)’: >>> ../main.cpp:80:87: warning: deprecated conversion from string constant >>> to ‘char*’ [-Wwrite-strings] >>> ../main.cpp: In function ‘void udpecho_thread_entry(void*)’: >>> ../main.cpp:107:20: warning: unused variable ‘port’ [-Wunused-variable] >>> ../main.cpp:110:9: warning: variable ‘j’ 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=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=vfpv4-d16 -g3 -gdwarf-2 >>> -o "demo1.elf" ./main.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(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) >>> 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