HP-UX Reference (11i v2 07/12) - 5 Miscellaneous (vol 9)

a
ARIES(5) ARIES(5)
(HP Integrity Systems Only)
NAME
ARIES, aries - dynamically and transparently execute PA-RISC HP-UX applications on Integrity systems
running HP-UX
DESCRIPTION
ARIES is a dynamic binary translator which transparently executes 32-bit and 64-bit PA-RISC HP-UX
applications on Integrity systems running HP-UX. The name
ARIES expands to Automatic Recompilation
and
Integrated Environment Simulation.
ARIES consists of the following four shared libraries:
/usr/lib/hpux32/pa_boot32.so
/usr/lib/hpux32/aries32.so
/usr/lib/hpux64/pa_boot64.so
/usr/lib/hpux64/aries64.so
aries32.so
is the shared library that contains the ARIES dynamic translator for 32-bit applications.
pa_boot32.so is the dynamic loader for aries32.so. Likewise, aries64.so and
pa_boot64.so are the 64-bit ARIES components.
The HP-UX operating system kernel on Integrity systems recognizes PA-RISC HP-UX executables and
invokes ARIES to dynamically translate and execute the application. For 32-bit PA-RISC HP-UX execut-
ables, the Integrity HP-UX kernel invokes pa_boot32.so , which loads aries32.so into memory,
relocates it and sets up internal memory segments. aries32.so starts emulation at the program entry
point. Likewise, pa_boot64.so and aries64.so are loaded for 64-bit PA-RISC HP-UX executables.
ARIES consists of two major sub-systems:
Instruction Set Architecture (ISA) emulation engine
Environment emulation engine
The ISA emulation engine is comprised of a fast interpreter and a dynamic translator. The interpreter
emulates one instruction at a time. After a sufcient number of iterations over a PA-RISC basic block, the
dynamic translator is invoked to translate the basic block into functionally equivalent IA64 native code,
which is stored in translation buffer. Subsequent references to translated basic blocks do not require
further interpretation or translation.
The environment emulation engine is responsible for the emulation of PA-RISC application’s system calls,
signal delivery, threads management. Interactions among various ARIES sub-systems are controlled and
facilitated by the control system, which also keeps mapping between the PA-RISC applications basic block
and the translated code block addresses.
PA-RISC HP-UX GDB DEBUGGING SUPPORT
ARIES supports debugging of PA-RISC HP-UX applications on Integrity systems running HP-UX using the
PA-RISC HP-UX gdb, the GNU debugger.
On Integrity HP-UX systems, /usr/ccs/bin contains the PA-RISC gdb32 and gdb64 executables. A
symbolic link named
/usr/ccs/bin/gdbpa
points to /usr/ccs/bin/gdb32. The Integrity HP-UX
systems
gdb debugger recognizes the PA-RISC executable being debugged and launches
/usr/ccs/bin/gdbpa under ARIES.
Debugging PA-RISC Applications on Integrity Systems
Use the following steps to debug PA-RISC HP-UX applications on Integrity HP-UX systems using PA-RISC
gdb:
1. Set the environment variable PA_DEBUG to 1.
2. Set the environment variable SHELL to point to a PA-RISC shell, copied from a PA-RISC HP-UX sys-
tem from /usr/bin path.
3. Add /usr/ccs/bin to the PATH environment variable.
4. Invoke gdb as:
$ gdb PA-RISC_executable
NOTE: Make sure that the user has write permission on /tmp directory and that there is enough space to
create a temporary file of one page size as obtained by sysconf(_SC_PAGE_SIZE) system call.
60 Hewlett-Packard Company 1 HP-UX 11i Version 2: December 2007 Update