Hi Mrinal,

On Sat, 6 Aug 2005, Mrinal Nath wrote:

> Hi Tom,
> The latest thing that I tried out is as follows:
>
> I changed the 'libstdc++.so.5' file to the one that SimFlex actually
> uses (copies when 'make install' is run) and rebuilt Flexus.

OK, so this is the libstdc++ that comes from your GCC 3.4.4 build.  This
library (or a newer version of libstdc++) is what Flexus expects.

>
> Then I tried running the test application, and it does seem to run
> successfully even beyond the "interactive CMPFlex" command. I am pasting
> the output below, so that you can take a look at it ans see if
> everything is OK.
>

<snip some output>

> 141 <breakpoint_tracker.cpp:382> {2538758}- End of parallel phase
> breakpoint reached.
> 142 <flexus.cpp:569> {2538758}- Terminating simulation. Timestamp:
> 2005-Aug-06 00:20:36
> 143 <flexus.cpp:570> {2538758}- Saving final stats_db.
> Simulation terminated by flexus.
> terminate called after throwing an instance of
> 'Flexus::Core::FlexusException'
>   what():  Terminating
> (*** Simics ***) Simics getting shaky, switching to 'safe' mode.
> (*** Simics ***) Simics (main thread) received an abort signal, probably
> an assertion.
> <Simics is running in 'safe' mode>
> simics>
> ###############

This is actually the correct output.  The "FlexusException" is thrown by
the terminate handler in the MagicBreak component to kill the simulation.
This exception is never caught, so it propagates up to the C++ startup
code, which calls abort(), which looks to Simics like a segfault.  This
error will happen every time you use the MagicBreak component to terminate
simulations.  I have not had the time to clean this up, since it has no
detrimental effects, except the ugly error messages.

The output from the simulation will be saved in stats_db.out despite the
error.

As far as Simics not working when launched by itself (with start-simics),
the issue may be that some, but not all, of the shared libraries that make
up Simics use C++ code.  Only C++ code will have ABI issues when linking.
When you launch Flexus, it runs the Sparc version of simics with the
-stall option.  It is possible that this particular target does not have
C++ code.  Try launching Simics (by itself) as follows to see if it works:
  ./simics -stall

You should also try CMPFlex.OoO to make sure it works.  It runs Simics
with -ma instead of -stall, which probably loads yet another set of Simics
components.

As for Ubuntu Linux, I have not heard of it before.  We use SuSE, and we
haven't really tested extensively with anything else.  A lot of people are
having trouble with Fedora Core (which I guess is fairly popular).  We are
trying to find a general solution that will make these linking issues go
away regardless of what flavor of Linux you happen to use.

>
> Thanks, and sorry for the barrage of mails ! :-)

No problem, happy to help.  Let me know if you run into more problems or
have questions.

Regards,
-Tom Wenisch

Reply via email to