| | 1 | --- config.guess.old 2008-08-12 00:49:38.000000000 +0200 |
| | 2 | +++ config.guess 2009-03-06 23:55:14.000000000 +0100 |
| | 3 | @@ -325,144 +325,6 @@ |
| | 4 | # (as noted below). But the man page says the command is still "under |
| | 5 | # development", so it doesn't seem wise to use it just yet, not while |
| | 6 | # there's an alternative. |
| | 7 | - # |
| | 8 | - # Try to read the PVR. mfpvr is a protected instruction, NetBSD, MacOS |
| | 9 | - # and AIX don't allow it in user mode, but the Linux kernel does. |
| | 10 | - # |
| | 11 | - # Using explicit bytes for mfpvr avoids worrying about assembler syntax |
| | 12 | - # and underscores. "char"s are used instead of "int"s to avoid worrying |
| | 13 | - # whether sizeof(int)==4 or if it's the right endianness. |
| | 14 | - # |
| | 15 | - # Note this is no good on AIX, since a C function there is the address of |
| | 16 | - # a function descriptor, not actual code. But this doesn't matter since |
| | 17 | - # AIX doesn't allow mfpvr anyway. |
| | 18 | - # |
| | 19 | - cat >$dummy.c <<\EOF |
| | 20 | -#include <stdio.h> |
| | 21 | -struct { |
| | 22 | - int n; /* force 4-byte alignment */ |
| | 23 | - char a[8]; |
| | 24 | -} getpvr = { |
| | 25 | - 0, |
| | 26 | - { |
| | 27 | - 0x7c, 0x7f, 0x42, 0xa6, /* mfpvr r3 */ |
| | 28 | - 0x4e, 0x80, 0x00, 0x20, /* blr */ |
| | 29 | - } |
| | 30 | -}; |
| | 31 | -int |
| | 32 | -main () |
| | 33 | -{ |
| | 34 | - unsigned (*fun)(); |
| | 35 | - unsigned pvr; |
| | 36 | - |
| | 37 | - /* a separate "fun" variable is necessary for gcc 2.95.2 on MacOS, |
| | 38 | - it gets a compiler error on a combined cast and call */ |
| | 39 | - fun = (unsigned (*)()) getpvr.a; |
| | 40 | - pvr = (*fun) (); |
| | 41 | - |
| | 42 | - switch (pvr >> 16) { |
| | 43 | - case 0x0001: puts ("powerpc601"); break; |
| | 44 | - case 0x0003: puts ("powerpc603"); break; |
| | 45 | - case 0x0004: puts ("powerpc604"); break; |
| | 46 | - case 0x0006: puts ("powerpc603e"); break; |
| | 47 | - case 0x0007: puts ("powerpc603e"); break; /* 603ev */ |
| | 48 | - case 0x0008: puts ("powerpc750"); break; |
| | 49 | - case 0x0009: puts ("powerpc604e"); break; |
| | 50 | - case 0x000a: puts ("powerpc604e"); break; /* 604ev5 */ |
| | 51 | - case 0x000c: puts ("powerpc7400"); break; |
| | 52 | - case 0x0041: puts ("powerpc630"); break; |
| | 53 | - case 0x0050: puts ("powerpc860"); break; |
| | 54 | - case 0x8000: puts ("powerpc7450"); break; |
| | 55 | - case 0x8001: puts ("powerpc7455"); break; |
| | 56 | - case 0x8002: puts ("powerpc7457"); break; |
| | 57 | - case 0x8003: puts ("powerpc7447"); break; /* really 7447A */ |
| | 58 | - case 0x800c: puts ("powerpc7410"); break; |
| | 59 | - } |
| | 60 | - return 0; |
| | 61 | -} |
| | 62 | -EOF |
| | 63 | - if ($CC_FOR_BUILD $dummy.c -o $dummy) >/dev/null 2>&1; then |
| | 64 | - # This style construct is needed on AIX 4.3 to suppress the SIGILL error |
| | 65 | - # from (*fun)(). Using $SHELL -c ./$dummy 2>/dev/null doesn't work. |
| | 66 | - { x=`./$dummy`; } 2>/dev/null |
| | 67 | - if test -n "$x"; then |
| | 68 | - exact_cpu=$x |
| | 69 | - fi |
| | 70 | - fi |
| | 71 | - rm -f $dummy.c $dummy.o $dummy $dummy.core |
| | 72 | - |
| | 73 | - # Grep the linux kernel /proc/cpuinfo pseudo-file. |
| | 74 | - # Anything unrecognised is ignored, since of course we mustn't spit out |
| | 75 | - # a cpu type config.sub doesn't know. |
| | 76 | - if test -z "$exact_cpu" && test -f /proc/cpuinfo; then |
| | 77 | - x=`grep "^cpu[ ]" /proc/cpuinfo | head -n 1` |
| | 78 | - x=`echo $x | sed -n 's/^cpu[ ]*:[ ]*\([A-Za-z0-9]*\).*/\1/p'` |
| | 79 | - x=`echo $x | sed 's/PPC//'` |
| | 80 | - case $x in |
| | 81 | - 601) exact_cpu="power" ;; |
| | 82 | - 603ev) exact_cpu="powerpc603e" ;; |
| | 83 | - 604ev5) exact_cpu="powerpc604e" ;; |
| | 84 | - 603 | 603e | 604 | 604e | 750 | 821 | 860 | 970) |
| | 85 | - exact_cpu="powerpc$x" ;; |
| | 86 | - POWER[4-9]) |
| | 87 | - exact_cpu=`echo $x | sed "s;POWER;power;"` ;; |
| | 88 | - esac |
| | 89 | - fi |
| | 90 | - |
| | 91 | - if test -z "$exact_cpu"; then |
| | 92 | - # On AIX, try looking at _system_configuration. This is present in |
| | 93 | - # version 4 at least. |
| | 94 | - cat >$dummy.c <<EOF |
| | 95 | -#include <stdio.h> |
| | 96 | -#include <sys/systemcfg.h> |
| | 97 | -int |
| | 98 | -main () |
| | 99 | -{ |
| | 100 | - switch (_system_configuration.implementation) { |
| | 101 | - /* Old versions of AIX don't have all these constants, |
| | 102 | - use ifdef for safety. */ |
| | 103 | -#ifdef POWER_RS2 |
| | 104 | - case POWER_RS2: puts ("power2"); break; |
| | 105 | -#endif |
| | 106 | -#ifdef POWER_601 |
| | 107 | - case POWER_601: puts ("power"); break; |
| | 108 | -#endif |
| | 109 | -#ifdef POWER_603 |
| | 110 | - case POWER_603: puts ("powerpc603"); break; |
| | 111 | -#endif |
| | 112 | -#ifdef POWER_604 |
| | 113 | - case POWER_604: puts ("powerpc604"); break; |
| | 114 | -#endif |
| | 115 | -#ifdef POWER_620 |
| | 116 | - case POWER_620: puts ("powerpc620"); break; |
| | 117 | -#endif |
| | 118 | -#ifdef POWER_630 |
| | 119 | - case POWER_630: puts ("powerpc630"); break; |
| | 120 | -#endif |
| | 121 | - /* Dunno what this is, leave it out for now. |
| | 122 | - case POWER_A35: puts ("powerpca35"); break; |
| | 123 | - */ |
| | 124 | - /* This is waiting for a bit more info. |
| | 125 | - case POWER_RS64II: puts ("powerpcrs64ii"); break; |
| | 126 | - */ |
| | 127 | - default: |
| | 128 | - if (_system_configuration.architecture == POWER_RS) |
| | 129 | - puts ("power"); |
| | 130 | - else if (_system_configuration.width == 64) |
| | 131 | - puts ("powerpc64"); |
| | 132 | - } |
| | 133 | - return 0; |
| | 134 | -} |
| | 135 | -EOF |
| | 136 | - if ($CC_FOR_BUILD $dummy.c -o $dummy) >/dev/null 2>&1; then |
| | 137 | - x=`./$dummy` |
| | 138 | - if test -n "$x"; then |
| | 139 | - exact_cpu=$x |
| | 140 | - fi |
| | 141 | - fi |
| | 142 | - rm -f $dummy.c $dummy.o $dummy |
| | 143 | - fi |
| | 144 | - |
| | 145 | if test -z "$exact_cpu"; then |
| | 146 | # On MacOS X (or any Mach-O presumably), NXGetLocalArchInfo cpusubtype |
| | 147 | # can tell us the exact cpu. |