[PLEASE NOTE:
To reply replace "Aaron.Sloman.XX" with "A.Sloman" not "Aaron.Sloman]
I previously reported that the Pop-11 procedure systime() was giving the
wrong times in linux+intel Poplog.
This also affected other utilities, e.g. timediff, profile, etc.
In particular, times were three times too large!
Thanks to Robert Duncan at Sussex University the problem has been
identified.
This is what to do to fix it, assuming that you have set $usepop
and have all the environment variables set as required to run
Pop-11.
First a precautionary measure to save a minor problem later on.
See if you have the following circular link, and if so remove it
/usr/local/poplog/local/local
(This was inadvertently included by me in an old Poplog linux
distribution.)
Then:
1. cd $popsrc
2. Edit the file systime.p: in this line
lconstant macro _SC_CLK_TCK = #_IF DEF HPUX or DEF ALPHA_LINUX _2
change the occurrence of "ALPHA_LINUX" to "LINUX"
2. compile the new version of systime.p, with this shell command:
pgcomp systime.p
This will create two new files (if pgcomp does not work see [*], below)
systime.o
systime.w
3. Archive the new version (if pglibr does not work see [*])
pglibr -r ../obj/src.wlb systime.w
That will change these two archive library files:
$popobjlib/src.olb
$popobjlib/src.wlb
4. Delete the .o and .w files
rm *.o *.w
5. Relink Poplog
If you have motif, or lesstif installed give this command:
$popsrc/newpop -norsv -x=-xm
(If that causes error messages see [**] below)
Otherwise, to relink without motif/lesstif:
$popsrc/newpop -norsv
The newpop command will rebuild various files in
$popsys
it will create saved images in
$popsavelib
and it will rebuild index files in many directories, including
the subdirectories of $poplocal/local. If the latter contains
a circular link it will go on indefinitely!
[*] If you cannot run pgcomp, pglibr, or newpop, this may be
because you have an old version of linux poplog, with files
in $popsys dating back a long time. You can fetch this file
to find out what to do
http://www.cs.bham.ac.uk/research/poplog/tools/relinking.linux.poplog
After fetching it, study it, then make it executable, and run it.
It should rebuild a set of executables and saved images that can
be used for pgcomp, pglibr, pglink and newpop.
Then follow the above instructions.
[**]
If you are attempting to relink with motif/lesstif and everything
works up to the point at which you run newpop, then it may
be that you have to alter an environment variable that sets
the motif version.
Try this:
echo $POP_XM_EXLIBS
It may print out something like
x=motif/1002: -L/usr/X11R6/lib -lXm -lXt -lXext -lX11
Where the item after the "/" represents the version. Try changing
it to a different version, e.g. (using csh)
setenv POP_XM_EXLIBS "x=motif/2001: -L/usr/X11R6/lib -lXm -lXt -lXext -lX11"
(or the equivalent if you are using bash, or sh).
Alternatively edit the files
$popcom/popenv
$popcom/popenv.sh
and where XM_VER is defined as 1002 replace it with 2001
then re-source the file. After that newpop should link with
motif successfully (it did for me with Open motif).
Later I'll install fixed versions of linux poplog at the free Poplog
site
http://www.cs.bham.ac.uk/research/poplog/
Aaron
|