NSPR-4.36

Introduction to NSPR

Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc like functions.

Installation of NSPR

Install NSPR by running the following commands:

cd nspr &&

sed -i '/^RELEASE/s|^|#|' pr/src/misc/Makefile.in &&
sed -i 's|$(LIBRARY) ||'  config/rules.mk         &&

./configure --prefix=/usr   \
            --with-mozilla  \
            --with-pthreads \
            $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make

The test suite is designed for testing changes to nss or nspr and is not particularly useful for checking a released version (e.g. it needs to be run on a non-optimized build with both nss and nspr directories existing alongside each other).

Now, as the root user:

make install

32-bit Installation of NSPR

First clean the directory by running the following command:

make distclean

Install lib32-NSPR by running the following commands:

CC="gcc -m32" CXX="g++ -m32"         \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
./configure --prefix=/usr            \
            --libdir=/usr/lib32      \
            --host=i686-pc-linux-gnu \
            --with-mozilla           \
            --with-pthreads          \
            --disable-64bit &&

make

Now, as the root user:

make DESTDIR=$PWD/DESTDIR install     &&
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR                        &&
ldconfig

Possible Parameters

--disable-option-checking: This parameter ignores incorrect parameters.

--enable-x32: This parameter enables x32-bit support, not to be confused with 32-bit. Meant for 64-bit systems.

--enable-64bit: This parameter enables 64-bit support, meant for and needed by 64-bit systems.

--enable-mdupdate: This parameter enables some compilers' mdupdate feature.

--enable-cplus: This parameter enables some of the C++ API routines.

--enable-strip: This parameter enables stripping the built libraries and programs of debug symbols.

--enable-user-pthreads: This parameter enables the use of pthreads.

--enable-nspr-threads: This parameter enables building the classic NSPR threads.

--enable-ipv6: This parameter enables building in ipv6 support.

--enable-wrap-malloc: This parameter enables wrapping malloc calls (meant to be used when linking via the GNU linker).

--with-mozilla: This option enables building with Mozilla support.

--with-ccache=<PATH>: This parameter enables compiling with ccache.

--with-pthreads: This parameter uses the system pthreads library.

Command Explanations

sed -ri '/^RELEASE/s/^/#/' pr/src/misc/Makefile.in: This sed disables installing two unneeded scripts.

sed -i 's#$(LIBRARY) ##' config/rules.mk: This sed disables installing the static libraries.

--with-mozilla: This parameter adds Mozilla support to the libraries (required if you want to build any other Mozilla products and link them to these libraries).

--with-pthreads: This parameter forces use of the system pthread library.

--enable-64bit: The --enable-64bit parameter is required on an x86_64 system to prevent configure failing with a claim that this is a system without pthread support. The [ $(uname -m) = x86_64 ] test ensures it has no effect on a 32 bit system. Keep the line if intending to do multilib, and the lib32 instructions will be down below.

Contents

Installed Programs: nspr-config
Installed Libraries: libnspr4.so, libplc4.so, and libplds4.so
Installed Directories: /usr/include/nspr

Short Descriptions

nspr-config

provides compiler and linker options to other packages that use NSPR

libnspr4.so

contains functions that provide platform independence for non-GUI operating system facilities such as threads, thread synchronization, normal file and network I/O, interval timing and calendar time, basic memory management and shared library linking

libplc4.so

contains functions that implement many of the features offered by libnspr4

libplds4.so

contains functions that provide data structures