Initial import from FreeBSD RELENG_4:
[dragonfly.git] / crypto / kerberosIV / PROBLEMS
1
2 Problems compiling Kerberos
3 ===========================
4
5 Many compilers require a switch to become ANSI compliant. Since krb4 is
6 written in ANSI C it is necessary to specify the name of the compiler
7 to be used and the required switch to make it ANSI compliant. This is
8 most easily done when running configure using the `env' command. For
9 instance to build under HP-UX using the native compiler do:
10
11      datan$ env CC="cc -Ae" ./configure
12
13 In general `gcc' works. The following combinations have also been
14 verified to successfully compile the distribution:
15
16 `HP-UX'
17      `cc -Ae'
18
19 `Digital UNIX'
20      `cc -std1'
21
22 `AIX'
23      `xlc'
24
25 `Solaris 2.x'
26      `cc' (unbundled one)
27
28 `IRIX'
29      `cc'
30
31 Linux problems
32 --------------
33
34 The libc functions gethostby*() under RedHat4.2 can sometimes cause
35 core dumps. If you experience these problems make sure that the file
36 `/etc/nsswitch.conf' contains a hosts entry no more complex than the
37 line
38
39 hosts: files dns
40
41 Some systems have lost `/usr/include/ndbm.h' which is necessary to
42 build krb4 correctly. There is a `ndbm.h.Linux' right next to the
43 source distribution.
44
45 There has been reports of non-working `libdb' on some Linux
46 distributions.  If that happens, use the `--without-berkeley-db' when
47 configuring.
48
49 SunOS 5 (aka Solaris 2) problems
50 --------------------------------
51
52 When building shared libraries and using some combinations of GNU gcc/ld
53 you better set the environment variable RUN_PATH to /usr/athena/lib
54 (your target libdir). If you don't, then you will have to set
55 LD_LIBRARY_PATH during runtime and the PAM module will not work.
56
57 HP-UX problems
58 --------------
59
60 The shared library `/usr/lib/libndbm.sl' doesn't exist on all systems.
61 To make problems even worse, there is never an archive version for
62 static linking either. Therefore, when building "truly portable"
63 binaries first install GNU gdbm or Berkeley DB, and make sure that you
64 are linking against that library.
65
66 Cray problems
67 -------------
68
69 `rlogind' won't work on Crays until `forkpty()' has been ported, in the
70 mean time use `telnetd'.
71
72 IRIX problems
73 -------------
74
75 IRIX has three different ABI:s (Application Binary Interface), there's
76 an old 32 bit interface (known as O32, or just 32), a new 32 bit
77 interface (N32), and a 64 bit interface (64). O32 and N32 are both 32
78 bits, but they have different calling conventions, and alignment
79 constraints, and similar. The N32 format is the default format from IRIX
80 6.4.
81
82 You select ABI at compile time, and you can do this with the
83 `--with-mips-abi' configure option. The valid arguments are `o32',
84 `n32', and `64', N32 is the default. Libraries for the three different
85 ABI:s are normally installed installed in different directories (`lib',
86 `lib32', and `lib64'). If you want more than one set of libraries you
87 have to reconfigure and recompile for each ABI, but you should probably
88 install only N32 binaries.
89
90 GCC had had some known problems with the different ABI:s. Old GCC could
91 only handle O32, newer GCC can handle N32, and 64, but not O32, but in
92 some versions of GCC the structure alignment was broken in N32.
93
94 This confusion with different ABI:s can cause some trouble. For
95 instance, the `afskauthlib.so' library has to use the same ABI as
96 `xdm', and `login'. The easiest way to check what ABI to use is to run
97 `file' on `/usr/bin/X11/xdm'.
98
99 Another problem that you might encounter if you run AFS is that Transarc
100 apparently doesn't support the 64-bit ABI, and because of this you can't
101 get tokens with a 64 bit application. If you really need to do this,
102 there is a kernel module that provides this functionality at
103 <ftp://ftp.pdc.kth.se/home/joda/irix-afs64.tar.gz>.
104
105 AIX problems
106 ------------
107
108 `gcc' version 2.7.2.* has a bug which makes it miscompile
109 `appl/telnet/telnetd/sys_term.c' (and possibily `appl/bsd/forkpty.c'),
110 if used with too much optimization.
111
112 Some versions of the `xlc' preprocessor doesn't recognise the
113 (undocumented) `-qnolm' option. If this option is passed to the
114 preprocessor (like via the configuration file `/etc/ibmcxx.cfg',
115 configure will fail.
116
117 The solution is to remove this option from the configuration file,
118 either globally, or for just the preprocessor:
119
120      $ cp /etc/ibmcxx.cfg /tmp
121      $ed /tmp/ibmcxx.cfg
122      8328
123      /nolm
124              options   = -D_AIX,-D_AIX32,-D_AIX41,-D_AIX43,-D_IBMR2,-D_POWER,-bpT:0x10000000,-bpD:0x20000000,-qnolm
125      s/,-qnolm//p
126              options   = -D_AIX,-D_AIX32,-D_AIX41,-D_AIX43,-D_IBMR2,-D_POWER,-bpT:0x10000000,-bpD:0x20000000
127      w
128      8321
129      q
130      $ env CC=xlc CPP="xlc -E -F/tmp/ibmcxx.cfg" configure
131
132 There is a bug in AFS 3.4 version 5.38 for AIX 4.3 that causes the
133 kernel to panic in some cases. There is a hack for this in `login', but
134 other programs could be affected also. This seems to be fixed in
135 version 5.55.
136
137 C2 problems
138 -----------
139
140 The programs that checks passwords works with `passwd', OTP, and
141 Kerberos paswords. This is problem if you use C2 security (or use some
142 other password database), that normally keeps passwords in some obscure
143 place. If you want to use Kerberos with C2 security you will have to
144 think about what kind of changes are necessary. See also the discussion
145 about Digital's SIA and C2 security, see *Note Digital SIA::.
146
147