Document the recently added WITHOUT_SRCS variable.
[dragonfly.git] / contrib / amd / BUGS
1 # -*- text -*-
2
3             LIST OF KNOWN BUGS IN AM-UTILS OR OPERATING SYSTEMS
4
5
6 (1) mips-sgi-irix*
7
8 [1A] known to have flaky NFS V.3 and TCP.  Amd tends to hang or spin
9 infinitely after a few hours or days of use.  Users must install recommended
10 patches from vendor.  Patches help, but not all the time.  Otherwise avoid
11 using NFS V.3 and TCP on these systems, by setting
12
13         /defaults opts:=vers=2,proto=udp
14
15 [1B] yp_all() leaks a file descriptor.  Eventually amd runs out of file
16 descriptors and hangs.  Am-utils circumvents this by using its own version
17 of yp_all which uses udp and iterates over NIS maps.  The latter isn't as
18 reliable as yp_all() which uses TCP, but it is better than hanging.
19
20 (I have some reports that older version of hpux-9, with older libc, also
21 leak file descriptors.)
22
23
24 (2) alpha-unknown-linux-gnu (RedHat Linux 4.2)
25
26 hasmntopt(mnt, opt) can goes into an infinite loop if opt is any substring
27 of mnt->mnt_opts.  Redhat 5.0 does not have this libc bug.  Here is an
28 example program:
29
30 #include <stdio.h>
31 #include <mntent.h>
32 main()
33 {
34   struct mntent mnt;
35   char *cp;
36   mnt.mnt_opts = "intr,rw,port=1023,timeo=8,foo=br,retrans=110,indirect,map=/usr/local/AMD/etc/amd.proj,boo";
37   cp = hasmntopt(&mnt, "ro");
38   printf("cp = %s\n", cp);
39   exit(0);
40 }
41
42 It is possible that sufficiently newer version of libc for RH4.2 fix this
43 problem.
44
45
46 (3) mips-dec-ultrix4.3
47
48 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> reports
49
50 [3A] One needs the Kernel Config Files (UDTBIN430) subset installed to
51 compile am-utils, otherwise essential header files (net/if.h, net/route.h,
52 rpcsvc/mount.h, rpcsvc/yp_prot.h, rpcsvc/ypclnt.h, sys/proc.h) are
53 missing.
54
55 [3B] It's probably impossible to build am-utils with DEC C on Ultrix V4.3.
56 This compiler is pseudo-ANSI only.  Maybe the new ANSI C compiler in V4.3A
57 and beyond will do.  I successfully used gcc 2.8.1.
58
59 [3C] You need to build against a recent libhesiod (I used 3.0.2) and
60 libresolv/lib44bsd (I used BIND 4.9.5-P1).  The resolver routines in
61 libc seem to cause random memory corruption.  It is necessary to specify
62 LIBS=-l44bsd.  lib44bsd is a helper library of libresolv used to supply
63 functions like strdup which are missing on the host system.  This isn't
64 currently autoconfiscated.
65
66 [3D] You need to configure with CONFIG_SHELL=/bin/sh5 /bin/sh5 buildall;
67 /bin/sh cannot handle the shell functions used in buildall and is both
68 buggy and slow.
69
70 [3E] At least the gcc 2.7.0 fixincludes-mangled <sys/utsname.h> needs a
71 forward declaration of struct utsname to avoid lots of gcc warnings:
72
73 RCS file: RCS/utsname.h,v
74 retrieving revision 1.1
75 diff -u -r1.1 utsname.h
76 --- utsname.h   1995/06/19 13:07:01     1.1
77 +++ utsname.h   1998/01/27 12:34:26
78 @@ -59,6 +59,7 @@
79  #ifdef KERNEL
80  #include "../h/limits.h"
81  #else /* user mode */
82 +struct utsname;
83  extern int     uname _PARAMS((struct utsname *));
84  #endif
85  #define __SYS_NMLN 32
86
87
88 (4) powerpc-ibm-aix4.2.1.0
89
90 [4A] "Randall S. Winchester" <rsw@Glue.umd.edu> reports that for amd to
91 start, you need to kill and restart rpc.mountd and possibly also make sure
92 that nfsd is running.  Normally these are not required.
93
94 [4B] "Stefan Vogel" <vogel@physik.unizh.ch> reports that if your amq
95 executable dump core unexpectedly, then it may be a bug in gcc 2.7.x.
96 Upgrade to gcc 2.8.x or use IBM's xlC compiler.
97
98 [C] Do not link amd with libnsl.  It is buggy and causes amd to core dump
99 in strlen inside strdup inside svc_register().
100
101
102 (5) *-linux-gnu (RedHat Linux 5.1)
103
104 There's a UDP file descriptor leak in libnsl in RedHat Linux 5.1.  This
105 library part of glibc2.  Am-utils currently declares redhat 5.1 systems as
106 having a "broken yp_all" and using an internal, slower, leak-free version.
107 The leak is known to the glibc maintainers and a fix from them is due soon,
108 but it is not yet in the glibc-2.0.7-19 RPM.
109
110
111 (6) rs6000-ibm-aix4.1.x
112
113 A bug in libc results in an amq binary that doesn't work; amq -v dumps core
114 in xdr_string.  There is no known fix (source code or vendor patch) at this
115 time.  (Please let amd-dev know if you know of a fix.)
116
117
118 (7) *-aix4.3.2.0
119
120 The plock() function appears to fail with ENOMEM (Not Enough Space).  When
121 it fails, it consumes a lot of memory.  This appears to be an AIX bug.  I
122 think plock returns an error code, but it partially succeeds to lock some
123 pages, thus increasing memory consumption.  When partial failures occur, it
124 is possible that AIX fails to unlock those pages it did lock.  Solution:
125 turn off usage of plock on AIX.  Put plock=no in your amd.conf file (which
126 is the default if you do nothing).
127
128 Erez.