summaryrefslogtreecommitdiff
path: root/architecture.php
blob: 4bb8be010565274c743cb2e68b0af28570e689ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php

require_once "init.php";

require_once BASE . "/lib/style.php";

$flags = array(
  'i486' => array(
    'CMOV' => 0,
    'MMX'  => 0,
    'SSE'  => 0,
    'SSE2' => 0
  ),
  'i686' => array(
    'CMOV' => 1,
    'MMX'  => 1,
    'SSE'  => 1,
    'SSE2' => 0
  ),
  'pentium4' => array(
    'CMOV' => 1,
    'MMX'  => 1,
    'SSE'  => 1,
    'SSE2' => 1
  )
);

print_header('Architecture Overview', 'home');
print "      <div class=\"box\">\n";
print "        <p>\n";
print "          The below table lists the compatibility of CPUs (identified by their available flags) with architectures (as defined by Arch Linux 32).\n";
print "          To determine which architecture is suited best for your CPU, check the available <code>flags</code> listed in <code>/proc/cpuinfo</code>.\n";
print "        </p>\n";
print "        <table class=\"results\">\n";
print "          <tr>\n";
print "            <th>\n";
print "              Architecture\n";
print "            </th>\n";
foreach ($flags['i486'] as $flag => $dummy) {
  print "            <th>\n";
  print "              " . $flag . "\n";
  print "            </th>\n";
}
print "          </tr>\n";
$oddity = "odd";
foreach ($flags as $arch => $arch_flags) {
  print "          <tr class=\"" . $oddity . "\">\n";
  print "            <td>\n";
  print "              " . $arch . "\n";
  print "            </td>\n";
  foreach ($arch_flags as $flag => $required) {
    print "            <td>\n";
    if ($required == 1)
      print "              <font color=\"ff0000\">\n";
    else
      print "              <font color=\"00c000\">\n";
    print "                " . $flag . " is ";
    if ($required == 0)
      print "not ";
    print "required";
    print "              </font>\n";
    print "            </td>\n";
  }
  print "          </tr>\n";
  if ($oddity == "odd")
    $oddity = "even";
  else
    $oddity = "odd";
}
print "        </table>\n";
print "        <p>\n";
print "          Hint:\n";
print "          Currently some i686 packages require SSE2 - which is a bug we're trying to solve.\n";
print "          If you experience any problems related to illegal instructions although your cpu should support the architecture (as listed above), please report the issue to us in <a href=\"https://bbs.archlinux32.org\">the forums</a>, on irc or on <a href=\"https://bugs.archlinux32.org\">the bug tracker</a>.\n";
print "        </p>\n";
print "        <p>\n";
print "          Also note:\n";
print "          If your flags contain 'pae' you can use the <a href=\"https://www.archlinux32.org/packages/pentium4/extra/linux-pae/\">linux-pae</a> package to make use of more memory.\n";
print "          If your flags contain 'lm' you can still use Archlinux32, but 64-bit Archlinux might be the better option.\n";
print "        </p>\n";
print "      </div>\n";
print_footer();