[OE-core] [PATCH 1/1] SRC_URI, S: use BPN instead of PN for multilib case

2011-07-29 Thread Yu Ke
in multilibcase, PN has multilib prefix, so it is not
correct to use PN in SRC_URI and S. instead,  we've
dedicately pruned multilib prefix in BPN, so BPN is
the right alternative for PN.

Signed-off-by: Yu Ke 
---
 .../farsight/farsight2_0.0.9.bb|2 +-
 .../loudmouth/loudmouth_1.4.0.bb   |2 +-
 .../opensync/libopensync-plugin_0.36.inc   |2 +-
 .../telepathy/telepathy-farsight_0.0.7.bb  |2 +-
 .../telepathy/telepathy-gabble_0.7.8.bb|2 +-
 .../recipes-connectivity/wbxml/wbxml2_0.9.2.bb |2 +-
 .../recipes-gnome/gcalctool/gcalctool_5.7.32.bb|2 +-
 .../recipes-gnome/gcalctool/gcalctool_5.8.17.bb|2 +-
 .../recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb |2 +-
 meta-demoapps/recipes-gnome/wv/wv_1.2.0.bb |2 +-
 meta-demoapps/recipes-sato/kf/kf_0.5.4.1.bb|2 +-
 .../matchbox-themes-extra_git.bb   |2 +-
 .../recipes-support/poppler/poppler-data_0.1.bb|2 +-
 meta-demoapps/recipes-support/poppler/poppler.inc  |2 +-
 .../omap3-sgx-modules_1.3.13.1397.bb   |4 ++--
 meta/recipes-bsp/zaurusd/zaurusd_svn.bb|2 +-
 .../galago/galago-daemon_0.5.1.bb  |2 +-
 .../iproute2/iproute2_2.6.38.bb|2 +-
 meta/recipes-connectivity/ofono/ofono_0.50.bb  |2 +-
 .../telepathy/telepathy-glib_0.14.3.bb |2 +-
 .../telepathy/telepathy-idle_0.1.8.bb  |2 +-
 .../telepathy/telepathy-python_0.15.19.bb  |2 +-
 meta/recipes-core/dbus-wait/dbus-wait_svn.bb   |2 +-
 .../glib-networking/glib-networking_2.28.7.bb  |2 +-
 meta/recipes-devtools/distcc/distcc_2.18.3.bb  |2 +-
 .../subversion/subversion_1.6.15.bb|2 +-
 meta/recipes-extended/blktool/blktool_4-6.bb   |2 +-
 .../recipes-extended/chkconfig/chkconfig_1.3.52.bb |2 +-
 meta/recipes-extended/libidn/libidn_0.6.14.bb  |2 +-
 meta/recipes-extended/libidn/libidn_1.22.bb|2 +-
 meta/recipes-extended/libtirpc/libtirpc_0.2.2.bb   |4 ++--
 meta/recipes-extended/mktemp/mktemp_1.7.bb |2 +-
 meta/recipes-extended/xdg-utils/xdg-utils_1.0.2.bb |2 +-
 .../ttf-fonts/liberation-fonts_1.06.bb |2 +-
 .../xorg-driver/xf86-driver-common.inc |2 +-
 meta/recipes-multimedia/libomxil/libomxil_0.3.3.bb |2 +-
 meta/recipes-sato/eds/eds-tools_bzr.bb |2 +-
 meta/recipes-sato/gaku/gaku_svn.bb |2 +-
 meta/recipes-sato/libical/libical_0.46.bb  |2 +-
 meta/recipes-sato/libowl/libowl_svn.bb |2 +-
 .../recipes-sato/owl-video-widget/libowl-av_svn.bb |2 +-
 meta/recipes-sato/puzzles/oh-puzzles_svn.bb|2 +-
 meta/recipes-sato/puzzles/puzzles_r9175.bb |2 +-
 meta/recipes-sato/screenshot/screenshot_svn.bb |2 +-
 meta/recipes-support/apr/apr-util_1.3.10.bb|2 +-
 meta/recipes-support/apr/apr_1.4.2.bb  |2 +-
 meta/recipes-support/liboil/liboil_0.3.17.bb   |2 +-
 meta/recipes-support/neon/neon_0.29.5.bb   |2 +-
 48 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/meta-demoapps/recipes-connectivity/farsight/farsight2_0.0.9.bb 
b/meta-demoapps/recipes-connectivity/farsight/farsight2_0.0.9.bb
index 483a767..a7bdc97 100644
--- a/meta-demoapps/recipes-connectivity/farsight/farsight2_0.0.9.bb
+++ b/meta-demoapps/recipes-connectivity/farsight/farsight2_0.0.9.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "FarSight is an audio/video conferencing framework specifically 
designed for Instant Messengers."
 HOMEPAGE = "http://farsight.sf.net";
-SRC_URI = "http://farsight.freedesktop.org/releases/farsight2/${P}.tar.gz";
+SRC_URI = 
"http://farsight.freedesktop.org/releases/farsight2/${BPN}-${PV}.tar.gz";
 LICENSE = "GPLv2.1"
 DEPENDS = "libnice glib-2.0 libxml2 zlib dbus gstreamer gst-plugins-base"
 
diff --git a/meta-demoapps/recipes-connectivity/loudmouth/loudmouth_1.4.0.bb 
b/meta-demoapps/recipes-connectivity/loudmouth/loudmouth_1.4.0.bb
index e20c417..b6af11d 100644
--- a/meta-demoapps/recipes-connectivity/loudmouth/loudmouth_1.4.0.bb
+++ b/meta-demoapps/recipes-connectivity/loudmouth/loudmouth_1.4.0.bb
@@ -5,6 +5,6 @@ LICENSE = "LGPL"
 DEPENDS = "glib-2.0 gnutls libcheck"
 PR = "r2"
 
-SRC_URI = "http://ftp.imendio.com/pub/imendio/${PN}/src/${PN}-${PV}.tar.bz2";
+SRC_URI = "http://ftp.imendio.com/pub/imendio/${BPN}/src/${BPN}-${PV}.tar.bz2";
 
 inherit autotools pkgconfig
diff --git 
a/meta-demoapps/recipes-connectivity/opensync/libopensync-plugin_0.36.inc 
b/meta-demoapps/recipes-connectivity/opensync/libopensync-plugin_0.36.inc
index 147fcfb..cde4779 100644
--- a/meta-demoapps/recipes-connectivity/opensync/libopensync-plugin_0.36.inc
+++ b/meta-demoapps/recipes-connectivity/opensync/libopensync-plugin_0.36.inc
@@ -2,7 +2,7 @@ DEPENDS = "libopensync (>= 0.36)"
 
 DESCRIPTION ?= "OpenSy

[OE-core] [PATCH 0/1] replace PN with BPN in SRC_URI and S for multilib

2011-07-29 Thread Yu Ke
in multilibcase, PN has multilib prefix, so it is not
correct to use PN in SRC_URI and S. instead,  we've
dedicately pruned multilib prefix in BPN, so BPN is
the right alternative for PN.

The following changes since commit f94b781695cd8fa387daff16ecbf3987a0883018:
  Bruce Ashfield (1):
poky.conf: explicitly referenced preferred linux-yocto version

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib kyu3/src-uri
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kyu3/src-uri

Yu Ke (1):
  SRC_URI, S: use BPN instead of PN for multilib case

 .../farsight/farsight2_0.0.9.bb|2 +-
 .../loudmouth/loudmouth_1.4.0.bb   |2 +-
 .../opensync/libopensync-plugin_0.36.inc   |2 +-
 .../telepathy/telepathy-farsight_0.0.7.bb  |2 +-
 .../telepathy/telepathy-gabble_0.7.8.bb|2 +-
 .../recipes-connectivity/wbxml/wbxml2_0.9.2.bb |2 +-
 .../recipes-gnome/gcalctool/gcalctool_5.7.32.bb|2 +-
 .../recipes-gnome/gcalctool/gcalctool_5.8.17.bb|2 +-
 .../recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb |2 +-
 meta-demoapps/recipes-gnome/wv/wv_1.2.0.bb |2 +-
 meta-demoapps/recipes-sato/kf/kf_0.5.4.1.bb|2 +-
 .../matchbox-themes-extra_git.bb   |2 +-
 .../recipes-support/poppler/poppler-data_0.1.bb|2 +-
 meta-demoapps/recipes-support/poppler/poppler.inc  |2 +-
 .../omap3-sgx-modules_1.3.13.1397.bb   |4 ++--
 meta/recipes-bsp/zaurusd/zaurusd_svn.bb|2 +-
 .../galago/galago-daemon_0.5.1.bb  |2 +-
 .../iproute2/iproute2_2.6.38.bb|2 +-
 meta/recipes-connectivity/ofono/ofono_0.50.bb  |2 +-
 .../telepathy/telepathy-glib_0.14.3.bb |2 +-
 .../telepathy/telepathy-idle_0.1.8.bb  |2 +-
 .../telepathy/telepathy-python_0.15.19.bb  |2 +-
 meta/recipes-core/dbus-wait/dbus-wait_svn.bb   |2 +-
 .../glib-networking/glib-networking_2.28.7.bb  |2 +-
 meta/recipes-devtools/distcc/distcc_2.18.3.bb  |2 +-
 .../subversion/subversion_1.6.15.bb|2 +-
 meta/recipes-extended/blktool/blktool_4-6.bb   |2 +-
 .../recipes-extended/chkconfig/chkconfig_1.3.52.bb |2 +-
 meta/recipes-extended/libidn/libidn_0.6.14.bb  |2 +-
 meta/recipes-extended/libidn/libidn_1.22.bb|2 +-
 meta/recipes-extended/libtirpc/libtirpc_0.2.2.bb   |4 ++--
 meta/recipes-extended/mktemp/mktemp_1.7.bb |2 +-
 meta/recipes-extended/xdg-utils/xdg-utils_1.0.2.bb |2 +-
 .../ttf-fonts/liberation-fonts_1.06.bb |2 +-
 .../xorg-driver/xf86-driver-common.inc |2 +-
 meta/recipes-multimedia/libomxil/libomxil_0.3.3.bb |2 +-
 meta/recipes-sato/eds/eds-tools_bzr.bb |2 +-
 meta/recipes-sato/gaku/gaku_svn.bb |2 +-
 meta/recipes-sato/libical/libical_0.46.bb  |2 +-
 meta/recipes-sato/libowl/libowl_svn.bb |2 +-
 .../recipes-sato/owl-video-widget/libowl-av_svn.bb |2 +-
 meta/recipes-sato/puzzles/oh-puzzles_svn.bb|2 +-
 meta/recipes-sato/puzzles/puzzles_r9175.bb |2 +-
 meta/recipes-sato/screenshot/screenshot_svn.bb |2 +-
 meta/recipes-support/apr/apr-util_1.3.10.bb|2 +-
 meta/recipes-support/apr/apr_1.4.2.bb  |2 +-
 meta/recipes-support/liboil/liboil_0.3.17.bb   |2 +-
 meta/recipes-support/neon/neon_0.29.5.bb   |2 +-
 48 files changed, 50 insertions(+), 50 deletions(-)


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [RFC BUG #1236 2/2] eglibc: Modify ldd script according to multilib config.

2011-07-29 Thread Lu, Lianhao

> -Original Message-
> From: openembedded-core-boun...@lists.openembedded.org
> [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of
> Phil Blundell
> Sent: Friday, July 29, 2011 11:38 PM
> To: Patches and discussions about the oe-core layer
> Subject: Re: [OE-core] [RFC BUG #1236 2/2] eglibc: Modify ldd script according
> to multilib config.
> 
> On Fri, 2011-07-29 at 22:57 +0800, Lianhao Lu wrote:
> > +   "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC5"],
> 
> That looks a bit weird to me.  Are you sure that's right?
> 
Oops, it should be FLAG_ELF_LIBC6.

-Lianhao 

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/1] license.bbclass: Splitting out licenses

2011-07-29 Thread Cliff Brake
On Wed, Jul 27, 2011 at 2:04 PM, Flanagan, Elizabeth
 wrote:

> I would still pull it. It does give us a basis to work on and splits
> things out a bit.
> When I get back from the conference this week, I'll fix it so that
> it's a more reliable
> in returning results. My guess is that I'll have to rip this all out
> from being event driven
> and do it, as you suggest, a postprocess right after do_rootfs

Khem took a pass at this (using the approach Richard suggested), so
you might want to consider building on what he did.  The testlab stuff
in OE is incredibly useful, and might be considered for OE core.

Thanks,
Cliff

http://patches.openembedded.org/patch/7587/
http://patches.openembedded.org/patch/7589/

to oe-core (these patches have been applied)

and

http://patches.openembedded.org/patch/7591/ (still being discussed)

to meta-openembedded

Then INHERIT += "testlab" in local.conf if you are using angstrom them
testlab is already inherited

bitbake console-image

and you should see a new file called installed-package-licenses.txt in
testlab directory along with other testlab results.



-- 
=
http://bec-systems.com

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] feature-arm-thumb: respect ARM_INSTRUCTION_SET

2011-07-29 Thread Mark Hatle
On 7/29/11 3:23 PM, Phil Blundell wrote:
> On Fri, 2011-07-29 at 13:08 -0500, Mark Hatle wrote:
>> Sorry I was gone much of yesterday and not able to comment.  I'm going to 
>> break
>> this down into the two problems that I see people having.
>>
>> 1) "interworking".  I was recently told EABI requires interworking to be
>> enabled, and in OE-core we only support EABI.  So we should always have the
>> interworking enabled for the tunes that we support.
>>
>> Is this correct, any objections?  If so, assume from this point forward
>> interworking is always enabled and we only support (in oe-core) interworking
>> capable ARM chips.
> 
> That's pretty much right though not 100% correct.  Although it is true
> that the AAPCS (and by extension the EABI) effectively requires all
> relocatable objects to be built with interworking on, there are special
> provisions for translating BX to MOV during link edit and hence allowing
> v4 CPUs to run executables which are non-interworking but otherwise
> conformant with the EABI.  The effect of this is that, although v4 isn't
> naturally an interworking-capable architecture, it is nonetheless
> grandfathered into the EABI universe.  See the remarks in section 5.6 of
> ARM IHI 0042D.
> 
> And, pragmatically, there is a small but significant base of OE users on
> v4 (not v4t) platforms and I don't think we want to do anything that
> would disenfranchise them in OE-core.

Which set of users is still v4 (not interworking compatible)?  Are new
processors being made that still require that capability? or (in oe-core) is it
time to drop support?

Just because it's not in oe-core, doesn't mean it can't be in angstrom, or even
meta-oe as unique tunings for those architectures..

> Neither the AAPCS nor the wider EABI makes any attempt to cater for
> architectures earlier than v4 and I don't think OE-core needs to do so
> either.  It's not totally unimaginable that someone might wish to target
> OE-core at a v3 system but, if that ever happens, they can fill in the
> missing bits in an overlay.

Ya, I never expected we'd support anything older the v4... but there is more
variation in v4 then I had realized.

>> The confusion continues that people are expecting a package arch of "armv5t" 
>> to
>> be arbitrarily thumb or not thumb.. since the arch (to them) indicates that 
>> the
>> CPU is compatible with both thumb and ARM code.  That was not the intent of 
>> this
>> change.  Instead the _package architecture_ is designed to convey the ABI and
>> instruction set used when building the software in the package.
> 
> It's worth pointing out, just in case it isn't already obvious, that an
> individual package might contain a mixture of ARM and Thumb binaries,
> and an individual binary might contain a mixture of ARM-state and
> Thumb-state functions.  This is doubly true when static libraries are
> involved, of course.  Some compilers may (although GCC doesn't, today)
> even switch automatically between ARM-state and Thumb-state depending on
> their view of which is going to give the best results.

I didn't realize there were compilers that would switch states.. the others I
knew, but for the most part things are built on a package-level basis with a
single set of options for the whole package.  (There will always be exceptions
of course.)

> So, the distinction between "arm" and "thumb" binaries is always going
> to be a slightly blurry one and, although I can see the attraction of
> being able to label a particular package as "arm" or "thumb", it's more
> a question of picking points on a continuum than a binary switch.

Currently the switching point is on a recipe basis.  I'm sure we could make a
recipe that does both thumb and arm and do dynamic switching on a binary by
binary basis inside of a recipe.. but nothing that I am aware of does that
today.  I've also not seen any real-world use cases that point to this --
outside of custom application code that is being specifically tuned for a 
device.

>> This not only helps with debugging what someone is using, but also helps with
>> designing filesystems that may contain both arm and thumb code.  For example 
>> a
>> developer is building a device.. they have the requirements of "higher"
>> performance in there specific application, but maximum space savings 
>> everywhere
>> else.  They want to start with a binary package feed, NOT the build system.  
>> So
>> they will mix and match the armv5 and armv5t packages by choosing the smaller
>> packages for most things (usually thumb), and using the ARM instruction set
>> where they need performance (usually armv5 packages).
>>
>> ---
>>
>> So having a single value that simply switches the instruction set, without
>> changing the package arch violates the intent of the change.  An alternative
>> would be something like:
> 
> It's not entirely obvious to me that Thumb-ness is, in this sense,
> sufficiently special to deserve a distinct package architecture.  After
> all, one can already 

Re: [OE-core] [PATCH] feature-arm-thumb: respect ARM_INSTRUCTION_SET

2011-07-29 Thread Phil Blundell
On Fri, 2011-07-29 at 13:08 -0500, Mark Hatle wrote:
> Sorry I was gone much of yesterday and not able to comment.  I'm going to 
> break
> this down into the two problems that I see people having.
> 
> 1) "interworking".  I was recently told EABI requires interworking to be
> enabled, and in OE-core we only support EABI.  So we should always have the
> interworking enabled for the tunes that we support.
> 
> Is this correct, any objections?  If so, assume from this point forward
> interworking is always enabled and we only support (in oe-core) interworking
> capable ARM chips.

That's pretty much right though not 100% correct.  Although it is true
that the AAPCS (and by extension the EABI) effectively requires all
relocatable objects to be built with interworking on, there are special
provisions for translating BX to MOV during link edit and hence allowing
v4 CPUs to run executables which are non-interworking but otherwise
conformant with the EABI.  The effect of this is that, although v4 isn't
naturally an interworking-capable architecture, it is nonetheless
grandfathered into the EABI universe.  See the remarks in section 5.6 of
ARM IHI 0042D.

And, pragmatically, there is a small but significant base of OE users on
v4 (not v4t) platforms and I don't think we want to do anything that
would disenfranchise them in OE-core.

Neither the AAPCS nor the wider EABI makes any attempt to cater for
architectures earlier than v4 and I don't think OE-core needs to do so
either.  It's not totally unimaginable that someone might wish to target
OE-core at a v3 system but, if that ever happens, they can fill in the
missing bits in an overlay.

> The confusion continues that people are expecting a package arch of "armv5t" 
> to
> be arbitrarily thumb or not thumb.. since the arch (to them) indicates that 
> the
> CPU is compatible with both thumb and ARM code.  That was not the intent of 
> this
> change.  Instead the _package architecture_ is designed to convey the ABI and
> instruction set used when building the software in the package.

