Porting IAS to platforms other than SPARCstationsTM running Solaris should not be very difficult.
It will, however, require some effort.There are assumptions regarding big-endianness and 32-bit words in the code. Porting to other 32-bit, big-endian machines should be fairly straightforward.
For other types of machines, some areas of the code which will need to be reviewed, if not changed.
These areas of code are:
- The memory access model, including
javamem.[ch]
,cm.[ch]
, callingcmMemoryRead
,
cmMemoryWrite
and so on.- Some floating point operations code in
jvm_ops.c
, such asF_RESET_SIGN_IF_NAN
.- The definition of long long (int64_t) types in the code.
IAS contains a check inside
iam.c
to verify that it is invoked on a 32-bit big-endian machine.Note: This check may as well have been inside
initPico
() so it could be done only once.
IASSome changes which may be necessary to get IAS to work under HP-UX, compiling with
gcc
.
Note: These changes are not tested, not supported and may not be complete.You need to:
- Have a version of
libtcl7.5.a
andlibz.a
.
- Update the
-llibtcl7.5
linelibtcl7.6.a
.
insim/src/Makefile.in
if it presents any problems.- Have a copy of
libtcl
source or binary.
You can get this from http://www.scriptics.com/software/download.html.- Have a copy of
libz.a
source or binary.
You can get this from http://www.cdrom.com/pub/infozip/zlib.- Change the definition of UNAME to hpux in all makefiles.
- Change the name of
dlfcn.h
include file todl.h
.- Change the names of all
dl
xxx files, such asdlopen
,dlsym
toshl_
xxxx names, such asshl_load
,shl_findsym
.- Delete any
Makefile.in
files containing the -ldl option for linking.- Remove the file
ieeefp.h
included injmath_md.h
.
It is not needed sinceieeefp.h
is not present on HP.- Have a copy of the
libelf.a
library which may not be present under HP-UX.
TheloadElf
command implemented intools/dsv/sim/src/elf.c
depends on it. If you do not needloadElf
functionality, you can remove the code for this fromsim/src/elf.c
.
If you find you do need this code, you can get a public domain
version oflibelf.a
from ftp://sunsite.unc.edu/pub/Linux/libs.