Appendix G Supported systems
Following is a list of systems on which the mpatrol library has been built and
tested. The system details include the operating system and version, the
processor type, the object file format and the compiler used to compile the
library and tests. The details following each system list any features of the
library that are not (or cannot be) supported on that system.
- AIX 4.1, IBM RS/6000, XCOFF, cc
- The thread-safe version of the library does not work.
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- There is a problem obtaining the program's executable filename when using the
shared library version of mpatrol.
- The shared library version of mpatrol does not currently override the dynamic
memory allocation functions that are called from other shared libraries and so
will only affect object files that are statically linked. If this is a problem
then should link your programs with the following additional compiler options in
order to perform a static link instead of a dynamic link: -bnoautoimp
-bimport:/lib/syscalls.exp and also -bimport:/lib/threads.exp
if linking with libmpatrolmt.a.
- A makefile called Makefile.aix is supplied in build/unix which
will build the mpatrol library as an AIX shared library. The shared library
will be embedded within the mpatrol archive library as is done with the system
libraries.
- The
__mp_init_
initialisation function feature does not work since
function entry points need to be referenced through the TOC.
- The --dynamic option to the mpatrol command has no effect.
- DG/UX 4.11, Intel Pentium Pro, ELF32, gcc
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The --dynamic option to the mpatrol command has no effect.
- DG/UX 4.20MU07, Intel Pentium Pro, ELF32, gcc
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The --dynamic option to the mpatrol command does not work
unless libelf.so is available.
- DG/UX 4.11, Motorola 88100, ELF32, gcc
- The thread-safe version of the library does not work if the mpatrol library is
built as a shared library.
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- Call stack traversal only works with unoptimised code.
- The --dynamic option to the mpatrol command has no effect.
- DRS/NX 6.2, SPARC V7, ELF32, cc
- The option -DSYSTEM=SYSTEM_DRSNX must be added to the
CFLAGS
section in the Makefile before building the library.
- The thread-safe version of the library does not work. This is because there
does not appear to be any evidence that this version of the operating system
supports threads.
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The --dynamic option to the mpatrol command has no effect.
- DYNIX/ptx 4.5, Intel Pentium Pro, ELF32, cc
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The --dynamic option to the mpatrol command does not work
unless libelf.so is available.
- FreeBSD 4.2, Intel Celeron, ELF32, gcc
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- On ELF-based systems, the mpatrol library requires either the ELF access library
or the GNU BFD library to be installed on the system, otherwise no symbols can
be read from executable files or shared libraries and the library must be built
with the -DFORMAT=FORMAT_NONE option. No such extra libraries are
required on a.out-based systems.
- The --dynamic option to the mpatrol command does not appear
to work correctly, giving spurious errors in the log file.
- HP/UX 10.20, HP PA/RISC 9000, BFD, gcc
- The thread-safe version of the library does not work. This is because there
does not appear to be any evidence that this version of the operating system
supports threads.
- The OFLOWWATCH option has no effect.
- The --dynamic option to the mpatrol command has no effect.
- Interix 3.5, Intel Pentium 4, PE-COFF, gcc
- The OFLOWWATCH option has no effect.
- The USEMMAP option must be used in order for the PAGEALLOC
option to detect illegal memory accesses.
- The USEDEBUG option has no effect.
- The -fPIC option for gcc should not be used when building
the mpatrol shared libraries as it currently doesn't generate correct code.
- The shared libraries libmpatrol.so and libmpatrolmt.so must be
linked with the dynamic linker /lib/ld.so at build time in order for the
--dynamic option to the mpatrol command to be able to find
the symbols for any dependent shared libraries.
- IRIX 5.3, MIPS R4000, ELF32, cc
- The thread-safe version of the library does not work. This is because there
does not appear to be any evidence that this version of the operating system
supports threads.
- This version of the operating system only allows up to 100 user-programmable
software watch points, which means that the OFLOWWATCH option will not
work properly if more than 50 memory allocations exist at one time.
- The USEDEBUG option has no effect.
- Stack traversal may be unreliable from signal-handlers.
- Red Hat Linux 6.0, Intel Pentium III, BFD, g++
- The OFLOWWATCH option has no effect.
- The CHECKFORK option does not work properly in multithreaded programs
due to each thread having different process identifiers.
- The --dynamic option to the mpatrol command does not work
unless libiberty.so and libintl.so are available.
- Red Hat Linux 6.1, Intel Pentium III, BFD, g++
- The thread-safe version of the library does not work due to the system threads
library calling
malloc()
and bzero()
recursively.
- The OFLOWWATCH option has no effect.
- The CHECKFORK option does not work properly in multithreaded programs
due to each thread having different process identifiers.
- The --dynamic option to the mpatrol command does not work
unless libiberty.so and libintl.so are available.
- Red Hat Linux 6.2, Intel Pentium III, BFD, g++
- The OFLOWWATCH option has no effect.
- The CHECKFORK option does not work properly in multithreaded programs
due to each thread having different process identifiers.
- The --dynamic option to the mpatrol command does not work
unless libiberty.so and libintl.so are available.
- Red Hat Linux 7.x, Intel Pentium III, BFD, g++
- The OFLOWWATCH option has no effect.
- The CHECKFORK option does not work properly in multithreaded programs
due to each thread having different process identifiers.
- The --dynamic option to the mpatrol command does not work
unless libiberty.so and libintl.so are available.
- Red Hat Linux 5.1, Motorola 68040, BFD, gcc
- The thread-safe version of the library does not work due to the system threads
library calling
malloc()
and bzero()
recursively.
- The OFLOWWATCH option has no effect.
- The CHECKFORK option does not work properly in multithreaded programs
due to each thread having different process identifiers.
- The --dynamic option to the mpatrol command does not work
unless libiberty.so and libintl.so are available.
- Red Hat Linux 5.1, Motorola 68040, ELF32, gcc
- The thread-safe version of the library does not work due to the system threads
library calling
malloc()
and bzero()
recursively.
- The OFLOWWATCH option has no effect.
- The CHECKFORK option does not work properly in multithreaded programs
due to each thread having different process identifiers.
- The USEDEBUG option has no effect.
- The --dynamic option to the mpatrol command does not work
unless libelf.so is available.
- SuSE Linux 7.1, Intel Pentium II, BFD, g++
- The OFLOWWATCH option has no effect.
- The CHECKFORK option does not work properly in multithreaded programs
due to each thread having different process identifiers.
- The --dynamic option to the mpatrol command does not work
unless libiberty.so and libintl.so are available.
- LynxOS 3.0.0, Intel Pentium Pro, BFD, gcc
- The OFLOWWATCH option has no effect.
- The USEMMAP option has no effect.
- There is currently no support for reading symbols from COFF shared libraries.
You should currently always perform a static link instead of a dynamic link
when linking your program, but that is the default on LynxOS anyway.
- The --dynamic option to the mpatrol command has no effect.
- LynxOS 3.0.0, Intel Pentium Pro, COFF, gcc
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The USEMMAP option has no effect.
- There is currently no support for reading symbols from COFF shared libraries.
You should currently always perform a static link instead of a dynamic link
when linking your program, but that is the default on LynxOS anyway.
- The --dynamic option to the mpatrol command has no effect.
- LynxOS 3.0.0, PowerPC, BFD, gcc
- The OFLOWWATCH option has no effect.
- The USEMMAP option has no effect.
- There is currently no support for reading symbols from XCOFF shared libraries.
You should currently always perform a static link instead of a dynamic link
when linking your program, but that is the default on LynxOS anyway.
- The
__mp_init_
initialisation function feature does not work since
function entry points need to be referenced through the TOC.
- The --dynamic option to the mpatrol command has no effect.
- LynxOS 3.0.0, PowerPC, XCOFF, gcc
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The USEMMAP option has no effect.
- There is currently no support for reading symbols from XCOFF shared libraries.
You should currently always perform a static link instead of a dynamic link
when linking your program, but that is the default on LynxOS anyway.
- The
__mp_init_
initialisation function feature does not work since
function entry points need to be referenced through the TOC.
- The --dynamic option to the mpatrol command has no effect.
- SINIX 5.43, MIPS R4000, ELF32, cc
- The thread-safe version of the library does not work. This is because there
does not appear to be any evidence that this version of the operating system
supports threads.
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- Stack traversal may be unreliable from signal-handlers.
- The --dynamic option to the mpatrol command has no effect.
- Solaris 2.6, Intel Pentium Pro, BFD, gcc
- Solaris 2.6, Intel Pentium Pro, ELF32, gcc
- The USEDEBUG option has no effect.
- Solaris 2.5, SPARC V8, BFD, gcc
- The thread-safe version of the library does not work due to a problem with a
system library.
- The OFLOWWATCH option has no effect. The
-DMP_PROCFS_SUPPORT=0 and -DMP_WATCH_SUPPORT=0 options must
be added to
CFLAGS
in the Makefile.
- Solaris 2.5, SPARC V8, ELF32, gcc
- The thread-safe version of the library does not work due to a problem with a
system library.
- The OFLOWWATCH option has no effect. The
-DMP_PROCFS_SUPPORT=0 and -DMP_WATCH_SUPPORT=0 options must
be added to
CFLAGS
in the Makefile.
- The USEDEBUG option has no effect.
- Solaris 7, SPARC V9, BFD, g++
- The mpatrol library can be compiled and run in a 64-bit environment.
- Solaris 7, SPARC V9, ELF32/ELF64, g++
- The USEDEBUG option has no effect.
- The mpatrol library can be compiled and run in a 64-bit environment.
- Solaris 8, SPARC V9, BFD, g++
- The mpatrol library can be compiled and run in a 64-bit environment.
- Solaris 8, SPARC V9, ELF32/ELF64, g++
- The USEDEBUG option has no effect.
- The mpatrol library can be compiled and run in a 64-bit environment.
- Tru64 5.0, Alpha, BFD, cxx
- The thread-safe version of the library has not yet been tested.
- The OFLOWWATCH option has no effect.
- The system exception-handling library (libexc) is used for call stack traversal.
Unfortunately, this library makes several calls to
malloc()
when
initialising itself and this can sometimes result in a recursive loop when used
in combination with the mpatrol library. If this occurs, the mpatrol library
must be built without the malloc.o module.
- The mpatrol library can be compiled and run in a 64-bit environment.
- UnixWare 7.1.1, Intel Pentium II, ELF32, gcc
- The option -DSYSTEM=SYSTEM_UNIXWARE must be added to the
CFLAGS
section in the Makefile before building the library.
- The thread-safe version of the library does not work.
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The --dynamic option to the mpatrol command has no effect.
- AmigaOS 3.1, Motorola 68040, BFD, gcc
- No memory protection so the PAGEALLOC option has no effect.
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The USEMMAP option has no effect.
- The EDIT and LIST options have no effect.
- Limited support for call stack traversal.
- Limited support for reading symbols.
- No detection of illegal memory accesses.
- The
__mp_init_
initialisation function feature does not work.
- The --dynamic option to the mpatrol command has no effect.
- The mptrace command has no GUI.
- The mpsym and hexwords commands do not work unless
gdb and the GNU text processing tools are installed.
- The mpedit command does not work.
- AmigaOS 3.1, Motorola 68040, n/a, SAS/C
- No automatic override of
malloc()
, etc., without inclusion of
mpatrol.h.
- No memory protection so the PAGEALLOC option has no effect.
- The OFLOWWATCH option has no effect.
- The USEDEBUG option has no effect.
- The USEMMAP option has no effect.
- The EDIT and LIST options have no effect.
- No support for call stack traversal.
- No support for reading symbols.
- No detection of illegal memory accesses.
- The C++ compiler may come with an older version of the standard C++ library
which does not place
set_new_hander()
in the std
namespace. The
mpatrol.h header file and the cplus.c source file will need to be
changed accordingly.
- The
__mp_init_
initialisation function feature does not work.
- The --dynamic option to the mpatrol command has no effect.
- The mptrace command has no GUI.
- The mpsym, mpedit and hexwords commands do not
work.
- Microsoft Windows NT 4.0, Intel Pentium III, IMAGEHLP, Microsoft Visual C++
- The OFLOWWATCH option has no effect.
- The USEMMAP option has no effect.
- The EDIT and LIST options have no effect.
- The C++ compiler may come with an older version of the standard C++ library
which does not place
set_new_hander()
in the std
namespace. The
mpatrol.h header file and the cplus.c source file will need to be
changed accordingly.
- There is currently a problem when mixing the archive library version of
mpatrol with the DLL version of the Microsoft Runtime Library, and vice versa.
- The
__mp_init_
initialisation function feature does not work.
- The --dynamic option to the mpatrol command has no effect.
- The mptrace command has no GUI.
- The mpsym, mpedit and hexwords commands do not
work.