Add a couple of architectures.
[platform/upstream/libsolv.git] / src / poolarch.c
index 2faa8e0..f2d8e68 100644 (file)
 #include "util.h"
 
 static const char *archpolicies[] = {
-  "x86_64",    "x86_64:i686:i586:i486:i386",
+  "ia32e",     "ia32e:x86_64:athlon:i686:i586:i486:i386",
+  "amd64",     "amd64:x86_64:athlon:i686:i586:i486:i386",
+  "x86_64",    "x86_64:athlon:i686:i586:i486:i386",
+  "athlon",    "athlon:i686:i586:i486:i386",
   "i686",      "i686:i586:i486:i386",
+  "geode",     "geode:i586:i486:i386",
   "i586",      "i586:i486:i386",
   "i486",      "i486:i386",
   "i386",      "i386",
   "s390x",     "s390x:s390",
   "s390",      "s390",
   "ia64",      "ia64:i686:i586:i486:i386",
+  "ppc64iseries", "ppc64iseries:ppc64:ppc",
+  "ppc64pseries", "ppc64pseries:ppc64:ppc",
   "ppc64",     "ppc64:ppc",
   "ppc",       "ppc",
-  "armv7tnhl", "arvm7tnhl:armv7thl:armv7nhl:armv7hl",
-  "armv7thl",  "armv7thl:armv7hl",
-  "armv7nhl",  "armv7nhl:armv7hl",
-  "armv7hl",   "armv7hl",
+  "ppc64p7",   "ppc64p7:ppc64:ppc",
+  "ppc64le",    "ppc64le",
+  "aarch64",   "aarch64",
+  "armv6hl",   "armv6hl",
+  "armv7hnl",  "armv7hnl:armv7hl:armv6hl",
+  "armv7hl",   "armv7hl:armv6hl",
   "armv7l",    "armv7l:armv6l:armv5tejl:armv5tel:armv5l:armv4tl:armv4l:armv3l",
   "armv6l",    "armv6l:armv5tejl:armv5tel:armv5l:armv4tl:armv4l:armv3l",
   "armv5tejl", "armv5tejl:armv5tel:armv5l:armv4tl:armv4l:armv3l",
   "armv5tel",  "armv5tel:armv5l:armv4tl:armv4l:armv3l",
+  "armv5tl",   "armv5l:armv4tl:armv4l:armv3l",
   "armv5l",    "armv5l:armv4tl:armv4l:armv3l",
   "armv4tl",   "armv4tl:armv4l:armv3l",
   "armv4l",    "armv4l:armv3l",
@@ -52,6 +61,8 @@ static const char *archpolicies[] = {
   "sparcv9",   "sparcv9:sparcv8:sparc",
   "sparcv8",   "sparcv8:sparc",
   "sparc",     "sparc",
+  "mipsel",    "mipsel",
+  "m68k",      "m68k",
   0
 };
 
@@ -99,11 +110,7 @@ pool_setarchpolicy(Pool *pool, const char *arch)
       pool->lastarch = 0;
       return;
     }
-#ifndef DEBIAN_SEMANTICS
-  id = ARCH_NOARCH;
-#else
-  id = ARCH_ALL;
-#endif
+  id = pool->noarchid;
   lastarch = id + 255;
   id2arch = solv_calloc(lastarch + 1, sizeof(Id));
   id2arch[id] = 1;     /* the "noarch" class */
@@ -149,12 +156,13 @@ pool_arch2color_slow(Pool *pool, Id arch)
   if (!pool->id2color)
     pool->id2color = solv_calloc(pool->lastarch + 1, 1);
   s = pool_id2str(pool, arch);
-  if (arch == ARCH_NOARCH || arch == ARCH_ALL)
+  if (arch == ARCH_NOARCH || arch == ARCH_ALL || arch == ARCH_ANY)
     color = ARCHCOLOR_ALL;
   else if (!strcmp(s, "s390x") || strstr(s, "64"))
     color = ARCHCOLOR_64;
   else
     color = ARCHCOLOR_32;
+  pool->id2color[arch] = color;
   return color;
 }