> 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:

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.
3) extra feed lists on the device which makes opkg slow.

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.

regards,

Koen



> ---
> 
> 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

Reply via email to