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: [email protected]
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Openembedded-core mailing list
> >>> [email protected]
> >>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> >>>
> >>
> >>
> >> _______________________________________________
> >> Openembedded-core mailing list
> >> [email protected]
> >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> >
>
--
Martin 'JaMa' Jansa jabber: [email protected]
signature.asc
Description: Digital signature
_______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
