[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

FAST ACM! But "broken" timer? Gurus needed. Was: ACM 4.7-3 with Debian Linux 1.2.4



On Tue, 29 Apr 1997, Nicola Bernardelli wrote:

> On Mon, 28 Apr 1997, Nicola Bernardelli wrote:
> 
> > On Sun, 27 Apr 1997, Nicola Bernardelli wrote:
> > 
> > >      Sad to say, I'm not replying to my own question about Air Combat
> > > Maneuvers under Debian 1.2.4...
> > 
> >      Not yet...
> >      ...
> 
>      And not yet, but I can rebuild the binaries now...
>


     I notice that with a workaround ACM runs fast. But it is not a clean
solution, and together with 'xlock -mode rotor' being that slow it makes
me wonder about possible changes to some timers (?) behaviour under
Debian. PLEASE, give a look at the script I put as first text attachment,
I've been working some time to write those remarks, there is a section in
great evidence focusing the problem. The script is replicated in the tgz I
put as second attachment, also containing the patch files used by the
script. 
     
     (Last night I also got ACM 4.8 from ftp.netcom.com/pub/ra/rainey/acm/
and it is even a greater package to learn from, but I can't rebuild it for
Linux yet, this time :-) it seems it is not enough going to
/usr/include/sys/ and typing 'ln -s file.h filio.h', nor I can fix the
-lelf test done by the configure script just with -L/usr/lib/elf.) 
     

     Thanks to anybody getting curious about this (so far) misterious
"timing" topic. 


     Nicola Bernardelli <nbern@mail.protos.it>
---------------------------------------------------------------------------
     Please use <n.bern@mail.protos.it> for messages from any kind of
robot, such as mailing lists. From that address no autoresponse
messages will return even when I'm not at home.
---------------------------------------------------------------------------
#!/bin/bash

# Nicola Bernardelli <nbern@mail.protos.it> / Debian 1.2.4 
# May 1st 1997. Dirty workaround (a few tiny patches) to rebuild ACM
# and have it run fast. 

# I'm a newbie to Debian Linux so please consider just READING this
# script, checking that nothing here is going to put your system in a
# mess, and possibly running each step typing it by hand (don't forget
# the environment variable) and checking what the result is before
# proceeding (of course everything is fine HERE with the acm-4.7-3
# source tree found in the Debian 1.2.4 CD from CheapBytes [that is
# ftp'ed from the Debian site]).

# As you can see, the Debian 1.2(.4) CD is assumed to be mounted under
# /cdrom but you will most probably comment out that line and untar
# the acm source tree by yourself. Anyway you should be in the parent
# of the acm-4.7/ directory where the source tree starts.

# patch A could be avoided: 
#
# 1) if -lelf was working in the test performed by the configure
#    script (which is not, almost here, I have to say -L/usr/lib/elf
#    to ld, though that library appears in the result of 'ldconfig -v'
#    or 'ldconfig -D');
# 2) if you put a symbolic link inside /usr/include/sys: 
#    ln -s file.h filio.h

# The other patches are rather brutal as they act AFTER the configure
# script to modify the produced Makefiles. Like this (and with context
# diff files!) if any peculiarity of the system leads to slightly
# different Makefiles then automatic application of the patches is
# most likely going to fail. THAT'S WHY I SUGGEST TO PROCEED MANUALLY
# STEP BY STEP. And if any patch fails, then it should be rather easy
# to read the patch file yourself and modify the destination file with
# an editor. Of course, a clean job would be going back to the
# Imakefile's and act BEFORE the configure script.

# ---------------------------------------------------------------------
#                        I M P O R T A N T
#
# Everything is configured and compiled with REAL_DELTA_T=no but it
# should *NOT* be necessary: old binaries working well under other
# Linux installations I tested/I still have here on the same machine
# are VERY slow with Debian 1.2.4, just like if I rebuild the binaries
# without that environment variable set to "no". I was trying to do
# some profiling (*) (just add -pg to the optimization flags turned on
# by patch B1, or proceed A-configure-B-C instead of A-configure-B1-C1
# in order to do profiling on the binaries built without the
# REAL_DELTA_T=no environment setting) but I have not investigated
# that much so far... maybe USE OF A TIMER... maybe some system guru
# has the answer immediately (but none answered so far on the mailing
# list debian-user@lists.debian.org).
#
#
# Also (but don't know whether it is related or not) 
#                       'xlock -mode rotor' 
# is very slow and is worth some profile session. In the patches/
# directory there is a patch I applied HERE to the source tree got 
# as
#     /cdrom/rex-fixed/source/x11/xlockmore_3.11.orig.tar.gz
# +   
#     /cdrom/rex-fixed/source/x11/xlockmore_3.11-3.diff.gz
#
# in order to be able to rebuild the executeable and to switch on
# profiling (**). What about that sub_timers(...) function?
#
#
# (*) (**) See 'man gprof'
# ---------------------------------------------------------------------


REAL_DELTA_T=no ; export REAL_DELTA_T


tar -zxvf /cdrom/rex-fixed/source/games/acm_4.7-3.tar.gz
patch < patches/acm-4.7-debian1.2.4-patch-A-beforeRunningConfigure
cd acm-4.7/
./configure
cd ..
patch < "patches/acm-4.7-debian1.2.4-patch-B1-toOptimize-AFTER-REAL_DELTA_T=no-configure"
patch < patches/acm-4.7-debian1.2.4-patch-C1-toChangeInstDirs
# cd acm-4.7/
# make
# make install
echo
echo "Now you should be able to do:"
echo
echo "cd acm-4.7/"
echo "make"
echo "    To eventually test it, in X:"
echo "        cd src/"
echo "        ./acms &"
echo "        ./acm -geometry 320x200"
echo "        # Not everything ^ readable but rather fast (P90/ET4000w32p related)"
echo "        cd .."
if [ -r /usr/games/acm -a -r /usr/games/acms ]; then
    echo "    To eventually avoid overwriting the old binaries:"
else
    echo
    echo "    I SUGGEST YOU HAVE dselect INSTALL THE ACM PACKAGE"
    echo "    bringing postscript documentation and man page."
    echo
    echo "    Then, to eventually avoid overwriting the old binaries:"
fi
echo "        cd /usr/games ; mv acms acms.orig ; mv acm acm.orig"
echo "        cd /usr/lib/games; mv acm acm.orig"
echo "make install"
echo

Attachment: acm-4.7-workaround.tgz
Description: The script + patch files it uses


Reply to: