gcc4.4.1 related doubt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jie,


Thanks for your response.

I have downloaded cross toolchain from codesourcercy site.(Download
Sourcery G++ Lite 2009q3-67 )

http://www.codesourcery.com/sgpp/lite/arm/portal/subscription3057

arm-2009q3/bin/arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with:
/scratch/julian/2009q3-respin-linux-lite/src/gcc-4.4/configure
--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu
--target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap
--disable-libssp --disable-libstdcxx-pch
--enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as
--with-gnu-ld --with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}
%{O2:%{!fno-remove-local-statics: -fremove-local-statics}}
%{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics:
-fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared
--disable-lto --enable-symvers=gnu --enable-__cxa_atexit
--with-pkgversion='Sourcery G++ Lite 2009q3-67'
--with-bugurl=https://support.codesourcery.com/GNUToolchain/
--disable-nls --prefix=/opt/codesourcery
--with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc
--with-build-sysroot=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/libc
--with-gmp=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr
--with-mpfr=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr
--with-ppl=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr
--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic
-lm' --with-cloog=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr
--disable-libgomp --enable-poison-system-directories
--with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin
--with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)


I have Build 2.6.30 kernel for ARM
and i am attaching my System.map file for your reference.


also i am able to reproduce attached result when i build my attach
program using below options.

arm-linux-gnueabi-gcc -fno-optimize-sibling-calls -O2 test.c
I can see Function name  Convert to
0000842c t T.12


But If i give O0 Flag when Building then
0000834c t $d
00008470 t ABC
000084a8 t BCD


I want to Build my kernel with O2 flag. Will you please provide some
flag except 'O0' which disable this optimization.

I have not check o/p of binary with gdb. Is GDB will have any issue
with this type of optimization ?


On Fri, Mar 26, 2010 at 12:18 PM, Jie Zhang <jie@xxxxxxxxxxxxxxxx> wrote:
> On 03/26/2010 01:13 AM, Ian Lance Taylor wrote:
>> trisha yad<trisha1march@xxxxxxxxx>  writes:
>>
>>> I am attaching one sample program.
>>>
>>> 1. arm-linux-gnueabi-gcc -fno-optimize-sibling-calls -O0 test.c
>>> 2. arm-linux-gnueabi-gcc -fno-optimize-sibling-calls -O2 test.c
>>> arm-linux-gnueabi-nm of O0 is log1
>>> arm-linux-gnueabi-nm of O2 is log
>>>
>>>
>>> I am attaching o/p of command using option --save-temps i.e in file
>>> test.s
>>> arm-linux-gnueabi-gcc -fno-optimize-sibling-calls --save-temps -O2 test.c
>>
>> I don't understand how the .c file you showed can produce the .s file
>> that you showed.  In the .c file, main calls ABC.  In the .s file, it
>> does not.  I don't see how the optimizer could remove that call.
>>
> I cannot reproduce this issue from the attached source file either.
>
>> I do see the T.12 symbol in the assembler source.  However, I don't
>> know where it came from.  I don't see when I compile your C file with
>> a recent ARM gcc.
>>
> It might come from compiler instantiating a function, i.e. T.12 is a clone
> of a function but with some parameters instantiated. Just my guess.
>
>> Can you explain why the T.12 symbol is a problem?
>>
> I think it should not be a problem. T.12 is a local symbol, it can be
> stripped by strip with appropriate options.
>
>
> --
> Jie Zhang
> CodeSourcery
> (650) 331-3385 x735
>
>

Attachment: System.map.tgz
Description: GNU Zip compressed data


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux