On Tue, Sep 11, 2012 at 11:09:53AM -0500, Mark Hatle wrote:
> On 9/11/12 10:59 AM, Martin Jansa wrote:
> > On Tue, Sep 11, 2012 at 10:51:40AM -0500, Mark Hatle wrote:
> >> On 9/11/12 8:48 AM, Martin Jansa wrote:
> >>> On Tue, Sep 11, 2012 at 03:01:55PM +0200, Martin Jansa wrote:
> >>>> Hi,
> >>>>
> >>>> when building spitz and qemuarm (both produces packages in armv5te feed)
> >>>> resulting packages are tuned with -mtune=xscale (when built for spitz)
> >>>> or -mtune=arm926ej-s (when built for qemuarm).
> >>
> >> I argued this when we original did the work for the tunings, and I lost....
> >>
> >>>> From
> >>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=1916#c5
> >>>> Firstly, if you go changing the tune parameters in a given machine, you 
> >>>> are expected to use a different PACKAGE_ARCH. If you do that, you will 
> >>>> get a different package feed for the different binaries, different 
> >>>> WORKDIR and so on. This was always the way the package architectures was 
> >>>> intended to work and nothing has changed there. Yes, you as the user 
> >>>> changing various variables can create inconsistent package feeds. There 
> >>>> are 101 ways you can do that, the simple answer is just don't. We're 
> >>>> therefore unlikely to add MACHINE to DEPLOY_DIR or remove PACKAGE_ARCH, 
> >>>> please just use it as its intended.
> >>
> >> That is certainly my expectation.  I'm not sure that the arm926ej-s can 
> >> produce
> >> binaries that are -not- arm5te binaries -- as that seems to be the 
> >> standard for
> >> what an armv5te is.  The xscale on the other hand is capable of having 
> >> different
> >> tuning parameters and had a few additional instructions.  In the past I've
> >> generated a tuning simple called "xscale" that was compatible w/ armv5te.  
> >> This
> >> way you could share non-optimized things, and go w/ xscale as necessary.
> >
> > Few more comments I did on IRC:
> >
> > 16:41:23 < JaMa> let's hope RP will comment on that as that was his comment 
> > I was copy&pasting
> > 16:41:53 < JaMa> e.g. ppc seems to set TUNE_PKGARCH for each tune-*
> > 16:44:24 < JaMa> but it would be better to set xscale/arm926 tune only for 
> > packages where such -mtune brings some speedup (and for those where we set 
> > PACKAGE_ARCH = MACHINE_ARCH already) and build the rest only with -march
> > 16:45:36 < JaMa> but mixed feed and -mtune=xscale packages on arm926 
> > targets looks like worst case
> > 16:50:20 < JaMa> oe-classic had the same issue with mixed -mtune in package 
> > arch feeds, but at least it wasn't rebuilding them after each machine switch
> >
> > And I'm not sure where we could decide what's worth -mtune and what is not,
> > because in recipe we can do it only with a lot of _arch overrides and in 
> > tune
> > file with lot of _pn-foo overrides (and some could be also in other layers 
> > then oe-core etc.)
> >
> > But it would be nice to share most packages as "general" armv5te between 
> > e.g. spitz and qemuarm builds.
> 
> This really hints that defining the tunings become a distribution 
> configuration.
> 
> You should be able to do:
> 
> DEFAULTTUNE_pn-openssl = "xscale"

