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