Le 28/03/2012 12:14, Andrew a écrit : > 28.03.2012 12:55, Yves Blusseau написал: >> Le 27/03/2012 22:04, davidMbrooke a écrit : >>> Thanks Mike. I have now completed the document based on what was in my >>> head. It now describes all the places where the build system has to be >>> configured in order to add a custom toolchain (really only 3 places - >>> some simple config settings in make/MasterInclude.mk, a custom patch for >>> the Linux kernel .config and a custom uClibc .config). >>> >>> I have also started a Discussion page at the same location to track Q&A. >>> >>> david >>> >> Thanks david for the documentation. Just some questions: i have a >> soekris net6501 board (with an Atom E6xx series processor). >> If i take the "standard" configuration (|i486-unknown-linux-uclibc) >> buildtoo.pl will use the parameters defined in ||make/MasterInclude.mk: >> | >> >> ARCH:=i386 >> KARCHS:=i686 i486 geode >> KARCHS_PCIE:=i686 >> ARCH_CFLAGS=-march=i486 -mtune=pentiumpro >> >> I think it's not optimal for my board (i don't have to compile for i486 and >> mtune can be more specific). >> >> So my question: what is the best changes i need to do to have optimisation >> for my board ? >> I think i need a specific triplet name like atom-net6501-linux-uclibc ? >> with in|make/MasterInclude.mk:| >> >> |else ifeq ($(GNU_TARGET_NAME),atom-net6501-linux-uclibc) >> # Primary kernel architecture >> export ARCH:=x86_64 >> # Space-separated list of kernel sub-archs to generate >> export KARCHS:=net6501| >> export KARCHS_PCIE:=net6501 >> |# Arch-specific CFLAGS >> export ARCH_CFLAGS=-march=atom -mtune=atom >> >> is it right (like the |KARCHS_PCIE) |? >> >> This is just a use case to understand how we can change things for a >> proper toolchain. >> >> Regards, >> Yves >> || >> | > ARCH_CFLAGS involves only userland libraries, kernel is compiled for > selected arch - so you bother for 2-3% speedup of userland that is > negligible. > Tuning for specific arch instead of generic (pentium4 vs i686, atom vs > x86_64, etc) will give just some % of speed-up. Also switching from i686 > to x86_64 may cause performance drop (larger code will cause more > frequent cache misses), and no performance boost at least on IPv4 (it > operates with 32bit or less data). Thanks andrew for the informations. > > And second, for host names there are standard names, you can't defune > your own arch - libtool will not know it, and you'll have errors on > compilation. You speak about the net6501 for the KARCHS variable or the GNU_TARGET_NAME ? > So if you want to speed-up your box - it'll be enough to make kernel > optimized for your box, and use it with generic userland for your > architecture. So the best is to OVERRIDE the i486-unknown-linux-uclibc triplet in make/MasterInclude.mk with something like:
ifeq ($(GNU_TARGET_NAME),i486-unknown-linux-uclibc) # Primary kernel architecture export ARCH:=i386 # Space-separated list of kernel sub-archs to generate export KARCHS:=net6501 # Available kernel archs with pci-express support export KARCHS_PCIE:=i686 # Arch-specific CFLAGS export ARCH_CFLAGS=-march=i486 -mtune=pentiumpro and create a dedicated kernel config file Bering-3.2.13.config-net6501.patch ? Yves ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ leaf-devel mailing list leaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/leaf-devel