Building Ptolemy on DEC Alpha OSF 4.0
--------------------------------------

First, you may have problems building the GNU tools and libraries.

For gcc:
--------
in cp/errfn.c, you will have to comment the declaration of sprintf in the 
cp_sprintf funtion (type mismatch which the declaration in stdio.h)

For make:
---------
in glob/glob.h, you will have to comment the #if/#endif that enclose the 
definition of GLOB_ALTDIRFUNC since glob/glob.c uses this symbol anyway.

For libg++:
-----------
in Regex.cc, you will have to replace:

#include <ctype.h>

by:

#ifdef _OSF_SOURCE
# undef _OSF_SOURCE
# define _HAD_OSF_SOURCE_
#endif
#include <ctype.h>
#ifdef _HAD_OSF_SOURCE_
# undef _HAD_OSF_SOURCE
# define _OSF_SOURCE
#endif

This is to prevent ctype.h from including sys/localedef.h which includes 
sys/lc_core.h which includes reg_types.h which defines types which are not 
compatible with those defined in librx/rx.h

I am not sure this is a good cure, but it allows libg++ to build.

For xv:
-------
you will have to change the definition of fsQ_RANDOM_DECL in fsQParams.h 
to avoid a redeclaraion of random with a wrong type:

#ifndef fsQ_RANDOM_DECL
/*#define fsQ_RANDOM_DECL long random fsQ_proto((void))*/
# if defined(_OSF_SOURCE) && !defined(_XOPEN_SOURCE_EXTENDED)
#  define fsQ_RANDOM_DECL extern int random fsQ_proto((void))
# else
#  define fsQ_RANDOM_DECL extern long random fsQ_proto((void))
# endif
#endif /* fsQ_RANDOM_DECL */

Ptolemy:
---------
To build Ptolemy, you will have to create a "thread" directory in obj.alpha4 
and to create a symbolic link to ../../src/thread/makefile in this 
directory. Threads are not built on the Alpha, but if this directory and 
link do not exist, the build process will fail.

Link failures:
---------------
The link may fail for pigiRpc and other "big" executables. The symptom is 
ld being killed on a bus error. The cure is to set the limit for datasize 
and stacksize to "unlimited":

> limit datasize unlimited
> limit stacksize unlimited

The default limits on my system were:
> limit
cputime         unlimited
filesize        unlimited
datasize        131072 kbytes
stacksize       2048 kbytes
coredumpsize    unlimited
memoryuse       315296 kbytes
vmemoryuse      1048576 kbytes
descriptors     4096 
>

and this is not enough to build all Ptolemy binaries.

pigiEnv.csh:
-------------
If you want to avoid annoying unaligned access messages with vem, you 
should add the following at the beginning of the pigiEnv.csh script:

# On DEC Alpha, do not print unaligned access message (vem)
switch ($PTARCH)
        case alpha:
        case alpha4:
                uac p noprint
                breaksw
        case *:
                breaksw
endsw


With all these fixes, Ptolemy should build if you have enough disk space.

  Fr\'ed\'eric Boulanger  <Frederic.Boulanger@supelec.fr>
  Sup\'elec - Service Informatique
  Plateau de Moulon
  F-91192 Gif-sur-Yvette cedex
  France

September 1997.