Set -mthumb-interwork on ucslugc builds to allow building (and maybe
authorJohn Bowler <jbowler@nslu2-linux.org>
Thu, 11 Aug 2005 20:51:17 +0000 (20:51 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Thu, 11 Aug 2005 20:51:17 +0000 (20:51 +0000)
someday running) of thumb exectuables.

conf/distro/ucslugc.conf

index 7eb8e2f..bb383b8 100644 (file)
@@ -18,8 +18,13 @@ USE_NLS_glib-2.0 = "yes"
 INHERIT += " package_ipk debian nslu2_flashimg"
 
 # The OVERRIDES are modified here so that 'openslug' overrides are picked up if
-# present (ucslugc overrides take precedence)
-OVERRIDES = "local:${MACHINE}:${DISTRO}:openslug:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}"
+# present (ucslugc overrides take precedence), 'thumb' is used to factor out
+# things where a pack assumes that an arm target implies 32 bit instruction
+# support with no attention to thumb/arm mode (it indicates a bug if it is
+# necessary to use this).
+#NSLU2_THUMB_OVERRIDE = ":thumb"
+NSLU2_THUMB_OVERRIDE = ""
+OVERRIDES = "local:${MACHINE}:${DISTRO}:openslug:${TARGET_OS}${NSLU2_THUMB_OVERRIDE}:${TARGET_ARCH}:build-${BUILD_OS}"
 
 # NOTE: to build new packages set UCSLUGC_EXTRA_BBFILES to the full path name to
 # the .bb files for the packages to build - see ucslugc-packages.conf in this
@@ -45,6 +50,28 @@ FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/ucslugc/native/${
 #FEED_URIS_append += "unstable_cross##http://ipkg.nslu2-linux.org/feeds/ucslugc/cross/unstable"
 #FEED_URIS_append += "unstable_native##http://ipkg.nslu2-linux.org/feeds/ucslugc/native/unstable"
 
+#----------------------------------------------------------------------------------
+# OVERALL BUILD OPTIONS
+#----------------------------------------------------------------------------------
+#
+# TARGET_CC_ARCH is used to provide architecture specific definitions to the C
+# compiler.  For target compilation it is part of "CC" - not part of "CFLAGS" -
+# in the hope that individual package builds will therefore not circumvent it
+# (this doesn't always work, but it is more reliable than a simple setting of
+# CFLAGS values).
+#
+# For UcSlugC the architecture value used is based on the standard NSLU2 value,
+# however it selects both thumb interwork and thumb code generation to minimise
+# build size.  The distro allows the choice of thumb or arm code to be overridden
+# on a per-package basis by setting NSLU2_THUMB (to empty) in the package .bb file.
+# See also the 'override' above.
+#NSLU2_THUMB = "-mthumb"
+NSLU2_THUMB = ""
+TARGET_CC_ARCH = "-march=armv5te -mtune=xscale -mthumb-interwork ${NSLU2_THUMB}"
+TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale -mno-thumb-interwork -mno-thumb"
+TARGET_LD_ARCH = ""
+TARGET_LD_KERNEL_ARCH = ""
+
 #----------------------------------------------------------------------------------
 # FIRMWARE CONFIGURATION
 #----------------------------------------------------------------------------------