diff options
author | Michael 'Mickey' Lauer <mickey@vanille-media.de> | 2009-02-26 23:44:51 +0100 |
---|---|---|
committer | Michael 'Mickey' Lauer <mickey@vanille-media.de> | 2009-02-26 23:44:51 +0100 |
commit | 95d534d361b77894de0fe0ee6e5c1f96b60de211 (patch) | |
tree | 28aecafc31f5e4248da74cd064397b1ad2852b20 /conf/distro/include | |
parent | 9b4c27d16529467cf4a5329289e9fb1b7426ecc9 (diff) |
minimal.conf: blatantly steal the collective wisdom (and I admit it must have
been ton of work, thanks koen et. al.) people put in the angstrom distribution
configuration and reorganize the sections a bit for more clarity. Most of this
is really distribution-independent, so I'd welcome if angstrom would include one
or the other of these sane-*.inc and maintain it there.
Diffstat (limited to 'conf/distro/include')
-rw-r--r-- | conf/distro/include/sane-feed-deb.inc | 6 | ||||
-rw-r--r-- | conf/distro/include/sane-feed-ipk.inc | 5 | ||||
-rw-r--r-- | conf/distro/include/sane-feed.inc | 170 | ||||
-rw-r--r-- | conf/distro/include/sane-toolchain-eglibc.inc | 37 | ||||
-rw-r--r-- | conf/distro/include/sane-toolchain-glibc.inc | 39 | ||||
-rw-r--r-- | conf/distro/include/sane-toolchain-oabi.inc | 2 | ||||
-rw-r--r-- | conf/distro/include/sane-toolchain-uclibc.inc | 42 | ||||
-rw-r--r-- | conf/distro/include/sane-toolchain-uclinux-uclibc.inc | 26 | ||||
-rw-r--r-- | conf/distro/include/sane-toolchain.inc | 145 |
9 files changed, 472 insertions, 0 deletions
diff --git a/conf/distro/include/sane-feed-deb.inc b/conf/distro/include/sane-feed-deb.inc new file mode 100644 index 0000000000..4f38b8f936 --- /dev/null +++ b/conf/distro/include/sane-feed-deb.inc @@ -0,0 +1,6 @@ + + +INHERIT += "package_deb" + +PREFERRED_PROVIDER_virtual/update-alternatives-native = "update-alternatives-cworth-native" +PREFERRED_PROVIDER_virtual/update-alternatives = "update-alternatives-cworth" diff --git a/conf/distro/include/sane-feed-ipk.inc b/conf/distro/include/sane-feed-ipk.inc new file mode 100644 index 0000000000..a33a4ad2b4 --- /dev/null +++ b/conf/distro/include/sane-feed-ipk.inc @@ -0,0 +1,5 @@ +INHERIT += "package_ipk" + +PREFERRED_PROVIDER_virtual/update-alternatives-native = "update-alternatives-cworth-native" +PREFERRED_PROVIDER_virtual/update-alternatives = "update-alternatives-cworth" + diff --git a/conf/distro/include/sane-feed.inc b/conf/distro/include/sane-feed.inc new file mode 100644 index 0000000000..5bc19a1806 --- /dev/null +++ b/conf/distro/include/sane-feed.inc @@ -0,0 +1,170 @@ +# Originally brought to you by the Angstrom Distribution + +############################################################################# +# FEED BUILDING SETTINGS +############################################################################# + +# Put links to sources in deploy/sources to make it easier for people to be GPL compliant +INHERIT += "src_distribute_local" +SRC_DIST_LOCAL ?= "symlink" + +# Add FEED_ARCH to overrides +OVERRIDES .= ":${FEED_ARCH}" + +FEED_ARCH ?= "${TARGET_ARCH}" + +# Blackfin machines +FEED_ARCH_bfin = "blackfin" + +# armv4t machines + +FEED_ARCH_acern30 = "armv4t" +FEED_ARCH_amsdelta = "armv4t" +FEED_ARCH_ep93xx = "armv4t" +FEED_ARCH_eteng500 = "armv4t" +FEED_ARCH_om-gta01 = "armv4t" +FEED_ARCH_om-gta02 = "armv4t" +FEED_ARCH_h1940 = "armv4t" +FEED_ARCH_h6300 = "armv4t" +FEED_ARCH_kb9202 = "armv4t" +FEED_ARCH_ks8695 = "armv4t" +FEED_ARCH_rx1950 = "armv4t" +FEED_ARCH_rx3000 = "armv4t" +FEED_ARCH_sarge-at91 = "armv4t" +FEED_ARCH_smdk2440 = "armv4t" +FEED_ARCH_smdk2443 = "armv4t" + +# armv5t machines + +FEED_ARCH_a1200 = "armv5te" +FEED_ARCH_a780 = "armv5te" +FEED_ARCH_akita = "armv5te" +FEED_ARCH_asus620 = "armv5te" +FEED_ARCH_asus730 = "armv5te" +FEED_ARCH_at91sam9263ek = "armv5te" +FEED_ARCH_aximx50 = "armv5te" +FEED_ARCH_aximx50v = "armv5te" +FEED_ARCH_c7x0 = "armv5te" +FEED_ARCH_compulab-pxa270 = "armv5te" +FEED_ARCH_davinci-dvevm = "armv5te" +FEED_ARCH_devkitidp-pxa255 = "armv5te" +FEED_ARCH_e680 = "armv5te" +FEED_ARCH_er0100 = "armv5te" +FEED_ARCH_gumstix = "armv5te" +FEED_ARCH_gumstix-verdex = "armv5te" +FEED_ARCH_gumstix-connex = "armv5te" +FEED_ARCH_h1910 = "armv5te" +FEED_ARCH_h2200 = "armv5te" +FEED_ARCH_h3900 = "armv5te" +FEED_ARCH_h4000 = "armv5te" +FEED_ARCH_h5000 = "armv5te" +FEED_ARCH_htcalpine = "armv5te" +FEED_ARCH_htcapache = "armv5te" +FEED_ARCH_htcblueangel = "armv5te" +FEED_ARCH_htchimalaya = "armv5te" +FEED_ARCH_htcsable = "armv5te" +FEED_ARCH_htctornado = "armv5te" +FEED_ARCH_htcuniversal = "armv5te" +FEED_ARCH_hx2000 = "armv5te" +FEED_ARCH_hx4700 = "armv5te" +FEED_ARCH_ixp4xxle = "armv5te" +FEED_ARCH_logicpd-pxa270 = "armv5te" +FEED_ARCH_looxc550 = "armv5te" +FEED_ARCH_lsarm = "armv5te" +FEED_ARCH_magician = "armv5te" +FEED_ARCH_mainstone = "armv5te" +FEED_ARCH_mnci = "armv5te" +FEED_ARCH_mtx-3 = "armv5te" +FEED_ARCH_mx21ads = "armv5te" +FEED_ARCH_n2100 = "armv5te" +FEED_ARCH_navman-icn330 = "armv5te" +FEED_ARCH_netbook-pro = "armv5te" +FEED_ARCH_nokia770 = "armv5te" +FEED_ARCH_rokre2 = "armv5te" +FEED_ARCH_nslu2le = "armv5te" +FEED_ARCH_omap1510inn = "armv5te" +FEED_ARCH_omap1610h2 = "armv5te" +FEED_ARCH_omap1710h3 = "armv5te" +FEED_ARCH_omap5912osk = "armv5te" +FEED_ARCH_palmld = "armv5te" +FEED_ARCH_palmt650 = "armv5te" +FEED_ARCH_palmt680 = "armv5te" +FEED_ARCH_palmtc = "armv5te" +FEED_ARCH_palmtt = "armv5te" +FEED_ARCH_palmtt3 = "armv5te" +FEED_ARCH_palmtt5 = "armv5te" +FEED_ARCH_palmtx = "armv5te" +FEED_ARCH_palmz31 = "armv5te" +FEED_ARCH_palmz71 = "armv5te" +FEED_ARCH_palmz72 = "armv5te" +FEED_ARCH_poodle = "armv5te" +FEED_ARCH_qemuarm = "armv5te" +FEED_ARCH_spitz = "armv5te" +FEED_ARCH_tosa = "armv5te" +FEED_ARCH_triton = "armv5te" + +FEED_ARCH_ixp4xxbe = "armv5teb" +FEED_ARCH_nslu2be = "armv5teb" + +# armv6 machines + +FEED_ARCH_mx31ads = "armv6" +FEED_ARCH_mx31moboard = "armv6" +FEED_ARCH_nokia800 = "armv6" +FEED_ARCH_omap2420h4 = "armv6" +FEED_ARCH_omap2430sdp = "armv6" + +# i486 machines +FEED_ARCH_geodegx = "i486" +FEED_ARCH_geodelx = "i486" +FEED_ARCH_netvista = "i486" +FEED_ARCH_wrap = "i486" +FEED_ARCH_x86 = "i486" + +# i586 machines +FEED_ARCH_epia = "i586" +FEED_ARCH_i586-generic = "i586" +FEED_ARCH_qemux86 = "i586" + +# i686 machines + +FEED_ARCH_alix = "i686" +FEED_ARCH_colinux = "i686" +FEED_ARCH_guinness = "i686" +FEED_ARCH_i686-generic = "i686" +FEED_ARCH_progear = "i686" + +# powerpc machines + +FEED_ARCH_dht-walnut = "ppc405" +FEED_ARCH_magicbox = "ppc405" +FEED_ARCH_xilinx-ml403 = "ppc405" +FEED_ARCH_xilinx-ml410 = "ppc405" +FEED_ARCH_sequoia = "ppc440e" +FEED_ARCH_efika = "ppc603e" +FEED_ARCH_lite5200 = "ppc603e" +FEED_ARCH_lsppchd = "ppc603e" +FEED_ARCH_lsppchg = "ppc603e" +FEED_ARCH_storcenter = "ppc603e" +FEED_ARCH_turbostation = "ppc603e" +FEED_ARCH_mpc8313e-rdb = "ppce300c3" +FEED_ARCH_mpc8323e-rdb = "ppce300c2" + +# strongarm machines, no EABI + +FEED_ARCH_collie = "arm-oabi" +FEED_ARCH_h3600 = "arm-oabi" +FEED_ARCH_h3800 = "arm-oabi" +FEED_ARCH_htcwallaby = "arm-oabi" +FEED_ARCH_jornada56x = "arm-oabi" +FEED_ARCH_jornada7xx = "arm-oabi" +FEED_ARCH_shark = "arm-oabi" +FEED_ARCH_simpad = "arm-oabi" + +# Tweak packaging for strongarm machines since they can't use EABI + +PACKAGE_EXTRA_ARCHS_collie = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3600 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3800 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_simpad = "arm-oabi" +PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi" diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc new file mode 100644 index 0000000000..e780349137 --- /dev/null +++ b/conf/distro/include/sane-toolchain-eglibc.inc @@ -0,0 +1,37 @@ +# Originally brought to you by the Angstrom Distribution + +# eglibc: +PREFERRED_PROVIDER_virtual/libiconv = "eglibc" +PREFERRED_PROVIDER_virtual/libintl = "eglibc" +PREFERRED_PROVIDER_virtual/libc = "eglibc" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial" + +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" +PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc = "eglibc" + +TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" + +#TARGET_OS = "linux-gnuspe" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616 +# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os" + +FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os" +FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1" +FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" + +BUILD_OPTIMIZATION = "-Os" +BUILD_OPTIMIZATION_pn-perl = "-O1" +BUILD_OPTIMIZATION_sparc = "-O2" + +TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel']]}" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc new file mode 100644 index 0000000000..b14f880328 --- /dev/null +++ b/conf/distro/include/sane-toolchain-glibc.inc @@ -0,0 +1,39 @@ +# glibc: +PREFERRED_PROVIDER_virtual/libiconv ?= "glibc" +PREFERRED_PROVIDER_virtual/libintl ?= "glibc" +PREFERRED_PROVIDER_virtual/libc ?= "glibc" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial" +PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers" + +#Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo) +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc = "glibc" +PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc = "glibc" + + +TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +# perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616 +# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os" + +FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2" + +FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1" +FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2" +FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" + +BUILD_OPTIMIZATION = "-O2" +BUILD_OPTIMIZATION_pn-perl = "-O1" +BUILD_OPTIMIZATION_pn-glibc = "-O2" +BUILD_OPTIMIZATION_sparc = "-O2" + +TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel']]}" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain-oabi.inc b/conf/distro/include/sane-toolchain-oabi.inc new file mode 100644 index 0000000000..816d44230e --- /dev/null +++ b/conf/distro/include/sane-toolchain-oabi.inc @@ -0,0 +1,2 @@ +PACKAGE_ARCH = "arm-oabi" +BASE_PACKAGE_ARCH = "arm-oabi" diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc new file mode 100644 index 0000000000..66ac81a508 --- /dev/null +++ b/conf/distro/include/sane-toolchain-uclibc.inc @@ -0,0 +1,42 @@ +# Originally brought to you by the Angstrom Distribution + +# uclibc: +#fix some iconv issues, needs to be adjusted when doing uclibc builds +PREFERRED_PROVIDER_virtual/libc = "uclibc" +PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv" +PREFERRED_PROVIDER_virtual/libintl ?= "gettext" +PREFERRED_PROVIDER_virtual/libintl_avr32 = "proxy-libintl" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "uclibc" +PREFERRED_PROVIDER_virtual/arm-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" +PREFERRED_PROVIDER_virtual/armeb-${TARGET_VENDOR}-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" + +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross" +PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" + +USE_NLS ?= "no" +USE_NLS_glib-2.0 = "yes" +USE_NLS_glib-2.0-native = "yes" +USE_NLS_gcc-cross = "no" + +TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" +TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d) in ['bfin']]}" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os" +BUILD_OPTIMIZATION = "-Os" + +#Gcc will die with 'internal consistency error when using the above optimizations +#with gcc-4.2.1-atmel.1.0.3 (and probably most other avr32 gcc ports). +#However, some packages require optimizations to compile (e.g. libmad). +#It appears the guilty optimization is "-frename-registers", leaving that one +#out allows the build to proceed normally. -fexpensive-optimizations may be OK, +#it was removed while debugging an issue that ultimately turned out to be due +#to the ICE fixed by gcc-pr32889.patch. It needs to be tested again. +#Note that this testing was done without the gcc-pr32889.patch. +FULL_OPTIMIZATION_avr32 = "-Os -fomit-frame-pointer" + +TARGET_LINK_HASH_STYLE = "${@['-Wl,--hash-style=gnu',''][bb.data.getVar('TARGET_ARCH',d,1) in ['mips', 'mipsel', 'avr32']]}" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain-uclinux-uclibc.inc b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc new file mode 100644 index 0000000000..85ccddf704 --- /dev/null +++ b/conf/distro/include/sane-toolchain-uclinux-uclibc.inc @@ -0,0 +1,26 @@ +# Originally brought to you by the Angstrom Distribution + +# uclibc: +#fix some iconv issues, needs to be adjusted when doing uclibc builds +PREFERRED_PROVIDER_virtual/libc = "uclibc" +PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv" +PREFERRED_PROVIDER_virtual/libintl ?= "gettext" + +USE_NLS ?= "no" +USE_NLS_glib-2.0 = "yes" +USE_NLS_glib-2.0-native = "yes" +USE_NLS_gcc-cross = "no" + +TARGET_OS_UC = "uclinux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" + +#mess with compiler flags to use -Os instead of -O2 +#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info +FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os" +BUILD_OPTIMIZATION = "-Os" + +#Gcc will die with 'internal consistency error when using the above optimizations +FULL_OPTIMIZATION_avr32 = "" +BUILD_OPTIMIZATION_avr32 = "" + +CXXFLAGS += "-fvisibility-inlines-hidden" + diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc new file mode 100644 index 0000000000..6165e752c5 --- /dev/null +++ b/conf/distro/include/sane-toolchain.inc @@ -0,0 +1,145 @@ +# Originally brought to you by the Angstrom Distribution + +############################################################################# +# TOOLCHAIN VERSION SETTINGS +############################################################################# + +# Base line versions, good for most things +PREFERRED_GCC_VERSION ?= "4.2.4" +PREFERRED_BINUTILS ?= "2.18.50.0.7" + +# Prefer glibc 2.6 and uclibc 0.9.30, these have had the most testing. +PREFERRED_VERSION_glibc ?= "2.6.1" +PREFERRED_VERSION_glibc-initial ?= "2.6.1" +PREFERRED_VERSION_uclibc ?= "0.9.30" +PREFERRED_VERSION_uclibc-initial ?= "0.9.30" + +# Some systems need a special gcc version +PREFERRED_GCC_VERSION_486sx ?= "4.3.2" +PREFERRED_GCC_VERSION_avr32 ?= "4.2.2" +PREFERRED_GCC_VERSION_armv7a ?= "4.3.1" +PREFERRED_GCC_VERSION_bfin ?= "4.1.2" +PREFERRED_GCC_VERSION_ppc405 ?= "4.1.1" +PREFERRED_GCC_VERSION_xilinx-ml403 ?= "4.1.1" +PREFERRED_GCC_VERSION_xilinx-ml403 ?= "4.1.1" + +# This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against +PREFERRED_VERSION_linux-libc-headers = "2.6.23" + +# Uncomment this if want need to build an armv7a kernel with CSL toolchain (<2.6.27 don't boot with mainline gcc) +#KERNEL_CCSUFFIX_armv7a= "-4.2.1+csl-arm-2007q3-53" + +# Binutils +PREFERRED_VERSION_binutils ?= "PREFERRED_BINUTILS" +PREFERRED_VERSION_binutils-cross ?= "PREFERRED_BINUTILS" +PREFERRED_VERSION_binutils-cross-sdk ?= "PREFERRED_BINUTILS" + +# Avr32 only has patches for binutils 2.17 in OE +PREFERRED_VERSION_binutils_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17" + +# Compiler versions +PREFERRED_VERSION_gcc ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-sdk ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-initial ?= "${PREFERRED_GCC_VERSION}" +PREFERRED_VERSION_gcc-cross-intermediate ?= "${PREFERRED_GCC_VERSION}" + +# Compiler selection +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross" + +# Others +PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers" + +############################################################################# +# TOOLCHAIN CUSTOMIZATION +############################################################################# + +# Branding +TARGET_VENDOR = "-oe" + +# ARM920T and up can use thumb mode to decrease binary size at the expense of speed +# (the complete story is a bit more nuanced due to cache starvation) +# Angstrom turns on thumb for armv4t machine according to this RFC: +# http://lists.linuxtogo.org/pipermail/angstrom-distro-devel/2008-October/002714.html + +# We can't do ARM_INSTRUCTION_SET_armv4t since that will un-overridable in recipes like gcc +ANGSTROM_ARM_INSTRUCTION_SET ?= "arm" +ANGSTROM_ARM_INSTRUCTION_SET_armv4t = "thumb" +ANGSTROM_ARM_INSTRUCTION_SET_armv5te = "thumb" +ANGSTROM_ARM_INSTRUCTION_SET_armv5teb = "thumb" + +ARM_INSTRUCTION_SET = "${ANGSTROM_ARM_INSTRUCTION_SET}" +# "arm" "thumb" +# The instruction set the compiler should use when generating application +# code. The kernel is always compiled with arm code at present. arm code +# is the original 32 bit ARM instruction set, thumb code is the 16 bit +# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size) +# but requires more instructions (140% for 70% smaller code) so may be +# slower. + +THUMB_INTERWORK = "yes" +# "yes" "no" +# Whether to compile with code to allow interworking between the two +# instruction sets. This allows thumb code to be executed on a primarily +# arm system and vice versa. It is strongly recommended that DISTROs not +# turn this off - the actual cost is very small. + +# We don't want to keep OABI compat +ARM_KEEP_OABI = "0" +# Do keep OABI compat for om-gta01 to keep the gllin binary working +ARM_KEEP_OABI_pn-linux-openmoko-2.6.24_om-gta01 = "1" +ARM_KEEP_OABI_pn-linux-openmoko-2.6.28_om-gta01 = "1" + +# ARM EABI is softfloat by default, but let's make sure :) +# make it overridable for platforms with FPU, like ep93xx or i.mx31 +TARGET_FPU_arm ?= "soft" +TARGET_FPU_armeb ?= "soft" +TARGET_FPU_ixp4xx ?= "soft" +TARGET_FPU_ppc405 ?= "soft" + +TARGET_FPU_armv6 ?= "hard" +TARGET_FPU_armv6-novfp ?= "soft" +TARGET_FPU_armv7a ?= "hard" +TARGET_FPU_ppc603e ?= "hard" + +# webkit-gtk and cairo have alignment issues with double instructions on armv5 so +# disable them here +TARGET_CC_ARCH_pn-webkit-gtk_armv5te = "-march=armv4t" +TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t" + +############################################################################# +# C LIBRARY SETTINGS +############################################################################# + +# Can be "glibc", "eglibc" or "uclibc" +PREFERRED_LIBC ?= "glibc" +PSTAGE_EXTRAPATH = "${PREFERRED_LIBC}" + +CACHE = "${TMPDIR}/cache/${PREFERRED_LIBC}/${MACHINE}" +DEPLOY_DIR = "${TMPDIR}/deploy/${PREFERRED_LIBC}" +require conf/distro/include/sane-toolchain-${PREFERRED_LIBC}.inc + +# Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable +PREFERRED_PROVIDER_qemu-native = "qemu-native" +ENABLE_BINARY_LOCALE_GENERATION ?= "1" + +# We only want to build UTF8 locales +LOCALE_UTF8_ONLY = "1" + +# Qemu doesn't like armv6/eabi/vfp +ENABLE_BINARY_LOCALE_GENERATION_armv6 = "0" +ENABLE_BINARY_LOCALE_GENERATION_armv6-novfp = "0" +ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0" + +#qemu has taken a dislike to armeb as well +ENABLE_BINARY_LOCALE_GENERATION_armeb = "0" + +# This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH} +ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}" +include conf/distro/include/sane-toolchain-${ARM_ABI}.inc |