File: get_kernel

package info (click to toggle)
pari 2.17.3-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 24,508 kB
  • sloc: ansic: 281,184; sh: 861; perl: 420; yacc: 214; makefile: 162; f90: 88
file content (133 lines) | stat: -rw-r--r-- 4,714 bytes parent folder | download | duplicates (2)
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Testing Architectures. Try uname to provide a default, then ask user.
#
case "$arch" in
  sparc)         asmarch=sparcv8_micro; prettya=Sparc ;;
  sparcv8_micro) asmarch=$arch;         prettya=MicroSparc ;;
  sparcv8_super) asmarch=$arch;         prettya=SuperSparc ;;
  sparcv9) case "$sizeof_long" in
           4) asmarch=sparcv8_micro;;
           8) asmarch=none;;
           esac;                        prettya=UltraSparc ;;
  i?86)    case "$sizeof_long" in
           4) asmarch=ix86;;
           8) asmarch=x86_64;;
           esac;                        prettya=$arch ;;
  x86_64)  case "$sizeof_long" in
           4) asmarch=ix86;;
           8) asmarch=x86_64;;
           esac;                        prettya='amd64';;
  ia64)    case "$sizeof_long" in
           4) asmarch=none;;
           8) asmarch=ia64;;
           esac;                        prettya=Itanium;;
  hppa) case "$sizeof_long" in
           4) asmarch=hppa;             prettya='PA-RISC1.1';;
           8) asmarch=hppa64;           prettya='PA-RISC2.0';;
           esac;;
  riscv|riscv64) case "$sizeof_long" in
           4) asmarch=none;             prettya='Risc-V/32';;
           8) asmarch=riscv64;          prettya='Risc-V/64';;
           esac;;
   mips|mips64) case "$sizeof_long" in
           4) asmarch=mips;             prettya='MIPS';;
           8) asmarch=mips64;           prettya='MIPS64';;
           esac;;
   loongarch|loongarch64) case "$sizeof_long" in
           4) asmarch=none;             prettya='LoongArch';;
           8) asmarch=loongarch64;      prettya='LoongArch64';;
           esac;;
  alpha)         asmarch=$arch;         prettya=Alpha ;;
  ppc|ppc64|ppc64le)  case "$sizeof_long" in
        4) asmarch=ppc;;
        8) asmarch=ppc64;;
        esac;                           prettya='PowerPC' ;;
  arm*|aarch64)  case "$sizeof_long" in
    4)
      exe=$osname-$arch-endian$$$exe_suff
      echo $n "Checking supported ARM kernel: $c"
      cmd="$CC $CFLAGS -I../src/kernel/arm kernel.c -o $exe"; . log_cmd
      if test -r $exe; then
        asmarch=arm;
      else
        asmarch=none;
      fi;
      echo "$asmarch"
      . cleanup_exe
      prettya=$arch;;
    8) asmarch=aarch64; prettya=arm64;;
    esac;;
  m68k)          asmarch=m68k;          prettya='Motorola 68k';;
  sh3)           asmarch=none;          prettya=SH-3 ;;
  sh4)           asmarch=none;          prettya=SH-4 ;;
  sh5)           asmarch=none;          prettya=SH-5 ;;
  vax)           asmarch=none;          prettya=VAX ;;
  fx2800)        asmarch=none;          prettya='Alliant FX/2800' ;;
  s390)          asmarch=none;          prettya='S/390' ;;
  none)          asmarch=none;          prettya=unknown ;;
  *)             asmarch=none;          prettya=$arch
                 echo "        Warning ! architecture $arch not tested";;
esac

#
#   Modifications for pretty name and asm file
#

cat << EOM
==========================================================================
EOM

tmp_kern=auto-auto
if test  -n "$kernel"; then
  tmp_kern=$kernel
else
  if test "$fastread" != yes; then
  cat << EOM
An optimized Pari kernel is available for these architectures
("none" means that we will use the portable C version of GP/PARI)
("-gmp" means we will use the GMP library (that needs to be installed))
EOM
  rep='none sparcv8_super sparcv8_micro ix86 alpha hppa m68k ppc ppc64 x86_64
  none-gmp sparcv8_super-gmp sparcv8_micro-gmp ix86-gmp alpha-gmp hppa-gmp m68k-gmp ppc-gmp ppc64-gmp x86_64-gmp'
  . ./display
  echo $n ..."Which of these apply, if any ? $c"
  dflt=$asmarch; . ./myread;
  kernel=$ans # explicit kernel, needed when checking for gmp in Configure
  tmp_kern=$ans
  cat << EOM
==========================================================================
EOM
  fi
fi
if test -z "$without_gmp" ; then
  lvl1=gmp
else
  lvl1=none
fi
tmp_kern=`./kernel-name $tmp_kern $asmarch $lvl1`
kernlvl0=`echo "$tmp_kern" | sed -e 's/\(.*\)-.*/\1/'`
kernlvl1=`echo "$tmp_kern" | sed -e 's/.*-\(.*\)/\1/'`

case "$kernlvl0" in
  none)          prettyk0="portable C";;
  m68k)          prettyk0="m68k";;
  sparcv8_super) prettyk0=SuperSparc;;
  sparcv8_micro) prettyk0=MicroSparc;;
  ix86)          prettyk0=ix86;;
  ia64)          prettyk0=ia64;;
  hppa)          prettyk0=HPPA;;
  hppa64)        prettyk0=HPPA64;;
  alpha)         prettyk0=Alpha;;
  ppc)           prettyk0=PPC;;
  ppc64)         prettyk0=PPC64;;
  x86_64)        prettyk0="x86-64";;
  arm)           prettyk0="arm";;
  aarch64)       prettyk0="aarch64";;
  *)             prettyk0="$kernlvl0";;
esac

. get_pretty

echo "Building for: $pretty"
cat << EOM
==========================================================================
EOM