W3C home > Mailing lists > Public > www-lib@w3.org > October to December 2001

Various bugs found while building latest CVS source

From: Phil Nitschke <Phil.Nitschke@youramigo.com>
Date: 06 Nov 2001 12:06:39 +1030
To: www-lib@w3.org
Message-ID: <lxhes8el3s.fsf@YourAmigo.com>
Hello,

I found these errors in the libwww source; no doubt not too many people
compile the code with the same options as I did ;-).  In brief:

* HTDNS.c
    GETHOSTBYNAME_R should be replaced with HAVE_GETHOSTBYNAME_R,
    throughout.

* HTSQL.c
    Compilation error.  Here is the required patch:

        diff -w -i -b -r2.2 HTSQL.c
        41c41
        < 	struct * pgmt = gmtime_r(&t, &gmt);
        ---
        > 	struct tm *pgmt = gmtime_r(&t, &gmt);

* System files (e.g. <assert.h>) included _before_ wwwsys.h (and thereby
  bypassing the output of "configure"); these generate warnings on my
  system:
        Library/src/SGML.c
        PICS-client/src/CSApp.c
        LineMode/src/GridText.c

* Link Errors
    When configuring using --with-socks, the code would not link, due
    to some undefined references.  My system only has libsocks4
    installed.  Full details are found below.

