On 2016-01-28 00:51, Koen Kooi wrote: >> Op 28 jan. 2016, om 09:43 heeft Stefan Agner <ste...@agner.ch> het volgende >> geschreven: >> >> On 2016-01-28 00:35, Koen Kooi wrote: >>>> Op 27 jan. 2016, om 23:36 heeft Stefan Agner <ste...@agner.ch> het >>>> volgende geschreven: >>>> >>>> From: Stefan Agner <stefan.ag...@toradex.com> >>>> >>>> Several packages are only available in the non-thumb (ARM) feeds. >>>> E.g. tremor (libvorbisdec1) uses ARM_INSTRUCTION_SET = "arm" in its >>>> recipe, and therefor is built only for non-thumb architectures such >>>> as armv7ahf-vfp-neon. >>> >>> That’s what I suspected, thanks for tracking this down. >>> >>>> This introduces TUNE_ARMPKGARCH which is TUNE_PKGARCH without the >>>> thumb part (ARMPKGSFX_THUMB). FEED_ARCHS can contain multiple >>>> architectures, and the feed configuration files are generated >>>> accordingly. >>> >>> This is what distro-feed-configs.bb does as well and it leads to problems: >> >> Not exactly. The patch only adds one additional arch, the same arch as >> TUNE_PKGARCH, just without the thumb… > > Doh, I skipped over the angstrom.inc bits. > >> >>> >>> 1) it adds all archs, including arch(N-1), arch(N-2), so it will also >>> pick up armv6 in your case and other x86 archs in the x86_64 case. If >>> for some reason you want a newer version of $package for arch(N-1), >>> but not arch(N) this breaks. >>> 2) not all archs have a feed dir, since a lot of them are >>> autogenerated and to be honest, bogus. So users will get 404s. >> >> As soon as there is one package with ARM_INSTRUCTION_SET = "arm", the >> non thumb arch will be there anyway. And libc is one of the packages >> making use of that, so it is practically guaranteed... >> >>> 3) extra feed lists on the device which makes opkg slow. >> >> It seems that you are not building explicitly armv7ahf-vfp-neon platform >> currently. Hence armv7ahf-vfp-neon and armv7at2hf-vfp-neon are >> practically disjoint sets... Hence it's 2 smaller ones vs 1 large >> package file... >> >>> >>> Having said all that, how about this: >>> >>> diff --git a/contrib/sort.sh b/contrib/sort.sh >>> index 8953e4c..12f1718 100755 >>> --- a/contrib/sort.sh >>> +++ b/contrib/sort.sh >>> @@ -118,6 +118,10 @@ case "$arch" in >>> "armv7at2hf-vfp-neon-mx6") >>> archdir="armv7ahf-vfp-neon" >>> machines="" ;; >>> + "armv7ahf-vfp-neon") >>> + archdir="armv7at2hf-vfp-neon" ;; >>> + "armv7ahf-vfp") >>> + archdir="armv7at2hf-vfp" ;; >>> "armv7ahfb-vfp-neon") >>> machine="genericarmv7ab" ;; >>> "armv7a-vfp") >>> @@ -128,15 +132,16 @@ case "$arch" in >>> archdir="blackfin" >>> machines="adsp-bf537-stamp" ;; >>> "cortexa5t2hf-vfp-neon") >>> - archdir="armv7ahf-vfp-neon" >>> + archdir="armv7at2hf-vfp-neon" >>> machines="" ;; >>> "cortexa5hf-vfp-neon") >>> - archdir="armv7ahf-vfp-neon" >>> + archdir="armv7at2hf-vfp-neon" >>> machines="" ;; >>> "cortexa9hf-vfp-neon") >>> + archdir="armv7at2hf-vfp-neon" >>> machines="" ;; >>> "cortexa9hf-vfp-neon-mx6") >>> - archdir="cortexa9hf-vfp-neon" >>> + archdir="armv7at2hf-vfp-neon" >>> machine="" ;; >>> "geode") >>> machines="alix geodegx geodelx iei-nanogx-466 xo" ;; >>> >>> That will sort related bits into a single feed. And on the feedserver >>> we symlink armv7at2hf-vfp-neon -> armv7ahf-vfp-neon and so on. In >>> theory the sort.sh change should be enough, but it is possible to >>> construct a broken MACHINE.conf, so let’s be safe. >> >> Hm, I see. The server side solution would also have the advantage that >> it solves the issue for all the devices out there immediately. >> >> It just feels a bit wrong to sort armv7ahf-vfp-neon into >> armv7at2hf-vfp-neon. > > I think your patch is the right way to go forward, I’ll think on it > some more and patch sort.sh to behave according and double check the > layout on the feedserver. This being release week at work and FOSDEM > weekend this will be delayed to next week. If anyone wants to look at > fixing sort.sh before that, please do :)
Afact, if the patch is applied, sort.sh does not need a change... sort.sh already processes non-thumb feeds. With the change, opkg will fetch the non-thumb package files too, and all should work out of the box. At least it worked for my gstreamer/tremor test case... -- Stefan > > regards, > > Koen > >> >> -- >> Stefan >> >> >>>> --- >>>> >>>> conf/distro/include/angstrom.inc | 2 ++ >>>> recipes-angstrom/angstrom/angstrom-feed-configs.bb | 5 ++++- >>>> 2 files changed, 6 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/conf/distro/include/angstrom.inc >>>> b/conf/distro/include/angstrom.inc >>>> index c5f9fab..0b5ea25 100644 >>>> --- a/conf/distro/include/angstrom.inc >>>> +++ b/conf/distro/include/angstrom.inc >>>> @@ -21,6 +21,8 @@ ONLINE_PACKAGE_MANAGEMENT = "full" >>>> #Alphabetically sorted >>>> >>>> FEED_ARCH ?= "${TUNE_PKGARCH}" >>>> +TUNE_ARMPKGARCH = >>>> "${ARMPKGARCH}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}" >>>> +FEED_ARCHS ?= "${TUNE_PKGARCH} ${TUNE_ARMPKGARCH}" >>>> >>>> #blackfin machines >>>> FEED_ARCH_bfin = "blackfin" >>>> diff --git a/recipes-angstrom/angstrom/angstrom-feed-configs.bb >>>> b/recipes-angstrom/angstrom/angstrom-feed-configs.bb >>>> index 4b14b2a..e40057a 100644 >>>> --- a/recipes-angstrom/angstrom/angstrom-feed-configs.bb >>>> +++ b/recipes-angstrom/angstrom/angstrom-feed-configs.bb >>>> @@ -13,7 +13,10 @@ do_compile() { >>>> mkdir -p ${S}/${sysconfdir}/opkg >>>> >>>> for feed in base debug perl python gstreamer ; do >>>> - echo "src/gz ${feed} >>>> ${ANGSTROM_URI}/${FEED_BASEPATH}${FEED_ARCH}/${feed}" > >>>> ${S}/${sysconfdir}/opkg/${feed}-feed.conf >>>> + rm ${S}/${sysconfdir}/opkg/${feed}-feed.conf >>>> + for feed_arch in ${FEED_ARCHS} ; do >>>> + echo "src/gz ${feed}-${feed_arch} >>>> ${ANGSTROM_URI}/${FEED_BASEPATH}${feed_arch}/${feed}" >> >>>> ${S}/${sysconfdir}/opkg/${feed}-feed.conf >>>> + done >>>> done >>>> >>>> echo "src/gz ${MACHINE_ARCH} >>>> ${ANGSTROM_URI}/${FEED_BASEPATH}${FEED_ARCH}/machine/${MACHINE_ARCH}" > >>>> ${S}/${sysconfdir}/opkg/${MACHINE_ARCH}-feed.conf >>>> -- >>>> 1.9.3 >>>> _______________________________________________ Angstrom-distro-devel mailing list Angstrom-distro-devel@linuxtogo.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel