On many platforms that support a compilation environment for C where ints are 32 bits but longs and pointers are 64 bits (the LP64 model), it is possible to build the LDM system to support a huge product queue (larger than 2 or 4 gigabytes). This document includes instructions for building the LDM programs on such 64-bit platforms.
In general you cannot mix 64-bit LDM programs built for use with a huge product-queue with 32-bit LDM programs built for queues limited to less than 2 or 4 gigabytes in size. The formats of the two kinds of queues are incompatible. (32-bit LDMs can communicate with 64-bit LDMs on different computer systems, however)
Go to the instructions for the relevant platform:
It is not possible to have a product-queue larger than 2,147,483,647 bytes on this type of operating system because the product-queue is memory-mapped using the mmap(2) system-call and the length argument of that call is a 32-bit, unsigned integer which is, unfortunately, interpreted as a signed integer.
This will only work on SPARCv9 or later hardware architectures, and in particular not on SPARCv7, SPARCv8, or Intel. To check what architecture your platform uses, invoke
isainfo -n
Next, make sure the Sun package SUNWscpux is installed, which provides utilities for user interface and source build compatibility with SunOS 4.x, and in particular the library /usr/ucblib/sparcv9/librpcsoc.so which is necessary to build a 64-bit version of the LDM. You can either check for that library or check for the package installation with the command
pkginfo -l SUNWscpux
In order to use this library you need to make a change to the LDM src/configure script. Since this is somewhat of an exceptional case, we recommend that you copy the script to another name in the src directory, say, configure.sparcv9. Then edit the configure.sparcv9 script to replace the line
*) libs="-R/usr/ucblib -L/usr/ucblib -lrpcsoc -lnsl"with
*) libs="-R/usr/ucblib/sparcv9 -L/usr/ucblib/sparcv9 -lrpcsoc -lnsl"
Before actually running the configure.sparcv9 script, you must make sure -xarch=v9 is included in the CFLAGS environment variable. For example,
export CFLAGS=-xarch=v9
When the installation instructions tell you to execute the configure script, execute configure.sparcv9 instead.
It is not possible to have a product-queue larger than 4,294,967,295 bytes on a Linux for Intel system because the product-queue is memory-mapped using the mmap(2) system-call and the length argument of that call is a 32-bit, unsigned integer.
In order to have a product-queue larger than 2,147,483,647 bytes, it is necessary to include "-D_FILE_OFFSET_BITS=64" and "-D_LARGEFILE_SOURCE" in the CPPFLAGS environment variable prior to executing the configure script.