It's worth pointing out, just in case it isn't already obvious, that an
individual package might contain a mixture of ARM and Thumb binaries,
and an individual binary might contain a mixture of ARM-state and
Thumb-state functions.  This is doubly true when static libraries are
involved, of course.  Some compilers may (although GCC doesn't, today)
even switch automatically between ARM-state and Thumb-state depending on
their view of which is going to give the best results.

So, the distinction between "arm" and "thumb" binaries is always going
to be a slightly blurry one and, although I can see the attraction of
being able to label a particular package as "arm" or "thumb", it's more
a question of picking points on a continuum than a binary switch.

> This not only helps with debugging what someone is using, but also helps with
> designing filesystems that may contain both arm and thumb code.  For example a
> developer is building a device.. they have the requirements of "higher"
> performance in there specific application, but maximum space savings 
> everywhere
> else.  They want to start with a binary package feed, NOT the build system.  
> So
> they will mix and match the armv5 and armv5t packages by choosing the smaller
> packages for most things (usually thumb), and using the ARM instruction set
> where they need performance (usually armv5 packages).
> 
> ---
> 
> So having a single value that simply switches the instruction set, without
> changing the package arch violates the intent of the change.  An alternative
> would be something like:

It's not entirely obvious to me that Thumb-ness is, in this sense,
sufficiently special to deserve a distinct package architecture.  After
all, one can already switch between -Os and -O99, or different -mtune
levels or no doubt many other things which influence code size and
performance without the package architecture changing.  I guess some
DISTROs might want to offer a smorgasbord kind of approach where every
binary is compiled in N different ways and packaged separately, but I
get the general sense that most distros will probably not want to do
that and perhaps it oughtn't to be the default behaviour.

(And of course, on another pragmatic point, it isn't by any means
universally true that ARM-state has better performance than Thumb-state
on real world systems.  There are a significant number of cases where
you get higher performance in Thumb-state than ARM-state.)

p.


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] feature-arm-thumb: respect ARM_INSTRUCTION_SET

2011-07-29 Thread Mark Hatle
Sorry I was gone much of yesterday and not able to comment.  I'm going to break
this down into the two problems that I see people having.

1) "interworking".  I was recently told EABI requires interworking to be
enabled, and in OE-core we only support EABI.  So we should always have the
interworking enabled for the tunes that we support.

Is this correct, any objections?  If so, assume from this point forward
interworking is always enabled and we only support (in oe-core) interworking
capable ARM chips.

2) The tune naming is confusing people.

Initial design was (tune name):

armv5 = armv5 class CPU, with ARM instructions, w/ interworking enabled
armv5t = armv5 class CPU, with thumb instructions, w/ interworking enabled

The output of "armv5" was a package with the arch of "armv5", output of "armv5t"
was similarly "armv5t".  Note, the package arch produced though is NOT the same
as the tune name, it just happens to be the same in these cases.  (We could
easily call the tune names "armv5t_nothumb" and "armv5t_thumb" and still have
package arch of "armv5" and "armv5t".)

The confusion continues that people are expecting a package arch of "armv5t" to
be arbitrarily thumb or not thumb.. since the arch (to them) indicates that the
CPU is compatible with both thumb and ARM code.  That was not the intent of this
change.  Instead the _package architecture_ is designed to convey the ABI and
instruction set used when building the software in the package.

This not only helps with debugging what someone is using, but also helps with
designing filesystems that may contain both arm and thumb code.  For example a
developer is building a device.. they have the requirements of "higher"
performance in there specific application, but maximum space savings everywhere
else.  They want to start with a binary package feed, NOT the build system.  So
they will mix and match the armv5 and armv5t packages by choosing the smaller
packages for most things (usually thumb), and using the ARM instruction set
where they need performance (usually armv5 packages).

---

So having a single value that simply switches the instruction set, without
changing the package arch violates the intent of the change.  An alternative
would be something like:

feature-arm-thumb.inc:>
TUNEVALID[thumb] = "Support using thumb instructions"
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb",
"${ARM_THUMB_M_OPT}", "", d)}"
ARM_THUMB_M_OPT = "${@['-mno-thumb',
'-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
OVERRIDES .= "${['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) ==
'thumb']}"

ARMPKGSFX_THUMB .= ${['', '_thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1)
== 'thumb']}"

TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -mno-thumb"

tune-armv5.inc:

DEFAULTTUNE ?= "armv5t"

ARMPKGARCH ?= "armv5t"

TUNEVALID[armv5t] = "Enable instructions for ARMv5"
TUNE_CONFLICTS[armv5t] = "armv4"
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv5t",
"-march=armv5t${ARMPKGSFX_DSP}", "", d)}"

ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5t", "dsp" ], "e",
"", d)}"

require conf/machine/include/arm/arch-armv4.inc
require conf/machine/include/arm/feature-arm-vfp.inc
require conf/machine/include/arm/feature-arm-thumb.inc

AVAILTUNES += "armv5t armv5te"
TUNE_FEATURES_tune-armv5t = "armv5 thumb"
TUNE_FEATURES_tune-armv5te = "armv5 dsp thumb"

(and some more lines for compatibility)

arch-arm.inc:

...

TUNE_PKGARCH = "${@d.getVar('ARMPKGARCH',
True)}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${ARMPKGSFX_THUMB}"



When you select the tune of "armv5t" you will get classic ARM instructions with
the ability to enable thumb via ARM_INSTRUCTION_SET = thumb.

When you switch into building thumb (or out of it) the two produced package arch
will be:

armv5t
armv5t_thumb

This allows per packages switching using the ARM_INSTRUCTION_SET instead of
specific tune features, and still preserves the design of capturing the ABI &
instruction set in the package arch.

If this is reasonable, I'll work on a more complete patch set for this.

--Mark

On 7/29/11 12:10 PM, Martin Jansa wrote:
> On Fri, Jul 29, 2011 at 07:04:33PM +0200, Martin Jansa wrote:
>> Signed-off-by: Martin Jansa 
>> ---
>>  .../conf/machine/include/arm/feature-arm-thumb.inc |3 ++-
>>  1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc 
>> b/meta/conf/machine/include/arm/feature-arm-thumb.inc
>> index b580168..e7d392e 100644
>> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
>> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
>> @@ -5,7 +5,8 @@
>>  # but requires more instructions (140% for 70% smaller code) so may be
>>  # slower.
>>  TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
>> -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", 
>> "-mno-thumb", d)}"
>> +ARM_THUMB_M_OPT = "${@['-mno-thumb', 
>> '-

Re: [OE-core] [PATCH] feature-arm-thumb: respect ARM_INSTRUCTION_SET

2011-07-29 Thread Martin Jansa
On Fri, Jul 29, 2011 at 07:04:33PM +0200, Martin Jansa wrote:
> Signed-off-by: Martin Jansa 
> ---
>  .../conf/machine/include/arm/feature-arm-thumb.inc |3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc 
> b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> index b580168..e7d392e 100644
> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> @@ -5,7 +5,8 @@
>  # but requires more instructions (140% for 70% smaller code) so may be
>  # slower.
>  TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
> -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", 
> "-mno-thumb", d)}"
> +ARM_THUMB_M_OPT = "${@['-mno-thumb', 
> '-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
> +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", 
> "${ARM_THUMB_M_OPT}", "${ARM_THUMB_M_OPT}", d)}"
>  OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", 
> d)}"
>  
>  # Note armv7 will hit on armv7a as well
> -- 
> 1.7.6
> 

This seems to work, but be aware that _armv4t override is not respected
anymore :/.

I was using something like this to set default ARM_INSTRUCTION_SET from
distro config:

PREFERRED_ARM_INSTRUCTION_SET_armv4t   = "thumb"
PREFERRED_ARM_INSTRUCTION_SET_armv5te  = "thumb"
PREFERRED_ARM_INSTRUCTION_SET_armv5teb = "thumb"
PREFERRED_ARM_INSTRUCTION_SET ?=  "arm"
ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}"

but from -e output it's clear that it's ignored
# PREFERRED_ARM_INSTRUCTION_SET_armv4t=thumb
PREFERRED_ARM_INSTRUCTION_SET_armv4t="thumb"
# PREFERRED_ARM_INSTRUCTION_SET=arm
PREFERRED_ARM_INSTRUCTION_SET="arm"
# PREFERRED_ARM_INSTRUCTION_SET_armv5te=thumb
PREFERRED_ARM_INSTRUCTION_SET_armv5te="thumb"
# PREFERRED_ARM_INSTRUCTION_SET_armv5teb=thumb
PREFERRED_ARM_INSTRUCTION_SET_armv5teb="thumb"
# ARM_INSTRUCTION_SET=${PREFERRED_ARM_INSTRUCTION_SET}
ARM_INSTRUCTION_SET="arm"

Regards,
-- 
Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com


signature.asc
Description: Digital signature
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] [PATCH] feature-arm-thumb: respect ARM_INSTRUCTION_SET

2011-07-29 Thread Martin Jansa
Signed-off-by: Martin Jansa 
---
 .../conf/machine/include/arm/feature-arm-thumb.inc |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc 
b/meta/conf/machine/include/arm/feature-arm-thumb.inc
index b580168..e7d392e 100644
--- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -5,7 +5,8 @@
 # but requires more instructions (140% for 70% smaller code) so may be
 # slower.
 TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", 
"-mno-thumb", d)}"
+ARM_THUMB_M_OPT = "${@['-mno-thumb', 
'-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", 
"${ARM_THUMB_M_OPT}", "${ARM_THUMB_M_OPT}", d)}"
 OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
 
 # Note armv7 will hit on armv7a as well
-- 
1.7.6


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] [PATCH] feature-arm-thumb: Take ARM_INSTRUCTION_SET into account to decide thumb mode

2011-07-29 Thread Khem Raj
This will decouple the compiling in thumb mode from having thumb
capable cores.

Signed-off-by: Khem Raj 
---
 .../conf/machine/include/arm/feature-arm-thumb.inc |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc 
b/meta/conf/machine/include/arm/feature-arm-thumb.inc
index b580168..533eab9 100644
--- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -4,7 +4,10 @@
 # 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.
-TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
+TUNEVALID[thumb] = "Use thumb instructions instead of ARM if 
ARM_INSTRUCTION_SET != arm"
+ARM_THUMB_M_OPT = "${@['-mthumb', 
'-mno-thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) != 'arm']}"
+TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", 
"${ARM_THUMB_M_OPT}", "${ARM_THUMB_M_OPT}", d)}"
+
 TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", 
"-mno-thumb", d)}"
 OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
 
-- 
1.7.4.1


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] classes, recipes: Replace use of ARM_INSTRUCTION_SET with contruct using TUNE_FEATURES

2011-07-29 Thread Khem Raj

On 07/29/2011 09:39 AM, Martin Jansa wrote:

On Fri, Jul 29, 2011 at 07:59:31AM -0700, Khem Raj wrote:

