swarm-support
[Top][All Lists]
Advanced

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

Re: /bin/ld: Unsatisfied symbols: with swarm-960110 and my apps


From: Rick Riolo
Subject: Re: /bin/ld: Unsatisfied symbols: with swarm-960110 and my apps
Date: Fri, 12 Jan 1996 08:52:41 -0500 (EST)

Manor (etal),
thanks very much for the temp solution to allow me to use
the new swarm with my old kludge to support batch jobs.
(Actually it was a kludge borrowed from apps/grid/mousetraps.m.
I don't fully understand why that app still links ok in the
new version, but I don't necessarily need to understand!)

anyway, re my second question.  Let me be a little more clear
about what I was doing and can't do (the same way) now.
(Note that I always suspected there was a better way to do this,
but I decided just to do this kludge to get on with it.)

In main.m I used to have:

    // run the simulation
    do {
        activityStatus = [swarmActivity run];
    } while (activityStatus != Completed && !Halt() );

Then I had the function Halt() do some appropriate tests
to decide when the batch job should stop.
(Of course I could have also done this by send a message to
a method in my Model object, but you know about old dogs....)
Anyway, in the new swarm, the above is replaced with

   [swarmActivity run];

Thus there is no explicit place for me to do my own side
test to stop the execution.

So....my question is, how should I do this now?
I imagine I should add an invocation of a  method to do the
test in my schedules somewhere.   But what should that
method do when it decides its time to halt?
I imagine there must be some message I can send to something
(eg swarmActivity?) to tell it to stop the run.
Maybe I can find it in the swarmlibs...I was hoping someone
could easily save me that foray.

thanks again for the quick fix to these problems.

 - r 

Rick Riolo                       address@hidden
Program for Study of Complex Systems (PSCS)
1061 Randall Lab     University of Michigan
Ann Arbor MI 48109-1120
http://pscs.physics.lsa.umich.edu/rlr-home.html

On Thu, 11 Jan 1996, Nelson Minar wrote:

> Date: Thu, 11 Jan 96 16:50:34 MST
> From: Nelson Minar <address@hidden>
> To: address@hidden
> Cc: address@hidden
> Subject: Re: /bin/ld: Unsatisfied symbols: with swarm-960110 and my apps
> 
> >I installed the new swarm with no problems.
> >The apps all run fine.  (However, the QUIT button doesn't
> >quit, it does nothing, for axelcult, market, and bondblocks.)
> 
> Those three applications are still not running schedules - we've got
> so many apps now, keeping them all up to date is a chore.
> 
> >Then I tried to remake one of my own little test template apps...it 
> >doesn't really do anything.  Note that this app does not use the control
> >panel.
> 
> >/bin/ld: Unsatisfied symbols:
> >   probeLibrary (data)
> >   swarm_object_create_probe_display (code)
> >*** Error code 1
> 
> sigh, I was afraid of that (Manor, you listening?) The problem is that
> those symbols are defined in libsimtools.a, but aren't referenced
> until libswarmobject.a, which is later. The relevant file is
> simtools.o: if your app uses initSwarm() then you force a link of that
> .o file.
> 
> The workaround for now, is to force a link of the .o, maybe by doing
>   void * p = initSwarm;
> in your code somewhere. Either that, or use initSwarm(). I'd like to
> not have this sort of backward dependency in the libraries, so it
> might be fixed yet. probeLibrary belongs in some part of libswarmobject.
> 
> >1. Why is it trying to find and not finding those probe related 
> >   things?   I don't actually use probes in this little app.
> 
> All swarm objects currently have a magic function that makes a probe
> display, so even if you don't use them it gets linked in. We're not
> sure yet if this is a good idea.
> 
> >2. How do I tell swarm to call a BOOL function of mine.
> >   I once tried using  [swarmActivity setBreakFunction: myfn]
> >   but that didn't seem to work.  (Maybe I didn't do it right...)
> >   I ended up putting a call to it in the while ( )
> >   in the explicity loop for running swarm, but now that loop
> >   is gone!
> 
> break functions are something else. You can either wrap your function
> call up in an object, or use the new createActionCall, which is for
> calling functions.
> 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]