Where? in some distro config? What after I switch machine to some armv7a
machine? (that's why I said a lot of _arch overrides)

something like:
# to set only armv5te as default (for most PN)
DEFAULTTUNE_armv5te = "armv5te"
# then use "optimized" DEFAULTTUNE where it's worth
DEFAULTTUNE_pn-openssl_spitz = "xscale"
DEFAULTTUNE_pn-openssl_mycorei7 = "corei7"

But that sucks because I have to list all MACHINES which have some
"optimized" DEFAULTTUNE.

What about something like this:
bitbake.conf:
OPTDEFAULTTUNE ??= "${DEFAULTTUNE}"

conf/machine/include/tune-xscale.inc:
-DEFAULTTUNE ?= "xscale"
+OPTDEFAULTTUNE ?= "xscale"

conf/machine/include/tune-arm926ejs.inc
-DEFAULTTUNE ?= "arm926ejs"
+OPTDEFAULTTUNE ?= "arm926ejs"

conf/distro/include/opt-default-tune.inc:
DEFAULTTUNE_pn-openssl = ${OPTDEFAULTTUNE}
DEFAULTTUNE_pn-mplayer = ${OPTDEFAULTTUNE}

That would be easier to manage I guess.

> 
> To enable just openssl benefits from the xscale tunings.  (The pn- may not be 
> needed.. I can never remember anymore...)  But that was the original idea 
> with 
> the tunings, make a way to specify DEFAULTTUNE for various things when 
> alternative, but compatible tunings made a difference...  set that in the 
> distro.conf and you have an optimized distribution for specific uses.  (You 
> of 
> course could also move that to a machine setting or similar file.)
> 
> --Mark
> 
> > Cheers,
> >
> >>
> >>>> Does qemuarm use oe-core as it's intended?
> >>>
> >>> CCing bluelightning because xscale is used in lot of meta-handheld 
> >>> machines:
> >>>
> >>> Does this make sense?
> >>>
> >>> OE @ ~/openembedded-core/meta/conf/machine/include $ diff -uNr 
> >>> tune-arm926*; diff -uNr tune-xscale.inc*
> >>> --- tune-arm926ejs.inc  2012-09-11 15:45:47.958202057 +0200
> >>> +++ tune-arm926ejs.inc.new      2012-09-11 15:45:40.579194777 +0200
> >>> @@ -8,4 +8,4 @@
> >>>    AVAILTUNES += "arm926ejs"
> >>>    TUNE_FEATURES_tune-arm926ejs = "${TUNE_FEATURES_tune-armv5te} 
> >>> arm926ejs"
> >>>    PACKAGE_EXTRA_ARCHS_tune-arm926ejs = 
> >>> "${PACKAGE_EXTRA_ARCHS_tune-armv5te}"
> >>> -
> >>> +TUNE_PKGARCH_tune-arm926ejs = "armv5te-arm926ejs"
> >>
> >> I'd suggest simply arm926ejs....
> >>
> >>> --- tune-xscale.inc     2012-08-28 11:01:04.899070433 +0200
> >>> +++ tune-xscale.inc.new 2012-09-11 15:43:24.560060591 +0200
> >>> @@ -8,10 +8,12 @@
> >>>    AVAILTUNES += "xscale"
> >>>    TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5te} xscale"
> >>>    PACKAGE_EXTRA_ARCHS_tune-xscale = "${PACKAGE_EXTRA_ARCHS_tune-armv5te}"
> >>> +TUNE_PKGARCH_tune-xscale = "armv5te-xscale"
> >>
> >> Again simplify to xscale
> >>
> >>>    AVAILTUNES += "xscale-be"
> >>>    TUNE_FEATURES_tune-xscale-be = "${TUNE_FEATURES_tune-armv5teb} xscale 
> >>> bigendian"
> >>>    PACKAGE_EXTRA_ARCHS_tune-xscale-be = 
> >>> "${PACKAGE_EXTRA_ARCHS_tune-armv5teb}"
> >>> +TUNE_PKGARCH_tune-xscale-be = "armv5teb-xscale"
> >>
> >> And xscaleeb (or be)
> >>
> >> --Mark
> >>
> >>>    # webkit-gtk has alignment issues with double instructions on armv5 so
> >>>    # disable them here
> >>>
> >>>>
> >>>> Shouldn't spitz produce something like armv5te-xscale and qemuarm 
> >>>> armv5te-arm926ejs?
> >>>> It would cause all recipes to build again (cannot share armv5te feed 
> >>>> anymore),
> >>>> but at least it would build it and user will really get it on target, 
> >>>> right now
> >>>> opkg upgrade can download some packages with xscale some with arm926ej-s.
> >>>>
> >>>> $ ~/bitbake/bin/bitbake-diffsigs
> >>>>     
> >>>> stamps.1347348910/spitz/armv5te-oe-linux-gnueabi/linux-libc-headers-3.4.3-r0.do_configure.sigdata.04b364a15889fcff7502614f1c116abc
> >>>>     
> >>>> stamps.1347348910/qemuarm/armv5te-oe-linux-gnueabi/linux-libc-headers-3.4.3-r0.do_configure.sigdata.656f0583be969b427f040f2e143bcb14
> >>>>     basehash changed from 7fe9c0a3455dac20ba6a90ed337b097e to 
> >>>> d8dd2ff8613d0aafe60bef1a1e9469a1
> >>>>     Variable TUNE_CCARGS value changed from
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "armv5", 
> >>>> "-march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}", "", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "armv4", 
> >>>> "-march=armv4${ARMPKGSFX_THUMB}", "", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "thumb", "${ARM_THUMB_M_OPT}", 
> >>>> "", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", 
> >>>> "-mno-thumb-interwork", "-mthumb-interwork", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "vfp", 
> >>>> bb.utils.contains("TUNE_FEATURES", "callconvention-hard", 
> >>>> "-mfloat-abi=hard", "-mfloat-abi=softfp", d), "" ,d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "xscale", "-mtune=xscale", "", 
> >>>> d)}
> >>>>     to
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "armv5", 
> >>>> "-march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}", "", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "armv4", 
> >>>> "-march=armv4${ARMPKGSFX_THUMB}", "", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "thumb", "${ARM_THUMB_M_OPT}", 
> >>>> "", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", 
> >>>> "-mno-thumb-interwork", "-mthumb-interwork", d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "vfp", 
> >>>> bb.utils.contains("TUNE_FEATURES", "callconvention-hard", 
> >>>> "-mfloat-abi=hard", "-mfloat-abi=softfp", d), "" ,d)}
> >>>>     ${@bb.utils.contains("TUNE_FEATURES", "arm926ejs", 
> >>>> "-mtune=arm926ej-s", "", d)}
> >>>>
> >>>> --
> >>>> Martin 'JaMa' Jansa     jabber: martin.ja...@gmail.com
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> 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
> >
> 

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

Attachment: signature.asc
Description: Digital signature

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

Reply via email to