Currently when using thumb feature all recipes can not be compiled in
thumb mode. Therefore we had ARM_INSTRUCTION_SET to force arm intruction
set even when thumb was global choice. With this patch we remove thumb
from tune features for these recipes. This will make sure that compiler
is not using thumb options to compile these recipes at all.

Signed-off-by: Khem Raj
---
  meta/classes/qt4e.bbclass  |2 +-
  meta/classes/qt4x11.bbclass|2 +-
  meta/conf/machine/include/tune-thumb.inc   |   32 
  meta/recipes-core/eglibc/eglibc.inc|4 +-
  meta/recipes-core/glib-2.0/glib.inc|4 ++-
  meta/recipes-core/glibc/glibc.inc  |4 ++-
  meta/recipes-core/glibc/glibc_2.10.1.bb|3 +-
  meta/recipes-core/uclibc/uclibc.inc|2 +-
  meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc   |3 +-
  .../xorg-xserver/xserver-kdrive.inc|4 ++-
  meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb  |3 +-
  .../gstreamer/gst-plugins-bad_0.10.21.bb   |3 +-
  meta/recipes-multimedia/libmad/libmad_0.15.1b.bb   |4 ++-
  meta/recipes-multimedia/tremor/tremor_20101121.bb  |4 ++-
  meta/recipes-qt/qt4/qt4_arch.inc   |3 +-
  meta/recipes-support/boost/boost-36.inc|4 ++-
  meta/recipes-support/gmp/gmp.inc   |3 +-
  meta/recipes-support/libgcrypt/libgcrypt.inc   |3 +-
  meta/recipes-support/liboil/liboil_0.3.17.bb   |3 +-
  19 files changed, 39 insertions(+), 51 deletions(-)
  delete mode 100644 meta/conf/machine/include/tune-thumb.inc


this causes ie eglibc not only to disable thumb but also to pass
-march=armv4 and look in wrong directory for toolchain.. which because
it's not filtering thumb is in armv4t-oe-linux-gnueabi

export PATH="
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/bin/armv4-oe-linux-gnueabi.gcc-cross-initial:
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/bin/armv4-oe-linux-gnueabi:
/OE/shr-core/tmp/sysroots/om-gta02/usr/bin/crossscripts:
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/sbin:
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/bin:
/OE/shr-core/tmp/sysroots/x86_64-linux/sbin:
/OE/shr-core/tmp/sysroots/x86_64-linux//bin:
/OE/shr-core/openembedded-core/scripts:
/OE/bin:
/usr/local/bin:
/usr/bin:
/bin:
/opt/bin:
/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1:
/OE/shr-core/openembedded-core/scripts"

simple forward of oe.dev arm-thumb.inc logic to arm-feature-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -5,7 +5,8 @@
  # but requires more instructions (140% for 70% smaller code) so may be
  # slower.
  TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", 
"-mno-thumb", d)}"
+ARM_THUMB_M_OPT = "${@['-mno-thumb', 
'-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "${ARM_THUMB_M_OPT}", 
"${ARM_THUMB_M_OPT}", d)}"

seems to work.. will send patch after more testing, but eglibc compiled fine 
now..


decoupling the -mthumb/-mno-thumb from thumb tune feature is right think 
to do.
yes this would be something on the lines I was thinking can work with 
minimal changes.





Regards,



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] arm tune files status summary

2011-07-29 Thread Khem Raj

On 07/29/2011 06:28 AM, Phil Blundell wrote:

There are quite a lot of different sub-threads going on at the moment
regarding the various breakages associated with the recent arm tuning
file patch.  Here's a summary of what I think are all the current issues
and their status.

1. bogus PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE} in bitbake.conf causing
rootfs construction to fail.

Paul and Koen both posted (essentially identical) patches for this and
it looks as though Paul's has been applied.  So, the original breakage
should be resolved but it isn't entirely clear what this line in
bitbake.conf was trying to accomplish in the first place.  I think
someone still needs to conduct an audit to establish whether there are
any circumstances where PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE} does
need setting to ${TARGET_ARCH} and, if so, make that happen.

2. endianness confusion in armv5/armv6 tune files.

I posted a patch for this.  It doesn't look like it's been applied yet
but it's in the archives for anybody who wants it.  Only big-endian
configs would be affected anyway and I think those are something of a
fringe pursuit.


I am testing this patch



3. eglibc unbuildable on qemuarm

This is happening because qemuarm selects arm926ejs tuning, which in
turn selects armv5te, and the current arrangement of tune files forces
Thumb-state on if you ask to tune for a T-variant architecture.  The old
"ARM_INSTRUCTION_SET" variable which used to override the ISA selection
seems not to be respected anymore.  This is unfortunate because there is
assembler code in eglibc which isn't Thumb-1 aware and hence can't be
built under -mthumb.

A short-term workaround would be to hack tune-arm926ejs.inc to select
the TUNE_FEATURES for armv5e rather than armv5te.  But this is clearly
not a good solution in general and, other than changing the underlying
policy of inferring ISA choice from architecture name, it's not obvious
what the right way of solving it is.

This particular issue causes sufficiently gross breakage that I would
have expected it to show up on the Yocto autobuilder run before the
patch was merged.  I'm not quite sure why it apparently didn't fail
there but maybe the autobuilder doesn't actually test qemuarm at
present.


I have posted a patch for this



4. can't build ARM-state code for ARMv4T architecture.

This is another facet of the above; there is currently no way to say
that you want to select -march=armv4t without also enabling -mthumb.
This makes it impossible to build interworking-capable ARM-state code
for v4T.


yeah this is kind of fundamental problem. We need to differentiate 
between having thumb feature and really using it.


5. cortex tuning not working

Various of the cortex files had a spelling mistake which would cause the
TUNE_FEATURES never to actually match anything.  This is a trivial fix
and I sent a patch for it yesterday.  I don't think it's been merged
yet.


I am testing this patch



6. distros no longer able to select ARM vs Thumb state either globally
or per package


My thinking is that default should always be ARM mode and then distros
can say TUNE_FEATURES += "usethumb" then tune infra can check for both
i.e. having thumb in machines and distros asking for it before adding
-mthumb to CCARGS


This is really another manifestation of the issue in #3.  But the point
here isn't so much that builds are failing, rather that we seem to have
lost the ability to have a single switch that the DISTRO can flip to
build the entire world (or individual packages) as Thumb rather than
ARM.  For Thumb-1 in particular the tradeoffs are sufficiently
complicated that I don't think there is ever going to be a globally
"right" answer.

I think that's all I know of.

p.



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] classes, recipes: Replace use of ARM_INSTRUCTION_SET with contruct using TUNE_FEATURES

2011-07-29 Thread Martin Jansa
On Fri, Jul 29, 2011 at 07:59:31AM -0700, Khem Raj wrote:
> Currently when using thumb feature all recipes can not be compiled in
> thumb mode. Therefore we had ARM_INSTRUCTION_SET to force arm intruction
> set even when thumb was global choice. With this patch we remove thumb
> from tune features for these recipes. This will make sure that compiler
> is not using thumb options to compile these recipes at all.
> 
> Signed-off-by: Khem Raj 
> ---
>  meta/classes/qt4e.bbclass  |2 +-
>  meta/classes/qt4x11.bbclass|2 +-
>  meta/conf/machine/include/tune-thumb.inc   |   32 
> 
>  meta/recipes-core/eglibc/eglibc.inc|4 +-
>  meta/recipes-core/glib-2.0/glib.inc|4 ++-
>  meta/recipes-core/glibc/glibc.inc  |4 ++-
>  meta/recipes-core/glibc/glibc_2.10.1.bb|3 +-
>  meta/recipes-core/uclibc/uclibc.inc|2 +-
>  meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc   |3 +-
>  .../xorg-xserver/xserver-kdrive.inc|4 ++-
>  meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb  |3 +-
>  .../gstreamer/gst-plugins-bad_0.10.21.bb   |3 +-
>  meta/recipes-multimedia/libmad/libmad_0.15.1b.bb   |4 ++-
>  meta/recipes-multimedia/tremor/tremor_20101121.bb  |4 ++-
>  meta/recipes-qt/qt4/qt4_arch.inc   |3 +-
>  meta/recipes-support/boost/boost-36.inc|4 ++-
>  meta/recipes-support/gmp/gmp.inc   |3 +-
>  meta/recipes-support/libgcrypt/libgcrypt.inc   |3 +-
>  meta/recipes-support/liboil/liboil_0.3.17.bb   |3 +-
>  19 files changed, 39 insertions(+), 51 deletions(-)
>  delete mode 100644 meta/conf/machine/include/tune-thumb.inc

this causes ie eglibc not only to disable thumb but also to pass 
-march=armv4 and look in wrong directory for toolchain.. which because
it's not filtering thumb is in armv4t-oe-linux-gnueabi

export PATH="
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/bin/armv4-oe-linux-gnueabi.gcc-cross-initial:
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/bin/armv4-oe-linux-gnueabi:
/OE/shr-core/tmp/sysroots/om-gta02/usr/bin/crossscripts:
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/sbin:
/OE/shr-core/tmp/sysroots/x86_64-linux/usr/bin:
/OE/shr-core/tmp/sysroots/x86_64-linux/sbin:
/OE/shr-core/tmp/sysroots/x86_64-linux//bin:
/OE/shr-core/openembedded-core/scripts:
/OE/bin:
/usr/local/bin:
/usr/bin:
/bin:
/opt/bin:
/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1:
/OE/shr-core/openembedded-core/scripts"

simple forward of oe.dev arm-thumb.inc logic to arm-feature-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -5,7 +5,8 @@
 # but requires more instructions (140% for 70% smaller code) so may be
 # slower.
 TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
-TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", 
"-mno-thumb", d)}"
+ARM_THUMB_M_OPT = "${@['-mno-thumb', 
'-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
+TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", 
"${ARM_THUMB_M_OPT}", "${ARM_THUMB_M_OPT}", d)}"

seems to work.. will send patch after more testing, but eglibc compiled fine 
now..


Regards,


signature.asc
Description: Digital signature
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [RFC BUG #1236 2/2] eglibc: Modify ldd script according to multilib config.

2011-07-29 Thread Phil Blundell
On Fri, 2011-07-29 at 22:57 +0800, Lianhao Lu wrote:
> + "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC5"],

