All distro conf files: Use LIBC to pick or set your libc.
[openembedded.git] / conf / distro / include / angstrom.inc
index a66b1e4..d8c3cd7 100644 (file)
@@ -12,14 +12,47 @@ TARGET_VENDOR = "-angstrom"
 # Add FEED_ARCH to overrides
 OVERRIDES .= ":${FEED_ARCH}"
 
+# 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"
 
 # Can be "glibc", "eglibc" or "uclibc"
-ANGSTROM_MODE ?= "glibc"
-PSTAGE_EXTRAPATH = "${ANGSTROM_MODE}"
+ANGSTROMLIBC ?= "glibc"
+LIBC ?= "${ANGSTROMLIBC}"
+PSTAGE_EXTRAPATH = "${LIBC}"
+
+CACHE = "${TMPDIR}/cache/${LIBC}/${MACHINE}"
+DEPLOY_DIR = "${TMPDIR}/deploy/${LIBC}"
+require conf/distro/include/angstrom-${LIBC}.inc
+
+# 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.
 
-CACHE = "${TMPDIR}/cache/${ANGSTROM_MODE}/${MACHINE}"
-DEPLOY_DIR = "${TMPDIR}/deploy/${ANGSTROM_MODE}"
-require conf/distro/include/angstrom-${ANGSTROM_MODE}.inc
 
 #Use this variable in feeds and other parts that need a URI
 ANGSTROM_URI ?= "http://www.angstrom-distribution.org"
@@ -57,6 +90,10 @@ require conf/distro/include/angstrom-package-${ANGSTROM_PKG_FORMAT}.inc
 
 # 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"
+
 
 #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"
@@ -67,6 +104,7 @@ 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
@@ -80,6 +118,7 @@ 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"
 
@@ -91,158 +130,11 @@ TARGET_CC_ARCH_pn-cairo_armv5te = "-march=armv4t"
 #Set the right arch for the feeds
 #Alphabetically sorted
 
-FEED_ARCH ?= "${TARGET_ARCH}"
+FEED_ARCH ?= "${BASE_PACKAGE_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
-
-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"
@@ -253,7 +145,7 @@ PACKAGE_EXTRA_ARCHS_htcwallaby = "arm-oabi"
 
 
 #Name the generated images in a sane way
-IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${ANGSTROM_MODE}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
+IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${LIBC}-${ANGSTROM_PKG_FORMAT}-${DISTRO_VERSION}-${MACHINE}"
 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
 
 # Angstrom *always* has some form of release config, so error out if someone thinks he knows better 
@@ -265,7 +157,7 @@ DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove thi
 # in their local.conf 
 
 #Name of the client
-TINDER_MACHINE  = "${MACHINE}-${ANGSTROM_MODE}-build-image"
+TINDER_MACHINE  = "${MACHINE}-${LIBC}-build-image"
 
 # Which lof file to write to, which tree to report to
 TINDER_LOG        = "${TMPDIR}/tinder.log"