* --enable-posix
    Why is it necessary (in configure.in, around line 990) to both
    AC_DEFINE(_POSIX_SOURCE) and add -D_POSIX_SOURCE to the CFLAGS ?
        (Why isn't the first approach sufficient?)

Now the boring details:

    My System: Debian/GNU Linux 2.4.4 i686 unknown
    Tools: "up-to-date" versions of gcc, automake, autoconf, libtool, etc.
    Configuration: this configuration did _not_ work:

    ./configure                  \
        --enable-reentrant       \
        --enable-signals         \
        --prefix=/usr            \
        --with-gnu-ld            \
        --with-mysql=mysqlclient \
        --with-regexp            \
        --with-socks             \
        --with-ssl               \
        --with-zlib

Relevant configure output:
    checking whether to support direct WAIS access.... no
    checking whether to support zlib compress/decompress... yes
    checking whether to support POSIX regex... no
    checking whether to support SOCKS... yes
    checking for SOCKSconnect in -lsocks5... (cached) no
    checking for Rconnect in -lsocks... (cached) yes
    checking whether to support mysql access.... yes
    checking for mysqlclient... -L. -lmysqlclient
    checking whether we include the Expat XML parser.... yes
    checking whether we include MD5 support for HTTP Digest Authentication.... yes
    checking whether we can find OpenSSL... yes
    checking whether to use internal signal handlers... yes
    checking whether to disable Nagle's algorithm... yes
    checking whether to accept new rule files without asking an end user.... no
    checking whether to disable HTTP/1.1 pipelining... no
    checking whether to use MUX as transport for HTTP.... no
    checking whether to define _REENTRANT... yes
    checking for ctime_r... yes, and it takes 2 arguments
    checking for readdir_r... yes, and it takes 3 arguments
    checking for gethostbyname_r... yes, and it takes 6 arguments
    checking for gethostbyaddr_r... yes, and it takes 8 arguments
    checking for getlogin_r... yes, and it returns an int
    checking whether to define _POSIX_SOURCE... no

* The compilation error, due to --enable-socks being passed to configure:
        Installed library is libsocks4 Version: 4.3.beta2-11.1

    make[3]: Entering directory `/users/phil/ROBOTS_SPIDERS_ETC/src/w3c-libwww-ssl-5.3.2/Library/Examples'
    /bin/sh ../../libtool --mode=link gcc  -g -O2 -D_REENTRANT  -o head  head.o ../src/libwwwinit.la 	../src/libwwwapp.la 	../../Library/src/libwwwxml.la ../../modules/expat/xmlparse/libxmlparse.la ../../modules/expat/xmltok/libxmltok.la ../src/libwwwhtml.la 	../src/libwwwtelnet.la 	../src/libwwwnews.la 	../src/libwwwhttp.la 	../src/libwwwmime.la 	../src/libwwwgopher.la 	../src/libwwwftp.la 	../src/libwwwdir.la 	../src/libwwwcache.la 	../src/libwwwstream.la 	../src/libwwwfile.la 	../src/libwwwmux.la 	../src/libwwwtrans.la 	../src/libwwwcore.la 	../src/libwwwutils.la 	../../Library/src/SSL/libwwwssl.la 	-lm ../../Library/src/libwwwzip.la  ../../Library/src/libwwwsql.la ../../modules/md5/libmd5.la -lsocks -ldl  -lz -L. -lmysqlclient -L/usr/lib -lssl -lcrypto
    gcc -g -O2 -D_REENTRANT -o .libs/head head.o ../src/.libs/libwwwinit.so -lsocks -ldl -lz -L. -lmysqlclient -L/usr/lib -lssl -lcrypto ../src/.libs/libwwwapp.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../../Library/src/.libs/libwwwxml.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../../modules/expat/xmlparse/.libs/libxmlparse.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../../modules/expat/xmltok/.libs/libxmltok.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwhtml.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwtelnet.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwnews.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwhttp.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwmime.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwgopher.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwftp.so -lsocks -ldl -lz -lmysqlclient -lssl -lcr!
ypto ../src/.libs/libwwwdir.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwcache.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwstream.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwfile.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwmux.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwtrans.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwcore.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../src/.libs/libwwwutils.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../../Library/src/SSL/.libs/libwwwssl.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto -lm ../../Library/src/.libs/libwwwzip.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../../Library/src/.libs/libwwwsql.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto ../../modules/md5/.libs/libmd5.so -lsocks -ldl -lz -lmysqlclient -lssl -lcrypto -lsocks -ldl -lz -L. -lmysqlclient -L/usr/lib -lssl -lcrypto
    ../src/.libs/libwwwapp.so: undefined reference to `Rfclose'
    ../src/.libs/libwwwftp.so: undefined reference to `Rclose'
    ../src/.libs/libwwwtrans.so: undefined reference to `Rread'
    ../src/.libs/libwwwtrans.so: undefined reference to `Rwrite'
    ../src/.libs/libwwwcore.so: undefined reference to `Rgetpeername'
    collect2: ld returned 1 exit status
    make[3]: *** [head] Error 1
    make[3]: Leaving directory `/users/phil/ROBOTS_SPIDERS_ETC/src/w3c-libwww-ssl-5.3.2/Library/Examples'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/users/phil/ROBOTS_SPIDERS_ETC/src/w3c-libwww-ssl-5.3.2/Library'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/users/phil/ROBOTS_SPIDERS_ETC/src/w3c-libwww-ssl-5.3.2'
    make: *** [all-recursive-am] Error 2
    make: Leaving directory `/users/phil/ROBOTS_SPIDERS_ETC/src/w3c-libwww-ssl-5.3.2'

I did get the system to compile with this configure line:

    ./configure                  \
        --enable-nagle           \
        --enable-posix           \
        --enable-reentrant       \
        --enable-signals         \
        --prefix=/usr            \
        --with-gnu-ld            \
        --with-mysql=mysqlclient \
        --with-regexp            \
        --with-ssl               \
        --with-zlib

A final question: is Jose Kahan (or anyone else) still patching the
source, particularly with fixes to blatant bugs?

TIA,

--
Phil   +----------------------------------------------------------+(\
     _/_)    YourAmigo Pty Ltd     http://www.YourAmigo.com/      |( \
  _/// /   _ =================  Phone Intl.: +61-8-8211-9211  _   |_) )_
 (((( (|  /_)             mailto:Phil.Nitschke@YourAmigo.com (_\  |/ /)))
  \\\\ \_/ / Address:                            <standard>   \ \_/ ////
   \      /    80 Gilbert Street, Adelaide      <disclaimers>  \      /
    )   _/     South Australia  5000  Australia    <apply>      \_   (
   /   /----------------------------------------------------------\   \
  /   /                                                            \   \
Received on Monday, 5 November 2001 20:36:45 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:40 GMT