That looks a bit weird to me.  Are you sure that's right?

p.



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] [PATCH] tune-xscale: fix xscale/xscale-be confusion

2011-07-29 Thread Dmitry Eremin-Solenikov
Currently tune-xscale.inc has options wrt. setting of xscale/xscale-be tunes.
Fix that.

Signed-off-by: Dmitry Eremin-Solenikov 
---
 meta/conf/machine/include/tune-xscale.inc |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/conf/machine/include/tune-xscale.inc 
b/meta/conf/machine/include/tune-xscale.inc
index 9fe9685..54f3727 100644
--- a/meta/conf/machine/include/tune-xscale.inc
+++ b/meta/conf/machine/include/tune-xscale.inc
@@ -10,7 +10,7 @@ TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5te} 
xscale"
 PACKAGE_EXTRA_ARCHS_tune-xscale = "${PACKAGE_EXTRA_ARCHS_tune-armv5te}"
 
 AVAILTUNES += "xscale-be"
-TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5teb} xscale"
+TUNE_FEATURES_tune-xscale-be = "${TUNE_FEATURES_tune-armv5teb} xscale-be"
 PACKAGE_EXTRA_ARCHS_tune-xscale-be = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb}"
 
 # webkit-gtk has alignment issues with double instructions on armv5 so
-- 
1.7.2.3


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/1] python-native: Fix a compiler finding issue

2011-07-29 Thread Tom Rini
On 07/28/2011 11:58 PM, Mei, Lei wrote:
> 
> 
>> -Original Message-
>> From: openembedded-core-boun...@lists.openembedded.org
>> [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of
>> Tom Rini
>> Sent: Friday, July 29, 2011 9:44 AM
>> To: openembedded-core@lists.openembedded.org
>> Subject: Re: [OE-core] [PATCH 1/1] python-native: Fix a compiler finding 
>> issue
>>
>> On 07/28/2011 06:15 PM, Mei, Lei wrote:
>>>
>>>
 -Original Message-
 From: openembedded-core-boun...@lists.openembedded.org
 [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf
>> Of
 Tom Rini
 Sent: Thursday, July 28, 2011 11:09 PM
 To: openembedded-core@lists.openembedded.org
 Subject: Re: [OE-core] [PATCH 1/1] python-native: Fix a compiler finding
>> issue

 On 07/28/2011 12:20 AM, Mei Lei wrote:
> The CC variable sometimes add option information after compiler name,
>> but
 python can't get the real compiler name if those information added.
> Fix this issue by dropping the option information when finding compiler
>> name.
>
> Signed-off-by: Mei Lei 

 I think this is going to cause problems when you must pass flags to gcc
 to have it work, eg 'gcc -m64'.
>>>
>>> This patch fixed your worried issue.
>>> The CC variable, sometimes like:  "x86_64-poky-linux-gcc -m64
>> --sysroot=/${TMPDIR}/sysroots/qemux86-64", contains flags information.
>>> This will lead to wrong compiler name "qemux86-64" rather than
>> "x86_64-poky-linux-gcc" when python finding the compiler name, so add this
>> patch to find the real gcc name.
>>
>> No, what I'm saying is I have a compiler that must be invoked as 'gcc
>> -m64' (which is what BUILD_CC is).  So, I think after saying that, the
>> right answer is to modify python to read the OE-specific BUILD_CC variable.
> 
> 
> I think I didn't describe this patch exactly before.
> 
> This patch is only for function runtime_library_dir_option, this function is 
> to detect which platform we are running and what compiler we used, then 
> decide what option information should be passed to compiler.
> 
> By default, our cross-compiler's name be recognized as "qemux86" rather than 
> " x86_64-poky-linux-gcc" in this function, this is wrong, this will induce a 
> wrong option information passed to x86_64-poky-linux-gcc and block the 
> compile process.
> 
> And function runtime_library_dir_option only return the option information, 
> so didn't influence compiler name in global.
> 
> By the way, I think BUILD_CC is host compiler name, not for target.

You're patching python-native, not python, which means the host python
and not the target python.

-- 
Tom Rini
Mentor Graphics Corporation

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] arm tune files status summary

2011-07-29 Thread Koen Kooi


Op 29 jul. 2011 om 15:28 heeft Phil Blundell  het volgende 
geschreven:

> There are quite a lot of different sub-threads going on at the moment
> regarding the various breakages associated with the recent arm tuning
> file patch.  Here's a summary of what I think are all the current issues
> and their status.
> 
> 1. bogus PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE} in bitbake.conf causing
> rootfs construction to fail.
> 
> Paul and Koen both posted (essentially identical) patches for this and
> it looks as though Paul's has been applied.  So, the original breakage
> should be resolved but it isn't entirely clear what this line in
> bitbake.conf was trying to accomplish in the first place.  I think
> someone still needs to conduct an audit to establish whether there are
> any circumstances where PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE} does
> need setting to ${TARGET_ARCH} and, if so, make that happen.
> 
> 2. endianness confusion in armv5/armv6 tune files.
> 
> I posted a patch for this.  It doesn't look like it's been applied yet
> but it's in the archives for anybody who wants it.  Only big-endian
> configs would be affected anyway and I think those are something of a
> fringe pursuit.
> 
> 3. eglibc unbuildable on qemuarm
> 
> This is happening because qemuarm selects arm926ejs tuning, which in
> turn selects armv5te, and the current arrangement of tune files forces
> Thumb-state on if you ask to tune for a T-variant architecture.  The old
> "ARM_INSTRUCTION_SET" variable which used to override the ISA selection
> seems not to be respected anymore.  This is unfortunate because there is
> assembler code in eglibc which isn't Thumb-1 aware and hence can't be
> built under -mthumb.
> 
> A short-term workaround would be to hack tune-arm926ejs.inc to select
> the TUNE_FEATURES for armv5e rather than armv5te.  But this is clearly
> not a good solution in general and, other than changing the underlying
> policy of inferring ISA choice from architecture name, it's not obvious
> what the right way of solving it is.
> 
> This particular issue causes sufficiently gross breakage that I would
> have expected it to show up on the Yocto autobuilder run before the
> patch was merged.  I'm not quite sure why it apparently didn't fail
> there but maybe the autobuilder doesn't actually test qemuarm at
> present.
> 
> 4. can't build ARM-state code for ARMv4T architecture.
> 
> This is another facet of the above; there is currently no way to say
> that you want to select -march=armv4t without also enabling -mthumb.
> This makes it impossible to build interworking-capable ARM-state code
> for v4T.
> 
> 5. cortex tuning not working
> 
> Various of the cortex files had a spelling mistake which would cause the
> TUNE_FEATURES never to actually match anything.  This is a trivial fix
> and I sent a patch for it yesterday.  I don't think it's been merged
> yet.
> 
> 6. distros no longer able to select ARM vs Thumb state either globally
> or per package
> 
> This is really another manifestation of the issue in #3.  But the point
> here isn't so much that builds are failing, rather that we seem to have
> lost the ability to have a single switch that the DISTRO can flip to
> build the entire world (or individual packages) as Thumb rather than
> ARM.  For Thumb-1 in particular the tradeoffs are sufficiently
> complicated that I don't think there is ever going to be a globally
> "right" answer.
> 
> I think that's all I know of.

This matches my observations, thanks for summarizing all this!



> 
> p.
> 
> 
> 
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] [PATCH] classes, recipes: Replace use of ARM_INSTRUCTION_SET with contruct using TUNE_FEATURES

2011-07-29 Thread Khem Raj
Currently when using thumb feature all recipes can not be compiled in
thumb mode. Therefore we had ARM_INSTRUCTION_SET to force arm intruction
set even when thumb was global choice. With this patch we remove thumb
from tune features for these recipes. This will make sure that compiler
is not using thumb options to compile these recipes at all.

Signed-off-by: Khem Raj 
---
 meta/classes/qt4e.bbclass  |2 +-
 meta/classes/qt4x11.bbclass|2 +-
 meta/conf/machine/include/tune-thumb.inc   |   32 
 meta/recipes-core/eglibc/eglibc.inc|4 +-
 meta/recipes-core/glib-2.0/glib.inc|4 ++-
 meta/recipes-core/glibc/glibc.inc  |4 ++-
 meta/recipes-core/glibc/glibc_2.10.1.bb|3 +-
 meta/recipes-core/uclibc/uclibc.inc|2 +-
 meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc   |3 +-
 .../xorg-xserver/xserver-kdrive.inc|4 ++-
 meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb  |3 +-
 .../gstreamer/gst-plugins-bad_0.10.21.bb   |3 +-
 meta/recipes-multimedia/libmad/libmad_0.15.1b.bb   |4 ++-
 meta/recipes-multimedia/tremor/tremor_20101121.bb  |4 ++-
 meta/recipes-qt/qt4/qt4_arch.inc   |3 +-
 meta/recipes-support/boost/boost-36.inc|4 ++-
 meta/recipes-support/gmp/gmp.inc   |3 +-
 meta/recipes-support/libgcrypt/libgcrypt.inc   |3 +-
 meta/recipes-support/liboil/liboil_0.3.17.bb   |3 +-
 19 files changed, 39 insertions(+), 51 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-thumb.inc

diff --git a/meta/classes/qt4e.bbclass b/meta/classes/qt4e.bbclass
index 670605b..ab91ab3 100644
--- a/meta/classes/qt4e.bbclass
+++ b/meta/classes/qt4e.bbclass
@@ -15,4 +15,4 @@ export OE_QMAKE_EXTRA_MODULES = "network"
 EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=${QT_LIBINFIX} "
 
 # Qt4 uses atomic instructions not supported in thumb mode
-ARM_INSTRUCTION_SET = "arm"
+TUNE_FEATURES := "${@oe_filter_out('thumb', '${TUNE_FEATURES}', d)}"
diff --git a/meta/classes/qt4x11.bbclass b/meta/classes/qt4x11.bbclass
index abb1d9d..3704b48 100644
--- a/meta/classes/qt4x11.bbclass
+++ b/meta/classes/qt4x11.bbclass
@@ -6,4 +6,4 @@ QT_DIR_NAME = "qt4"
 QT_LIBINFIX = ""
 
 # Qt4 uses atomic instructions not supported in thumb mode
