Hans-Christian Egtvedt wrote:
> On Wed, 20 Aug 2008 14:59:37 +0200
> Hinko Kocevar <[EMAIL PROTECTED]> wrote:
> 
> <snipp executable size stuff with uClibc 0.9.27.
> 
>> 0.9.29
>> ------
>> $ /work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-gcc
>> hello.c -o _hello_cris_new_uclibc_dyn
> 
> What happens if you turn on size optimization? Tested with -Os, -O2,
> -O3, etc? I think this might be due to compiler settings.
> 

-rwxr-xr-x 1 hinkok hinkok    6104 Aug 20 15:28 _hello_cris_new_uclibc_dyn_O0
-rwxr-xr-x 1 hinkok hinkok    6104 Aug 20 15:28 _hello_cris_new_uclibc_dyn_O1
-rwxr-xr-x 1 hinkok hinkok    5966 Aug 20 15:28 _hello_cris_new_uclibc_dyn_O2
-rwxr-xr-x 1 hinkok hinkok    5966 Aug 20 15:28 _hello_cris_new_uclibc_dyn_O3
-rwxr-xr-x 1 hinkok hinkok    6092 Aug 20 15:28 _hello_cris_new_uclibc_dyn_Os
-rwxr-xr-x 1 hinkok hinkok    2196 Aug 20 15:28 _hello_cris_old_uclibc_dyn_O0
-rwxr-xr-x 1 hinkok hinkok    2196 Aug 20 15:28 _hello_cris_old_uclibc_dyn_O1
-rwxr-xr-x 1 hinkok hinkok    2164 Aug 20 15:28 _hello_cris_old_uclibc_dyn_O2
-rwxr-xr-x 1 hinkok hinkok    2164 Aug 20 15:28 _hello_cris_old_uclibc_dyn_O3
-rwxr-xr-x 1 hinkok hinkok    2164 Aug 20 15:28 _hello_cris_old_uclibc_dyn_Os

Its strange how old uClibc 'badly' optimizes _hello_cris_old_uclibc_dyn_xx - 
still 
the worst case for old uClibc is way better then best case for new uClibc!

>> $ ls -l
>> _hello_cris_new_uclibc_dyn -rwxr-xr-x 1 hinkok hinkok    6104 Aug 20
>> 14:52 _hello_cris_new_uclibc_dyn
>>
> 
> Just to compare with AVR32 + uClibc 0.9.29
> 
>  ~ > avr32-linux-gcc -O2 -Wall -o hello hello.c
>  ~ > avr32-linux-strip hello
>  ~ > ls -l hello
> -rwxr-xr-x 1 hcegtvedt ssg 2064 2008-08-20 15:15 hello*
> 

-O2 optimized binary:
-rwxr-xr-x 1 hinkok hinkok    5966 Aug 20 15:28 _hello_cris_new_uclibc_dyn_O2
-rwxr-xr-x 1 hinkok hinkok    2636 Aug 20 15:29 
_hello_cris_new_uclibc_dyn_O2.stripped

Here is my compiler configure line from uclibc buildroot:
                
PATH="/work/stage/buildroot/toolchain_build_cris/bin:/work/stage/buildroot/build_cris/staging_dir/bin:/work/stage/buildroot/build_cris/staging_dir/usr/bin:/home/hinkok/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.1.2:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2"
 AR="/usr/bin/ar" AS="/usr/bin/as" LD="/usr/bin/ld " NM="/usr/bin/nm" 
CC="/usr/bin/gcc " GCC="/usr/bin/gcc " CXX="/usr/bin/g++ " CPP="/usr/bin/cpp " 
AR_FOR_BUILD="/usr/bin/ar" AS_FOR_BUILD="/usr/bin/as" 
CC_FOR_BUILD="/usr/bin/gcc" GCC_FOR_BUILD="/usr/bin/gcc" 
CPP_FOR_BUILD="/usr/bin/cpp" CXX_FOR_BUILD="/usr/bin/g++" 
LD_FOR_BUILD="/usr/bin/ld" FC_FOR_BUILD="/usr/bin/ld" CFLAGS_FOR_BUILD="" 
CXXFLAGS_FOR_BUILD="" LDFLAGS_FOR_BUILD="" FCFLAGS_FOR_BUILD="" 
AR_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-ar"
 
AS_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-as"
 CC_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/
cris-linux-uclibc-gcc" 
CPP_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-cpp"
 
LD_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-ld"
 
NM_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-nm"
 
CXX_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-g++"
 
RANLIB_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-ranlib"
 
STRIP_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-strip"
 
OBJCOPY_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-objcopy"
 
OBJDUMP_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-objdump"
 
DEFAULT_ASSEMBLER="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-as"
 
DEFAULT_LINKER="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-ld"
 ORIGINAL_AS_FOR_TARGET="
/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-as" 
ORIGINAL_LD_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-ld"
 
ORIGINAL_NM_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-nm"
 
ORIGINAL_OBJDUMP_FOR_TARGET="/work/stage/buildroot/build_cris/staging_dir/usr/bin/cris-linux-uclibc-objdump"
 \
                /work/stage/buildroot/toolchain_build_cris/gcc-4.3.1/configure \
                --prefix=/usr \
                --build=i386-pc-linux-gnu \
                --host=i386-pc-linux-gnu \
                --target=cris-linux-uclibc \
                --enable-languages=c,c++ \
                --with-sysroot=/work/stage/buildroot/build_cris/staging_dir \
                
--with-build-time-tools=/work/stage/buildroot/build_cris/staging_dir/usr/cris-linux-uclibc/bin
 \
                --disable-__cxa_atexit \
                --enable-target-optspace \
                --with-gnu-ld \
                --enable-shared \
                --with-gmp=/work/stage/buildroot/toolchain_build_cris/gmp \
                --with-mpfr=/work/stage/buildroot/toolchain_build_cris/mpfr \
                --disable-nls \
                --enable-threads \
                --disable-multilib \
                 \
                   \
                 \
                 \
                  --disable-libssp --disable-libssp --disable-libmudflap 
--disable-libgomp \
                 \
        )

During gcc compilation I see -Os and -O2 (both) in some of the lines. You think 
by changing the 
optimization during cross compiler build would make sense? Maybe all gcc source 
compiled with -Os?

Thank you,
Hinko

-- 
ČETRTA POT, d.o.o., Kranj
Planina 3
4000 Kranj
Slovenia, Europe
Tel. +386 (0) 4 280 66 03
E-mail: [EMAIL PROTECTED]
Http: www.cetrtapot.si

_______________________________________________
uClibc mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/uclibc

Reply via email to