4.83 Release Notes for Linux

Back to 4.83 Release Notes.

CONTENTS

    I.   LINUX REQUIREMENTS
    II.  XVIEW PROGRAMS
    III. ENDIAN ISSUES
    IV.  THORSERVER
    V.   CTYPE SYMBOLS IN LIBC

---------------------------------------------------------------------------

I.   LINUX REQUIREMENTS

    The 4.83 Linux release for Daylight software needs the following:

      o) An Intel or Intel-Compatible based PC running Linux
         with networking.

      o) RedHat Linux 7.1 - 7.3, 8.0, 9.0, ES2.1, ES3.0.

      o) An ethernet card on the PC via which the PC is networked.
         This card is absolutely necessary as its MAC address
         is used for licensing.

    At this moment there is no support for clustered Linux in this release.

---------------------------------------------------------------------------

II.  XVIEW PROGRAMS

    There are a set of xview-based graphical programs included in the 
    Daylight 4.83 distribution. To run these, xview needs to be installed
    on the client. The xview RPMs are not standard and come with the 
    extra applications disk in Deluxe versions of RedHat Linux.

    For convenience, we include the XView distribution under the
    directory:  $DY_ROOT/exotic/XView/linux.  

    Furthermore, to use the 'Print Preview' option in the XV applications,
    one must install the 'gv' package.  The 'gv' package is included on
    the Linux RedHat distribution.

---------------------------------------------------------------------------

III. ENDIAN ISSUES

    Intel and Intel-compatible processors, unlike the SGI MIPS or 
    Sun SPARC processors, are little endian. Endianness refers to how
    the byte-ordering which the processor uses internally to store
    numbers. A big endian processor like the Sun SPARC or SGI MIPS
    processor represents a number 0x1000, as 0x1000 internally.
    A little endian processor like the Intel Pentium represents this
    as 0x0001 internally instead.  The ordering of the individual bytes
    is swapped.  This is a factor when performing datatype conversion
    and writing binary files.

    The Daylight 4.8 software has been written so that endianness is never an
    issue. Hence all Daylight Database files may be used interchangeably
    between Sun, SGI or Intel-Linux computers. The only case where endianness
    is an issue is in the clogp binary database files. You cannot use a
    fragment database binary file created on a Sun or SGI on an Intel Linux
    computer. However the textual form of the fragment files can be
    interchanged and used. When the clogp program runs the first time, it
    checks for a binary file and generates it, if not present, from the text
    file. The generated binary file is of the correct endianness for
    the system.

---------------------------------------------------------------------------

IV. THORSERVER

    The thorserver uses 32-bit file offsets and has a database file size
    limit of 2GB.  Writing data beyond the limit will cause an I/O fault
    and database corruption.  As a protective measure, the thorserver
    will deny I/O and issue a nonfatal error when a load of a TDT begins
    within 1MB of the limit.  If you want to load large (>1MB) TDT's,
    you are unprotected from writing beyond the limit.

---------------------------------------------------------------------------

V. CTYPE SYMBOLS in LIBC

    The following information addresses a linking issue which arises
    on later Red Hat versions in the following situations:

    - Running Red Hat 9 or ES3.0 (or later, presumably)
    - Statically linking a Daylight toolkit program 

    One will get errors from the link step:

      undefined reference to '__ctype_b'
      undefined reference to '__ctype_tolower'
      undefined reference to '__ctype_toupper'

    Red Hat only guarantees forwards binary compatibility for
    executables and shared object libraries; not for object
    files or archives.  The Daylight toolkit archives are
    built using Red Hat 7.1.  Red Hat removed the symbols
    __ctype_b, __ctype_lower and  __ctype_upper from glibc
    beginning with version 2.3. 

    The three symbols were removed in favor of locale-aware
    versions, and the older versions are no longer be
    available.  Red Hat has indicated that they don't consider
    this a bug and have no plans to change the behavior.

    There are two simple workarounds:

    First, link dynamically rather than statically.  So, in the
    makefile or link statement, change the references to all
    of the Daylight libraries as follows:

    Static:

    gcc -o myprogram.exe myprogram.o ... libdt_smiles.a

    Dynamic (preferred):

    gcc -o myprogram.exe myprogram.o ... -L $(DY_ROOT)/lib -ldt_smiles

    The second workaround comes from the Red Hat bugs database
    and is provided here unmodified for convenience.   See
    http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=111928
    for the complete listing of the fix:

    Customer Fix
    -------------                 
    We used a brute force approach. Make the following code into
    a .c file, and include it in your program. At the start of 
    main(), call ctSetup().

    Make sure you compile statically or else the dynamic loader will 
    cause problems.

    I've seen others use macros, but this worked good enough for us... 

    #include <ctype.h>

    __const unsigned short int *__ctype_b;
    __const __int32_t *__ctype_tolower;
    __const __int32_t *__ctype_toupper;

    void ctSetup()
    {
    __ctype_b = *(__ctype_b_loc());
    __ctype_toupper = *(__ctype_toupper_loc());
    __ctype_tolower = *(__ctype_tolower_loc());
    }

    Also, additional information is available in the bugs
    database at redhat.com.   A search for the string "__ctype_b" 
    at http://bugzilla.redhat.com/bugzilla/ is the simplest
    way to get the latest information.  As of Jan, 28, 2004,
    the following entries were found:

    http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=76402
    http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=86465
    http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=90515
    http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=91290
    http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=111928

Back to 4.83 Release Notes.