-ARM_INSTRUCTION_SET = "arm"
+TUNE_FEATURES := "${@oe_filter_out('thumb', '${TUNE_FEATURES}', d)}"
diff --git a/meta/conf/machine/include/tune-thumb.inc 
b/meta/conf/machine/include/tune-thumb.inc
deleted file mode 100644
index 9f6ce95..000
--- a/meta/conf/machine/include/tune-thumb.inc
+++ /dev/null
@@ -1,32 +0,0 @@
-#tune file for thumb instructions
-
-ARM_INSTRUCTION_SET ?= "arm"
-# "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.
-
-OVERRIDE_THUMB = "${@['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 
1) == 'thumb']}"
-OVERRIDE_INTERWORK = "${@['', 
':thumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
-OVERRIDES .= "${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}"
-
-#Compiler and linker options for application code and kernel code.  These
-#options ensure that the compiler has the correct settings for the selected
-#instruction set and interworking.
-ARM_INTERWORK_M_OPT = "${@['-mno-thumb-interwork', 
'-mthumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}"
-ARM_THUMB_M_OPT = "${@['-mno-thumb', 
'-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
-
-#
-TUNE_CCARGS +=  "${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}"
-TARGET_CC_KERNEL_ARCH  += "-mno-thumb-interwork -mno-thumb"
-
diff --git a/meta/recipes-core/eglibc/eglibc.inc 
b/meta/recipes-core/eglibc/eglibc.inc
index 1b2e630..2adcd05 100644
--- a/meta/recipes-core/eglibc/eglibc.inc
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -33,8 +33,6 @@ LEAD_SONAME = "libc.so"
 GLIBC_EXTRA_OECONF ?= ""
 INHIBIT_DEFAULT_DEPS = "1"
 
-ARM_INSTRUCTION_SET = "arm"
-
 # eglibc uses PARALLELMFLAGS variable to pass parallel build info so transfer
 # PARALLEL_MAKE into PARALLELMFLAGS and empty out PARALLEL_MAKE
 EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}""
@@ -48,3 +46,5 @@ do_configure_prepend() {
sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash

[OE-core] [RFC BUG #1236 0/2] Modify ldd script for multilib.

2011-07-29 Thread Lianhao Lu
This is part of the BUG #1236 fixing. Current there seems no way to get the
dynamic loader(ld.so) names for all the ABIs configured in the multilib 
configuration during runtime. So we put the ld.so names in the dictionary 
"ld_info_all" in the file eglibc-ld.inc. This dictionary is indexed by the 
TUNENAME. To support a new ABI, new entry should be added into this dictionary 
along with the new ABI's TUNENAME.

The information in ld_info_all can be used for both ldd script, and the 
KNOWN_INTERPRETER_NAMES in the file ldconfig.h (which has not been done yet).

The following changes since commit f94b781695cd8fa387daff16ecbf3987a0883018:
  Bruce Ashfield (1):
poky.conf: explicitly referenced preferred linux-yocto version

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib llub/bug1236
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=llu/1236

Lianhao Lu (2):
  utils.bbclass/multilib.conf: Added misc supporting functions.
  eglibc: Modify ldd script according to multilib config.

 meta/classes/utils.bbclass  |   35 
 meta/conf/bitbake.conf  |1 +
 meta/conf/multilib.conf |6 +++-
 meta/recipes-core/eglibc/eglibc-ld.inc  |   53 +++
 meta/recipes-core/eglibc/eglibc.inc |1 +
 meta/recipes-core/eglibc/eglibc_2.13.bb |6 +++-
 6 files changed, 100 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-core/eglibc/eglibc-ld.inc


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] [RFC BUG #1236 2/2] eglibc: Modify ldd script according to multilib config.

2011-07-29 Thread Lianhao Lu
Part fix of [BUGID #1236].

1. Collect all the values for RTLDLIST for the current multilib
configuration to modify the ldd scripts.

2. Collect all the values for KNOWN_INTERPRETER_NAMES for the current
multilib configuration.

Signed-off-by: Lianhao Lu 
---
 meta/recipes-core/eglibc/eglibc-ld.inc  |   53 +++
 meta/recipes-core/eglibc/eglibc.inc |1 +
 meta/recipes-core/eglibc/eglibc_2.13.bb |6 +++-
 3 files changed, 59 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-core/eglibc/eglibc-ld.inc

diff --git a/meta/recipes-core/eglibc/eglibc-ld.inc 
b/meta/recipes-core/eglibc/eglibc-ld.inc
new file mode 100644
index 000..ad60964
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-ld.inc
@@ -0,0 +1,53 @@
+def ld_append_if_tune_exists(d, infos, dict):
+   tune = d.getVar("DEFAULTTUNE", True) or ""
+   libdir = d.getVar("base_libdir", True) or ""
+   if dict.has_key(tune):
+   infos['ldconfig'].add('{ "' + libdir + '/' + dict[tune][0] + 
'",' + dict[tune][1] + ' }')
+   infos['lddrewrite'].add(libdir+'/'+dict[tune][0])
+
+def eglibc_dl_info(d):
+   ld_info_all = {
+   "mips": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mipsel": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64el-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64el": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64el-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "mips64el-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "powerpc": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "powerpc-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
+   "powerpc64": ["ld64.so.1", "FLAG_ELF_LIBC6"],
+   "powerpc64-nf": ["ld64.so.1", "FLAG_ELF_LIBC6"],
+   "core2": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
+   "core2-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
+   "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC5"],
+   "x86-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
+   "i586": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
+   }
+
+   infos = {'ldconfig':set(), 'lddrewrite':set()}
+   ld_append_if_tune_exists(d, infos, ld_info_all)
+   variants = d.getVar("MULTILIB_VARIANTS", True) or ""
+   for item in variants.split():
+   localdata = bb.data.createCopy(d)
+   #Fix ME. OVERRIDES not work, we have to set DEFAULTTUNE to 
TUNENAME
+   #overrides = localdata.getVar("OVERRIDES", False) + 
":virtclass-multilib-" + item
+   #localdata.setVar("OVERRIDES", overrides)
+   if localdata.getVar("BBEXTENDVARIANT", True) == item:
+   tunename=localdata.getVar("TUNENAME", False) or ""
+   else:
+   
tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or ""
+   if tunename != "":
+   localdata.setVar("DEFAULTTUNE", tunename)
+   ld_append_if_tune_exists(localdata, infos, ld_info_all)
+   
+   infos['ldconfig'] = ' '.join(infos['ldconfig'])
+   infos['lddrewrite'] = ' '.join(infos['lddrewrite'])
+   return infos
+
+ALL_KNOWN_INTERPRETER_NAMES = "${@eglibc_dl_info(d)['ldconfig']}"
+RTLDLIST = "${@eglibc_dl_info(d)['lddrewrite']}"
diff --git a/meta/recipes-core/eglibc/eglibc.inc 
b/meta/recipes-core/eglibc/eglibc.inc
index 1b2e630..0ed4359 100644
--- a/meta/recipes-core/eglibc/eglibc.inc
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -1,4 +1,5 @@
 require eglibc-common.inc
+require eglibc-ld.inc
 
 STAGINGCC = "gcc-cross-intermediate"
 STAGINGCC_virtclass-nativesdk = "gcc-crosssdk-intermediate"
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb 
b/meta/recipes-core/eglibc/eglibc_2.13.bb
index 41fe7c7..b1bfbf1 100644
--- a/meta/recipes-core/eglibc/eglibc_2.13.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.13.bb
@@ -3,7 +3,7 @@ require eglibc.inc
 SRCREV = "14157"
 
 DEPENDS += "gperf-native"
-PR = "r9"
+PR = "r10"
 PR_append = "+svnr${SRCPV}"
 
 EGLIBC_BRANCH="eglibc-2_13"
@@ -199,6 +199,10 @@ do_compile () {
rpcgen -h $r -o $h || oewarn "unable to generate header 
for $r"
done
)
+
+   echo "Adjust dynamic loader list to ${EGLIBC_DYNAMIC_LOADERS}"
+   [ -z "${RTLDLIST}" ] && return
+   sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\).*$#\1"${RTLDLIST}"#'
 }
 
 require eglibc-package.inc
-- 
1.7.0.4


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] [RFC BUG #1236 1/2] utils.bbclass/multilib.conf: Added misc supporting functions.

2011-07-29 Thread Lianhao Lu
1. Added variable MULTILIB_VARIANTS to store all the instance variants
for multilib extend.

2. Added function all_multilib_tune_values to collect the variable
values for all multilib instance.

Signed-off-by: Lianhao Lu 
---
 meta/classes/utils.bbclass |   35 +++
 meta/conf/bitbake.conf |1 +
 meta/conf/multilib.conf|6 +-
 3 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index 8c3a9b8..f8adaea 100644
--- a/meta/classes/utils.bbclass
+++ b/meta/classes/utils.bbclass
@@ -341,3 +341,38 @@ def base_set_filespath(path, d):
for o in overrides.split(":"):
filespath.append(os.path.join(p, o))
return ":".join(filespath)
+
+def extend_variants(d, var, extend, delim=':'):
+   """Return a string of all bb class extend variants for the given 
extend"""
+   variants = []
+   whole = d.getVar(var, True) or ""
+   for ext in whole.split():
+   eext = ext.split(delim)
+   if len(eext) > 1 and eext[0] == extend:
+   variants.append(eext[1])
+   return " ".join(variants)
+
+def all_multilib_tune_values(d, var, unique=True):
+   """Return a string of all ${var} in all multilib tune configuration"""
+   values = []
+   value = d.getVar(var, True) or ""
+   if value != "":
+   values.append(value)
+   variants = d.getVar("MULTILIB_VARIANTS", True) or ""
+   for item in variants.split():
+   localdata = bb.data.createCopy(d)
+   #Fix ME. OVERRIDES not work, we have to set DEFAULTTUNE to 
TUNENAME
+   #overrides = localdata.getVar("OVERRIDES", False) + 
":virtclass-multilib-" + item
+   #localdata.setVar("OVERRIDES", overrides)
+   if localdata.getVar("BBEXTENDVARIANT", True) == item:
+   tunename=localdata.getVar("TUNENAME", False) or ""
+   else:
+   
tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or ""
+   if tunename != "":
+   localdata.setVar("DEFAULTTUNE", tunename)
+   value = localdata.getVar(var, True) or ""
+   if value != "":
+   values.append(value)
+   if unique:
+   values = set(values)
+   return " ".join(values)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 6e109ec..bcff50e 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -736,3 +736,4 @@ BB_HASHTASK_WHITELIST ?= 
"(.*-cross$|.*-native$|.*-cross-initial$|.*-cross-inter
 BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR 
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER 
FILESPATH USERNAME STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE"
 
 MLPREFIX ??= ""
+MULTILIB_VARIANTS ??= ""
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index 894b7a5..60760df 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -1,6 +1,11 @@
 
 baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) or 
