Commit Graph

12 Commits

Author SHA1 Message Date
Martin Jansa 54ee29e563 tune-*: define more generic DEFAULTTUNE to share feed between machines
* this is mostly for backwards compatibility and to share binary feed
  like it was before, but now without missing different -mtune in it
* if you want to build some package with -mtune add something like this
  to your distro config
  DEFAULTTUNE_qemuarm_pn-openssl = "arm926ejs"
  DEFAULTTUNE_qemuarmx_pn-openssl = "xscale"
  be aware that if you do this you should do it also for all packages
  which depends on openssl because if you dont and you build e.g. dhcp,
  then dhcp build for arm926ejs (even with DEFAULTTUNE armv5te) will
  depend on openssl with arm926ejs, so dhcp in armv5te feed will be
  rebuild after each MACHINE switch.
* cortexm3, cortexr4, iwmmx and ep9312 are using own DEFAULTTUNE because
  they define also different -march
* shared feeds are
  armv4t: arm920t, arm9tdmi
  armv5te: arm926ejs, xscale
  armv7a-neon: cortexa8, cortexa9

(From OE-Core rev: a11bdc36a1be18cc5aa14682b2a2c9ee83141f51)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-26 10:01:22 +00:00
Martin Jansa 2c300bccbd arch-arm: define different ARMPKGARCH when different CCARGS are used
* without this tune-xscale and tune-arm926ejs were both creating
  packages in armv5te feed, but each with different -mtune, with
  OEBasicHash enabled it was causing each package to rebuild with new
  -mtune after MACHINE switch, but that doesn't make sense with output
  stored in the same armv5te feed

* this makes different feed for each -mtune, but more generic one to be
  selected with DEFAULTTUNE

* tune-iwmmxt and tune-ep9312 were already using this, just move it
  bellow AVAILTUNES and use ARMPKGARCH_tune-foo syntax

* tune-cortexr4 and tune-cortexm3 are using armv7r/armv7m as ARMPKGARCH
  because there isn't another tune to use the same -march

(From OE-Core rev: cffda9a821a3b83a8529d643c567859e091c6846)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-26 10:01:22 +00:00
Richard Purdie 6afd21bced Add ARM tune file overhaul based largely on work from Mark Hatle
(From OE-Core rev: 789dcb8e68a2ab9784ac10ab36815010c61af2fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-27 15:45:48 +01:00
Richard Purdie 255719f023 conf/machine/include: Start to fill out architecture specific tune include files and tune features
These changes revolve around the idea of tune features. These are represented by
'flag' strings that are included in the TUNE_FEATURES variable.

Any string included in TUNE_FEATURES should also add a TUNEVALID[<name>] entry so
we can know which flags are available in TUNE_FEATURES and have documentation about
what the flags do. We will add sanity code to error if flags are listed in
TUNE_FEATURES but are not documented in TUNEVALID.

A given tune configuration will want to define one or more predetermined sets of
_FEATURE flag lists. These are defined in the form TUNE_FEATURES_tune-<name>.
For defined tune configuation, <name> should be added to the AVAILTUNE list so that
we can determine what tune configurations are available. Flags cannot be used in this
case as with TUNEVALID since its useful to be able to build up tune lists from other
TUNE_FEATURES_tune-yyy options.

A given tune configuration may also define PACKAGE_EXTRA_ARCHS_tune-<name> and
BASE_LIB_tune-<name> to control the multilib location. All options can be overridden
by the distro or local user configuration.

(From OE-Core rev: 5f9d56bd64997b93ed7e46c117851002a0556654)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-25 14:36:30 +01:00
Richard Purdie d74176473a conf/machine/include: Set TUNE_CCARGS instead of TARGET_CC_ARCH
Since we're updating the tune file format, it makes sense to abstract
the compiler tune arguments at this point too. This means that should
these need to be overridden at any point, the original values can
still be obtained in a similar manner to the other TUNE* variables.

Whilst this isn't strictly necessary for any current need, its likely
good practise to standardise this behaviour.

(From OE-Core rev: 3a3c69a1bc3cf0b6f6a3b13d86c12ed21798d48e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-25 12:06:30 +01:00
Richard Purdie 039a2d006b conf/machine/tune: Overhaul tune include file variables
There is currently consideradble confusion over how the tune files operate
and how these interact with the rest of the build system. This update/overhaul
changes things so the tune files are primarily resonsible for setting:

TUNE_ARCH - What was formerly set as TARGET_ARCH and is the value that
represents the architecture we're targetting.

TUNE_PKGARCH - The value that represents the tune confuration that this set
of tune parameters results in.

This allows the significant improvement that the core can now always determine
the target architecture value, even when TARGET_ARCH needs to be reset to
something different and likewise, there is one package architecture variable
the core can reference allowing simplification of the BASE_PACKAGE_ARCH, PACKAGE_ARCH
and FEED_ARCH variables.

(From OE-Core rev: a10de4cf8b424ee95c8e283e75d486be5b3b8eac)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-25 12:06:30 +01:00
Richard Purdie a295a0442e bitbake.conf/tune files: Adjust PACKAGE_EXTEA_ARCHS
There is a problem with the current PACKAGE_EXTRA_ARCHS implementation
since its impossible to control which extra architectures sort higher
than TARGET_ARCH and which sort lower. In the x86 case for example,
TARGET_ARCH might be "i586", i486 should be lower than this and i686 should
be higher. There are also complications where its easy to inject duplicate
entries into the variable.

I tried various versions of this patch and concluded that it was simplest
just to force the tune files to include TARGET_ARCH in the list in the
right place if they're planning to customise it themselves. Other approaches
with appends and prepends just complicated the code for no good reason.

The TARGET_ARCH definitions should also move to the tune files but I'll
leave this for a separate patch.

(From OE-Core rev: d492ebf8b1801da99c679f465be98ce54fd3061a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-23 15:43:47 +00:00
Koen Kooi 38b25eed95 machines: move PACKAGE_EXTRA_ARCHS to tune files
This gets us closer to making including tune-<arch>.inc "just work".
Moving the TARGET_ARCH definitions is something for a follup patch.

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-10 18:18:43 +00:00
Richard Purdie 45d0dac16a bitbake.conf/tune.conf: Set BASE_PACKAGE_ARCH and build PACKAGE_ARCH from this
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4857 311d38ba-8fff-0310-9ca6-ca027cbcb966
2008-07-17 20:40:34 +00:00
Marcin Juszkiewicz 307bc14866 tune-arm1136jf-s.inc: fix arm/thumb switching
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3976 311d38ba-8fff-0310-9ca6-ca027cbcb966
2008-03-07 08:38:28 +00:00
Marcin Juszkiewicz bb6d77b5a7 tune-arm1136jf-s: switch to use CPU_FEATURES to enable/disable VFP and Thumb support
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3357 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-12-19 12:02:43 +00:00
Marcin Juszkiewicz 261c8d8c77 tune-arm1136jf-s.inc: optimizations for armv6 devices
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3258 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-11-27 16:18:46 +00:00