Network library netwib ------------------------------------------- | KNOWN PROBLEMS | ------------------------------------------- This file describes known problems (incompatibilities, unsupported features, errors, etc.). If you seek help (usage help, examples, etc.), it's better to read netwib-5.35.0-doc_html.tgz. You can also use "man netwib". Problems described in this file are (if you encounter an unknown problem, thanks for contacting me, as explained in ./doc/problemreport.txt): WHILE EXECUTING ./GENEMAKE 1: [Linux] exec ether_hostton ko Warning: you are on a computer with a bad ether_hostton. The library netwib will still be usable, but read ../doc/probleminstallunix.txt if you want to use the file /etc/ethers. [problem in /etc/nsswitch.conf] 2: [Linux] exec ether_hostton ko Warning: you are on a computer with a bad ether_hostton. The library netwib will still be usable, but read ../doc/probleminstallunix.txt if you want to use the file /etc/ethers. [problem in /etc/ethers] 3: ./genemake: Permission denied. 4: Warning: the directory '/usr/.../xyz' doesn't exists. 5: Error: the library libpcap is not installed. 6: config.check.tmp.c: pcap.h: No such file or directory. 7: pcap.h: net/bpf.h: No such file or directory. 8: /usr/bin/ld: cannot find -lpcap. WHILE COMPILING 9: [FreeBSD, Solaris] Warning: integer constant is unsigned in ANSI C, signed with -traditional. 10: [Solaris] Warning: implicit declaration of function `ether_hostton'. 11: [Solaris] Error: stat.c: aggregate value used where integer was expected. 12: [Linux] Error: /usr/include/linux/xyz.h: No such file or directory Error: /usr/include/asm/xyz.h: No such file or directory Error: linux/xyz.h: No such file or directory Error: asm/xyz.h: No such file or directory 13: [Solaris] Warning: SIG_IGN: function declaration isn't a prototype Warning: SIG_DFL: function declaration isn't a prototype Warning: SIG_xyz: function declaration isn't a prototype 14: [Linux] Warning in /usr/include/bits/string2.h ------------------------------------------------------------------------------- Problem 1: Problem synthesis: exec ether_hostton ko Warning: you are on a computer with a bad ether_hostton. The library netwib will still be usable, but read ../doc/probleminstallunix.txt if you want to use the file /etc/ethers. [problem in /etc/nsswitch.conf] Environment affected by the problem: Glibc-2.?? (<2.2.1) with "nisplus" or "db" in /etc/nsswitch.conf What's causing the problem: The problem arises when calling the function ether_hostton, and when the entry "nisplus" or "db" is in /etc/nsswitch.conf. Indeed, there is an error in glibc source (glibc-2.1.3): nis/nss_nisplus/nisplus-ethers.c, line 234: there is "if (name != NULL)" instead of "if (name == NULL)" Note: an email was sent to glibc developers. They applied a patch in glibc 2.2.1. Solution 1: Edit /etc/nsswitch.conf to replace the line: ethers: _here_nisplus_or_nis_or_db_is_written_ files by: ethers: files Indeed, the problems disappears when removing "nis", "nisplus" or "db". You should then execute "genemake" again (and compile and install) to ensure that netwib will use ether_hostton. Solution 2: Install glibc > 2.2.1. ------------------------------------------------------------------------------- Problem 2: Problem synthesis: exec ether_hostton ko Warning: you are on a computer with a bad ether_hostton. The library netwib will still be usable, but read ../doc/probleminstallunix.txt if you want to use the file /etc/ethers. [problem in /etc/ethers] Environment affected by the problem: /etc/ethers empty What's causing the problem: The problem arises when /etc/ethers exists, but is empty. Indeed, there is an error in glibc source (glibc-2.1.3): inet/ether_hton.c, line 76: fct has only four parameters, instead of five Note: an email was sent to glibc developers. They applied a patch in glibc 2.2.1. Solution 1: Remove the file /etc/ethers if it doesn't contain any line. Solution 2: Install glibc > 2.2.1. ------------------------------------------------------------------------------- Problem 3: Problem synthesis: ./genemake: Permission denied. Environment affected by the problem: All What's causing the problem: file-5.35.0-src.tgz wasn't uncompressed with a good program. Solution: Use: tar -zxvf file-5.35.0-src.tgz or gunzip file-5.35.0-src.tgz ; tar -xvf file-5.35.0-src.tar ------------------------------------------------------------------------------- Problem 4: Problem synthesis: Warning: the directory '/usr/.../xyz' doesn't exists. Environment affected by the problem: All What's causing the problem: The directory named 'xyz' does not exist on your system. Solution 1: Create the directory with: mkdir /usr/.../xyz Solution 2: Edit ../src/config.dat to specify an alternative installation directory. ------------------------------------------------------------------------------- Problem 5: Problem synthesis: Error: the library libpcap is not installed. Environment affected by the problem: All What's causing the problem: The library libpcap doesn't seem to be installed Solution 1: Libpcap isn't completely installed or configured Install it from http://www.tcpdump.org/. Solution 2: Verify that all packages are installed on your system. For example, for Debian, you have to install libpcapxx.deb (for the dynamic library) and libpcap-devxx.deb (for pcap.h). Solution 3: [if the error is about pcap.h] The file pcap.h is not located in a good directory: locate "pcap.h" If you find it in /somewhere/pcap.h, then link it: ln -s /somewhere/pcap.h /usr/local/include/pcap.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 4: [if the error is about bpf.h] The file bpf.h is not located in a good directory: locate "bpf.h" If you find it in /somewhere/bpf.h, then link it: ln -s /somewhere/bpf.h /usr/local/include/net/bpf.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 5: [if the error is about bpf.h] The file /usr/local/include/net/bpf.h or /usr/include/net/bpf.h is not on your system. Search the cdrom of your distribution to find the file "bpf.h", and install the corresponding missing package. Solution 6: [if the error is about -lpcap] The file libpcap.a/libpcap.so is not located in a good directory: locate "libpcap.a" ; locate "libpcap.so" If you find it in /somewhere/libpcap.a_or_so, then link it: ln -s /somewhere/libpcap.a /usr/local/lib/libpcap.a ln -s /somewhere/libpcap.so /usr/local/lib/libpcap.so Note: "/usr/local/lib/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/lib/" for example. ------------------------------------------------------------------------------- Problem 6: Problem synthesis: config.check.tmp.c: pcap.h: No such file or directory. Environment affected by the problem: All What's causing the problem: The library libpcap doesn't seem to be installed Solution 1: Libpcap isn't completely installed or configured Install it from http://www.tcpdump.org/. Solution 2: Verify that all packages are installed on your system. For example, for Debian, you have to install libpcapxx.deb (for the dynamic library) and libpcap-devxx.deb (for pcap.h). Solution 3: [if the error is about pcap.h] The file pcap.h is not located in a good directory: locate "pcap.h" If you find it in /somewhere/pcap.h, then link it: ln -s /somewhere/pcap.h /usr/local/include/pcap.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 4: [if the error is about bpf.h] The file bpf.h is not located in a good directory: locate "bpf.h" If you find it in /somewhere/bpf.h, then link it: ln -s /somewhere/bpf.h /usr/local/include/net/bpf.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 5: [if the error is about bpf.h] The file /usr/local/include/net/bpf.h or /usr/include/net/bpf.h is not on your system. Search the cdrom of your distribution to find the file "bpf.h", and install the corresponding missing package. Solution 6: [if the error is about -lpcap] The file libpcap.a/libpcap.so is not located in a good directory: locate "libpcap.a" ; locate "libpcap.so" If you find it in /somewhere/libpcap.a_or_so, then link it: ln -s /somewhere/libpcap.a /usr/local/lib/libpcap.a ln -s /somewhere/libpcap.so /usr/local/lib/libpcap.so Note: "/usr/local/lib/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/lib/" for example. ------------------------------------------------------------------------------- Problem 7: Problem synthesis: pcap.h: net/bpf.h: No such file or directory. Environment affected by the problem: All What's causing the problem: The library libpcap doesn't seem to be installed Solution 1: Libpcap isn't completely installed or configured Install it from http://www.tcpdump.org/. Solution 2: Verify that all packages are installed on your system. For example, for Debian, you have to install libpcapxx.deb (for the dynamic library) and libpcap-devxx.deb (for pcap.h). Solution 3: [if the error is about pcap.h] The file pcap.h is not located in a good directory: locate "pcap.h" If you find it in /somewhere/pcap.h, then link it: ln -s /somewhere/pcap.h /usr/local/include/pcap.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 4: [if the error is about bpf.h] The file bpf.h is not located in a good directory: locate "bpf.h" If you find it in /somewhere/bpf.h, then link it: ln -s /somewhere/bpf.h /usr/local/include/net/bpf.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 5: [if the error is about bpf.h] The file /usr/local/include/net/bpf.h or /usr/include/net/bpf.h is not on your system. Search the cdrom of your distribution to find the file "bpf.h", and install the corresponding missing package. Solution 6: [if the error is about -lpcap] The file libpcap.a/libpcap.so is not located in a good directory: locate "libpcap.a" ; locate "libpcap.so" If you find it in /somewhere/libpcap.a_or_so, then link it: ln -s /somewhere/libpcap.a /usr/local/lib/libpcap.a ln -s /somewhere/libpcap.so /usr/local/lib/libpcap.so Note: "/usr/local/lib/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/lib/" for example. ------------------------------------------------------------------------------- Problem 8: Problem synthesis: /usr/bin/ld: cannot find -lpcap. Environment affected by the problem: All What's causing the problem: The library libpcap doesn't seem to be installed Solution 1: Libpcap isn't completely installed or configured Install it from http://www.tcpdump.org/. Solution 2: Verify that all packages are installed on your system. For example, for Debian, you have to install libpcapxx.deb (for the dynamic library) and libpcap-devxx.deb (for pcap.h). Solution 3: [if the error is about pcap.h] The file pcap.h is not located in a good directory: locate "pcap.h" If you find it in /somewhere/pcap.h, then link it: ln -s /somewhere/pcap.h /usr/local/include/pcap.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 4: [if the error is about bpf.h] The file bpf.h is not located in a good directory: locate "bpf.h" If you find it in /somewhere/bpf.h, then link it: ln -s /somewhere/bpf.h /usr/local/include/net/bpf.h Note: "/usr/local/include/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/include/" for example. Solution 5: [if the error is about bpf.h] The file /usr/local/include/net/bpf.h or /usr/include/net/bpf.h is not on your system. Search the cdrom of your distribution to find the file "bpf.h", and install the corresponding missing package. Solution 6: [if the error is about -lpcap] The file libpcap.a/libpcap.so is not located in a good directory: locate "libpcap.a" ; locate "libpcap.so" If you find it in /somewhere/libpcap.a_or_so, then link it: ln -s /somewhere/libpcap.a /usr/local/lib/libpcap.a ln -s /somewhere/libpcap.so /usr/local/lib/libpcap.so Note: "/usr/local/lib/" might not be in the path searched by the compiler (this is the case for the gcc optional package of Solaris8), so use "/usr/lib/" for example. ------------------------------------------------------------------------------- Problem 9: Problem synthesis: Warning: integer constant is unsigned in ANSI C, signed with -traditional. Environment affected by the problem: FreeBSD 3.1, FreeBSD 4.0, Solaris 2.8 What's causing the problem: This error is in the definition of SIOCGIFCONF, which uses a signed number. Solution: You should edit /usr/include/sys/ioccom.h to correct IOC_IN: "#define IOC_IN 0x80000000u" instead of "#define IOC_IN 0x80000000" ------------------------------------------------------------------------------- Problem 10: Problem synthesis: Warning: implicit declaration of function `ether_hostton'. Environment affected by the problem: Solaris 2.x What's causing the problem: The functions "ether_hostton" and "ether_ntohost" are never defined. Solution: You should edit "/usr/include/netinet/if_ether.h" to add: int ether_hostton(char *hostname, struct ether_addr *e); int ether_ntohost(char *hostname, struct ether_addr *e); ------------------------------------------------------------------------------- Problem 11: Problem synthesis: Error: stat.c: aggregate value used where integer was expected. Environment affected by the problem: Solaris 2.7 What's causing the problem: Older includes contain a typedef for u_longlong_t and longlong_t in /usr/include/sys/types.h. It defines them as an union to support older compilers. They have to be redefined as 'long long' if you have a recent compiler. In other cases, edit netwib/inc/maininc.h to undefine support for 64 bit file access (undefine _LARGEFILE_SOURCE and _FILE_OFFSET_BITS). Solution: You should edit "/usr/include/sys/types.h" to replace: typedef union ... longlong_t; typedef union ... u_longlong_t; by: typedef long long longlong_t; typedef unsigned long long u_longlong_t; ------------------------------------------------------------------------------- Problem 12: Problem synthesis: Error: /usr/include/linux/xyz.h: No such file or directory Error: /usr/include/asm/xyz.h: No such file or directory Error: linux/xyz.h: No such file or directory Error: asm/xyz.h: No such file or directory Environment affected by the problem: Linux What's causing the problem: Standard includes are needed to compile. Solution 1: Install the package libc6-dev_xyz For example, under Debian: libc6-dev_2.x.x-xx.deb. Solution 2: The new kernel includes have to be reachable by the compiler. For example: ln -s /usr/src/linux-x.x.xx/include/asm /usr/include/asm ln -s /usr/src/linux-x.x.xx/include/linux /usr/include/linux ------------------------------------------------------------------------------- Problem 13: Problem synthesis: Warning: SIG_IGN: function declaration isn't a prototype Warning: SIG_DFL: function declaration isn't a prototype Warning: SIG_xyz: function declaration isn't a prototype Environment affected by the problem: Solaris What's causing the problem: Prototype for SIG_xyz is incorrect. Solution: Edit /usr/include/sys/iso/signal_iso.h (or /usr/include/sys/signal.h) to replace: #define SIG_IGN (void(*)())1 by: #define SIG_IGN (void(*)(int))1 ------------------------------------------------------------------------------- Problem 14: Problem synthesis: Warning in /usr/include/bits/string2.h Environment affected by the problem: Linux What's causing the problem: Standard inlines do not compile without warning. Solution 1: Edit netwib/inc/maininc.h to add #define __NO_INLINE__ 1 Solution 2: Edit /usr/include/string.h at line 359 (may vary, it's just before "#include ") to add #define __NO_STRING_INLINES 1