'INVALID'), True) or 'lib'}"
 
+MULTILIB_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}"
+
+TUNENAME_virtclass-multilib-lib64 ?= "x86-64"
+TUNENAME_virtclass-multilib-lib32 ?= "x86"
+
 MULTILIBS ??= "multilib:lib32"
 BBCLASSEXTEND_append_pn-linux-libc-headers = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-eglibc-initial = " ${MULTILIBS}"
@@ -21,4 +26,3 @@ BBCLASSEXTEND_append_pn-bash = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-ncurses = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-expat = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-eglibc-locale = " ${MULTILIBS}"
-
-- 
1.7.0.4


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] sanity.bbclass: Add sanity check that TUNE_PKGARCH appears in PACKAGE_ARCHS

2011-07-29 Thread Kumar Gala

On Jul 28, 2011, at 10:07 PM, Saul Wold wrote:

> On 07/28/2011 06:57 PM, Kumar Gala wrote:
>> 
>> On Jul 28, 2011, at 7:41 PM, Saul Wold wrote:
>> 
>>> On 07/28/2011 05:07 PM, Kumar Gala wrote:
 Its possible we get duplications if we explicity add TUNE_PKGARCH to
 PACKAGE_ARCHS so instead just add a sanity check to verify it.
 
 Signed-off-by: Kumar Gala
 ---
  meta/classes/sanity.bbclass |   10 +-
  1 files changed, 9 insertions(+), 1 deletions(-)
 
 diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
 index b054146..999e15d 100644
 --- a/meta/classes/sanity.bbclass
 +++ b/meta/classes/sanity.bbclass
 @@ -375,8 +375,10 @@ def check_sanity(e):
  elif oeroot.find (' ') != -1:
  messages = messages + "Error, you have a space in your COREBASE 
 directory path. Please move the installation to a directory which doesn't 
 include a space."
 
 -# Check that we don't have duplicate entries in PACKAGE_ARCHS
 +# Check that we don't have duplicate entries in PACKAGE_ARCHS&   that 
 TUNE_PKGARCH is in PACKAGE_ARCHS
  pkgarchs = data.getVar('PACKAGE_ARCHS', e.data, True)
 +tunepkg = data.getVar('TUNE_PKGARCH', e.data, True)
 +tunefound = False
  seen = {}
  dups = []
 
 @@ -385,9 +387,15 @@ def check_sanity(e):
dups.append(pa)
else:
seen[pa] = 1
 +  if pa == tunepkg:
 +  tunefound = True
 +
  if len(dups):
 messages = messages + "Error, the PACKAGE_ARCHS variable contains 
 duplicates. The following archs are listed more than once: %s" % " 
 ".join(dups)
 
>>> Kumar,
>>> 
>>> Thanks for the patch, some questions.
>>> 
>>> Is this correct, do you still want to report the error, if there is a dup?
>>> 
>>> Would it not just be better to just drop the dup if it is the TUNE_PKGARCH?
>> 
>> I wasn't sure how to drop the dup. :)
>> 
>> If there is a way to uniq PACKAGE_ARCHS that would be fine
>> 
> Would this be what your looking for, it "uniq"s only the tunepkg value.
> 
> -   if seen.get(pa, 0) == 1:
> +   if pa == tunepkg:
> +   tunefound = True
> +if seen.get(pa, 0) == 1:
> +pkgarchs.remove(pa)
> +   elif seen.get(pa, 0) == 1:
>dups.append(pa)
>else:
>seen[pa] = 1
> -   if pa == tunepkg:
> -   tunefound = True

No, I don't thing that's right.  TUNE_PKGARCH is a singleton.  The other check 
was to make sure that we didn't have ANY duplicates in PACKAGE_ARCHS.  I think 
that is still valid as the code stands.

- k
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] arm tune files status summary

2011-07-29 Thread Phil Blundell
There are quite a lot of different sub-threads going on at the moment
regarding the various breakages associated with the recent arm tuning
file patch.  Here's a summary of what I think are all the current issues
and their status.

1. bogus PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE} in bitbake.conf causing
rootfs construction to fail.

Paul and Koen both posted (essentially identical) patches for this and
it looks as though Paul's has been applied.  So, the original breakage
should be resolved but it isn't entirely clear what this line in
bitbake.conf was trying to accomplish in the first place.  I think
someone still needs to conduct an audit to establish whether there are
any circumstances where PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE} does
need setting to ${TARGET_ARCH} and, if so, make that happen.

2. endianness confusion in armv5/armv6 tune files.

I posted a patch for this.  It doesn't look like it's been applied yet
but it's in the archives for anybody who wants it.  Only big-endian
configs would be affected anyway and I think those are something of a
fringe pursuit.

3. eglibc unbuildable on qemuarm

This is happening because qemuarm selects arm926ejs tuning, which in
turn selects armv5te, and the current arrangement of tune files forces
Thumb-state on if you ask to tune for a T-variant architecture.  The old
"ARM_INSTRUCTION_SET" variable which used to override the ISA selection
seems not to be respected anymore.  This is unfortunate because there is
assembler code in eglibc which isn't Thumb-1 aware and hence can't be
built under -mthumb.

A short-term workaround would be to hack tune-arm926ejs.inc to select
the TUNE_FEATURES for armv5e rather than armv5te.  But this is clearly
not a good solution in general and, other than changing the underlying
policy of inferring ISA choice from architecture name, it's not obvious
what the right way of solving it is.

This particular issue causes sufficiently gross breakage that I would
have expected it to show up on the Yocto autobuilder run before the
patch was merged.  I'm not quite sure why it apparently didn't fail
there but maybe the autobuilder doesn't actually test qemuarm at
present.

4. can't build ARM-state code for ARMv4T architecture.

This is another facet of the above; there is currently no way to say
that you want to select -march=armv4t without also enabling -mthumb.
This makes it impossible to build interworking-capable ARM-state code
for v4T.

5. cortex tuning not working

Various of the cortex files had a spelling mistake which would cause the
TUNE_FEATURES never to actually match anything.  This is a trivial fix
and I sent a patch for it yesterday.  I don't think it's been merged
yet.

6. distros no longer able to select ARM vs Thumb state either globally
or per package

This is really another manifestation of the issue in #3.  But the point
here isn't so much that builds are failing, rather that we seem to have
lost the ability to have a single switch that the DISTRO can flip to
build the entire world (or individual packages) as Thumb rather than
ARM.  For Thumb-1 in particular the tradeoffs are sufficiently
complicated that I don't think there is ever going to be a globally
"right" answer.

I think that's all I know of.

p.



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/3] Add ARM tune file overhaul based largely on work from Mark Hatle

2011-07-29 Thread Koen Kooi


Op 29 jul. 2011 om 09:25 heeft Phil Blundell  het volgende 
geschreven:

> On Thu, 2011-07-28 at 22:59 -0700, Khem Raj wrote:
>> here I guess we have to say AVAILTUNES += "arm920t arm920"
>> where arm920 is arm mode and 920t is thumb mode. but anyway I would 
>> prefer that thumb is optionally added provided user asked for it
>> through DISTRO/MACHINE features then we should first make sure
>> that selected machine has thumb feature and if yes for both then we 
>> should enable -mthumb compiler option which now it enable when thumb 
>> appears in TUNE_FEATURES
> 
> I don't think we want to go down the road of inventing CPU names for
> ARM-state variants of Thumb-capable cores.  (In other words, we
> shouldn't start putting things like "arm920" in AVAILTUNES when there
> isn't actually a core named arm920.)
> 
> Fundamentally I think you're right that the choice between ARM-state and
> Thumb-state (for t1 at least) ought to be under the control of the
> DISTRO and not selected purely on the basis of the hardware
> capabilities.  For t2 it is a bit less of a clear-cut issue but, if
> there are genuinely people making ARMv7 cores with the Thumb decoder
> removed, I guess we need to have that same switch there as well

Another issue is silicon bugs on early a8 revisions, but gcc and linux might 
have enough workarounds nowadays




> 
> p.
> 
> 
> 
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] eglibc: unify eglibc-utils/${PN}-utils and remove PACKAGES from eglibc.inc

2011-07-29 Thread Martin Jansa
On Fri, Jul 29, 2011 at 09:17:31AM +0200, Martin Jansa wrote:
> * PACKAGES were defined in eglibc.inc as well as eglibc-package.inc, 
> definition
>   from eglibc.inc was overriden from recipes including eglibc.inc only
> * 37ff0fea8f7180b1a9d91d24dfe1735730427497 changed RPROVIDES_eglibc-utils,
>   but ie FILES_ were still using eglibc-utils instead of ${PN}-utils, unify
>   all eglibc-utils

BTW: there is still problem with ie
RPROVIDES_${PN}-utils = "glibc-utils"
leading to
ERROR: Trying to resolve runtime dependency glibc-utils resulted in conflicting 
PREFERRED_PROVIDER entries being found.
The providers found were: 
['virtual:nativesdk:/OE/shr-core/openembedded-core/meta/recipes-core/eglibc/eglibc_2.13.bb',
 '/OE/shr-core/openembedded-core/meta/recipes-core/eglibc/eglibc_2.13.bb']
