Dear "Gao Ya'nan", In message <[email protected]> you wrote: > First, set environment variables: > > export > PATH=/opt/eldk-5.0/powerpc/sysroots/i686-pokysdk-linux/usr/bin/powerpc-linux:$PATH > export ARCH=powerpc > export CROSS_COMPILE=powerpc-linux-
Heh. It really needs no announcements for people to discover new stuff :-) > compile busbox, And then I got a 1.5MB big fat dynamic-linking binary. With "defconfig" I even see 1.8 MiB for busybox_unstripped. This is the result from GCC compiling the code without optimization, which in turn results from "-Os" not working. Please try and apply this patch to the busybox sources: diff --git a/Makefile.flags b/Makefile.flags index 363300b..462d5b0 100644 --- a/Makefile.flags +++ b/Makefile.flags @@ -58,14 +58,14 @@ CFLAGS += $(call cc-option,-falign-functions=1 -falign-jumps=1 -falign-labels=1 #CFLAGS += $(call cc-option,-Wconversion,) ifneq ($(CONFIG_DEBUG),y) -CFLAGS += $(call cc-option,-Os,) +CFLAGS += $(call cc-option,-O2,) else CFLAGS += $(call cc-option,-g,) #CFLAGS += "-D_FORTIFY_SOURCE=2" ifeq ($(CONFIG_DEBUG_PESSIMIZE),y) CFLAGS += $(call cc-option,-O0,) else -CFLAGS += $(call cc-option,-Os,) +CFLAGS += $(call cc-option,-O2,) endif endif You will then probably notice, that the size differences between the images compiled with ELDK 4.2 and ELDK 5.0 (both now compiling with -O2) practically disappears. Yes, with -Os you can save some 10...15% of the image size compared to building with -O2. Unfortunately we cannot use this (yet) in ELDK 5.0 - see below. > I compared the compiling process with ELDK-42, and found "-Os" options > was missing in Makefile.flags adding "-Os" flags Yes, that's intentionally. > [xxx@S2 powerpc]$ powerpc-linux-gcc -Os -S -o /dev/null -xc /dev/null > cc1: error: Do not use -Os option if --enable-target-optspace is not set. > > I think --enable-target-optspace is missing when building the > crosstool. Is there anyone who meet and solve this problem? Met yes. Solved no. This is due to a compiler bug in all recent versions of GCC; see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48278 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45053 General information about known (to us) GCC issues that impact ELDK, U-Boot and Linux can be found here: http://www.denx.de/wiki/U-Boot/GccBugsAndIssues We have to wait here until somebody fixes this compiler bug (or pays us to invest efforts into such a fix). Thanks for the feedback!! Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [email protected] Any sufficiently advanced technology is indistinguishable from a rigged demo. - Andy Finkel, computer guy _______________________________________________ eldk mailing list [email protected] http://lists.denx.de/mailman/listinfo/eldk