The PREFERRED_PROVIDER entries resulting in this conflict were: 
['PREFERRED_PROVIDER_virtual/libc-nativesdk = eglibc-nativesdk', 
'PREFERRED_PROVIDER_virtual/libc = eglibc']
NOTE: multiple providers are available for runtime glibc-utils (eglibc, 
eglibc-nativesdk, external-csl-toolchain, external-poky-toolchain)
NOTE: consider defining a PREFERRED_PROVIDER entry to match glibc-utils

now with glibc recipes removed, do we need to RPROVIDE this or can we fix 
recipes 
RDEPENDing on glibc-utils to use eglibc-utils directly?

otherwise we should fix right side to use ${PN/eglibc/glibc} to keep
eglibc-nativesdk from providing glibc-utils (glibc-nativesdk-utils only).

Regards,

-- 
Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com


signature.asc
Description: Digital signature
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/3] Add ARM tune file overhaul based largely on work from Mark Hatle

2011-07-29 Thread Phil Blundell
On Thu, 2011-07-28 at 22:59 -0700, Khem Raj wrote:
> here I guess we have to say AVAILTUNES += "arm920t arm920"
> where arm920 is arm mode and 920t is thumb mode. but anyway I would 
> prefer that thumb is optionally added provided user asked for it
> through DISTRO/MACHINE features then we should first make sure
> that selected machine has thumb feature and if yes for both then we 
> should enable -mthumb compiler option which now it enable when thumb 
> appears in TUNE_FEATURES

I don't think we want to go down the road of inventing CPU names for
ARM-state variants of Thumb-capable cores.  (In other words, we
shouldn't start putting things like "arm920" in AVAILTUNES when there
isn't actually a core named arm920.)

Fundamentally I think you're right that the choice between ARM-state and
Thumb-state (for t1 at least) ought to be under the control of the
DISTRO and not selected purely on the basis of the hardware
capabilities.  For t2 it is a bit less of a clear-cut issue but, if
there are genuinely people making ARMv7 cores with the Thumb decoder
removed, I guess we need to have that same switch there as well.

p.



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


[OE-core] [PATCH] eglibc: unify eglibc-utils/${PN}-utils and remove PACKAGES from eglibc.inc

2011-07-29 Thread Martin Jansa
* PACKAGES were defined in eglibc.inc as well as eglibc-package.inc, definition
  from eglibc.inc was overriden from recipes including eglibc.inc only
* 37ff0fea8f7180b1a9d91d24dfe1735730427497 changed RPROVIDES_eglibc-utils,
  but ie FILES_ were still using eglibc-utils instead of ${PN}-utils, unify
  all eglibc-utils

Signed-off-by: Martin Jansa 
---
 meta/recipes-core/eglibc/eglibc-package.inc |8 
 meta/recipes-core/eglibc/eglibc.inc |2 --
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/meta/recipes-core/eglibc/eglibc-package.inc 
b/meta/recipes-core/eglibc/eglibc-package.inc
index 7646ea4..4de882e 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -65,11 +65,11 @@ FILES_libsotruss${PKGSUFFIX} = 
"${libdir}/audit/sotruss-lib.so"
 FILES_eglibc-dev_append += "${bindir}/rpcgen ${libdir}/*.a \
${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal"
 FILES_nscd${PKGSUFFIX} = "${sbindir}/nscd*"
-FILES_eglibc-utils = "${bindir}/* ${sbindir}/*"
+FILES_${PN}-utils = "${bindir}/* ${sbindir}/*"
 FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
 FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
 RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
-RDEPENDS_eglibc-utils += "bash"
+RDEPENDS_${PN}-utils += "bash"
 FILES_eglibc-pcprofile = "${base_libdir}/libpcprofile.so"
 FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db.so.* 
${base_libdir}/libthread_db-*.so"
 RPROVIDES_eglibc-dev += "libc-dev"
@@ -82,8 +82,8 @@ SUMMARY_eglibc-extra-nss = "hesiod, NIS and NIS+ nss 
libraries"
 DESCRIPTION_eglibc-extra-nss = "eglibc: nis, nisplus and hesiod search 
services."
 SUMMARY_ldd = "print shared library dependencies"
 DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each 
program or shared library specified on the command line."
-SUMMARY_eglibc-utils = "Miscellaneous utilities provided by eglibc"
-DESCRIPTION_eglibc-utils = "Miscellaneous utilities including getconf, iconf, 
locale, gencat, tzselect, zic, rpcinfo, ..."
+SUMMARY_${PN}-utils = "Miscellaneous utilities provided by eglibc"
+DESCRIPTION_${PN}-utils = "Miscellaneous utilities including getconf, iconf, 
locale, gencat, tzselect, zic, rpcinfo, ..."
 DESCRIPTION_libsotruss = "Library to support sotruss which traces calls 
through PLTs"
 
 inherit libc-common multilib_header
diff --git a/meta/recipes-core/eglibc/eglibc.inc 
b/meta/recipes-core/eglibc/eglibc.inc
index 1b2e630..0f97f82 100644
--- a/meta/recipes-core/eglibc/eglibc.inc
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -41,8 +41,6 @@ EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}""
 EXTRA_OEMAKE += ${EGLIBCPARALLELISM}
 PARALLEL_MAKE = ""
 
-PACKAGES = "glibc catchsegv sln nscd ldd glibc-utils glibc-dev glibc-doc 
libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
-
 OE_FEATURES = "${@features_to_eglibc_settings(d)}"
 do_configure_prepend() {
sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash.in
-- 
1.7.6


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/3] Add ARM tune file overhaul based largely on work from Mark Hatle

2011-07-29 Thread Phil Blundell
On Thu, 2011-07-28 at 23:18 -0700, Khem Raj wrote:
> On 07/27/2011 07:44 AM, Phil Blundell wrote:
> cortex-m series supports only thumb2 intsruction set. I am not sure if 
> thumb2 alone is a superset of thumb1 iow thumb1 programs could be 
> executed on cortex-m series or not. Never had a cortex-m so I am not sure.

Yes, I believe any thumb-1 program will run on a thumb-2 core. 

p.


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/3] Add ARM tune file overhaul based largely on work from Mark Hatle

2011-07-29 Thread Phil Blundell
On Thu, 2011-07-28 at 23:38 -0700, Khem Raj wrote:
> On 07/27/2011 08:25 AM, Phil Blundell wrote:
> > On Wed, 2011-07-27 at 09:58 -0500, Mark Hatle wrote:
> >> For the tune names..  armv5 means I want classic ARM instructions, while 
> >> armv5t
> >> means I was thumb instructions.
> >>
> >> So armv5 and armv5t are distinct in the contents of the tunings.
> >
> > Ah, I see.  Does that go for v4t too?  I can imagine cases where you
> > would want to say "select the v4T ISA but generate ARM code not Thumb".
> >
> >> Yes, the mention of DSP should be using the 'e'.  What I'm not sure of is 
> >> does
> >> the "dsp" capabilities actually change any of the code or support 
> >> generated.  If
> >> not then we can ignore it.
> >
> > Yes.  PLD, for example, is only available in ARMv5E (not ARMv5) and this
> > will affect any code which uses __builtin_prefetch().  I don't think GCC
> > will ever open-code the saturating arithmetic instructions, but it does
> > expose the v5/v5e distinction through preprocessor macros and source
> > code might use that to select asm() statements which use those opcodes.
> 
> LDRD/STRD which are armv5e only are used by gcc IIRC

Ah yes, you're right.  Those too.

p.


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/1] python-native: Fix a compiler finding issue

2011-07-29 Thread Mei, Lei


>-Original Message-
>From: openembedded-core-boun...@lists.openembedded.org
>[mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of
>Tom Rini
>Sent: Friday, July 29, 2011 9:44 AM
>To: openembedded-core@lists.openembedded.org
>Subject: Re: [OE-core] [PATCH 1/1] python-native: Fix a compiler finding issue
>
>On 07/28/2011 06:15 PM, Mei, Lei wrote:
>>
>>
>>> -Original Message-
>>> From: openembedded-core-boun...@lists.openembedded.org
>>> [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf
>Of
>>> Tom Rini
>>> Sent: Thursday, July 28, 2011 11:09 PM
>>> To: openembedded-core@lists.openembedded.org
>>> Subject: Re: [OE-core] [PATCH 1/1] python-native: Fix a compiler finding
>issue
>>>
>>> On 07/28/2011 12:20 AM, Mei Lei wrote:
 The CC variable sometimes add option information after compiler name,
>but
>>> python can't get the real compiler name if those information added.
 Fix this issue by dropping the option information when finding compiler
>name.

 Signed-off-by: Mei Lei 
>>>
>>> I think this is going to cause problems when you must pass flags to gcc
>>> to have it work, eg 'gcc -m64'.
>>
>> This patch fixed your worried issue.
>> The CC variable, sometimes like:  "x86_64-poky-linux-gcc -m64
>--sysroot=/${TMPDIR}/sysroots/qemux86-64", contains flags information.
>> This will lead to wrong compiler name "qemux86-64" rather than
>"x86_64-poky-linux-gcc" when python finding the compiler name, so add this
>patch to find the real gcc name.
>
>No, what I'm saying is I have a compiler that must be invoked as 'gcc
>-m64' (which is what BUILD_CC is).  So, I think after saying that, the
>right answer is to modify python to read the OE-specific BUILD_CC variable.


I think I didn't describe this patch exactly before.

This patch is only for function runtime_library_dir_option, this function is to 
detect which platform we are running and what compiler we used, then decide 
what option information should be passed to compiler.

By default, our cross-compiler's name be recognized as "qemux86" rather than " 
x86_64-poky-linux-gcc" in this function, this is wrong, this will induce a 
wrong option information passed to x86_64-poky-linux-gcc and block the compile 
process.

And function runtime_library_dir_option only return the option information, so 
didn't influence compiler name in global.

By the way, I think BUILD_CC is host compiler name, not for target.

Thanks
Lei
>
>--
>Tom Rini
>Mentor Graphics Corporation
>
>___
>Openembedded-core mailing list
>Openembedded-core@lists.openembedded.org
>http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core