Keywords: doc

Next: References Up: No Title Previous: GNU General Public License

# Frequently Asked Questions About MICO

Q:
  During compilation my gcc 2.7.2.x dies with an "internal compiler error". What is going wrong?
A:
  Some Linux distributions (noteably Suse Linux 5 and Red Hat) shipped broken gcc binaries. You have to recompile gcc 2.7.2.x, or better yet, install egcs 1.x or gcc 2.8.x.

Q:
  I have installed gcc 2.8 or egcs, and it still dies with an "internal compiler error".
A:
  You are encouraged to submit a bug report to the appropriate compiler's mailing list. In the meantime, disabling optimization usually works.

           ./configure --disable-optimize

Q:
  During compilation gcc dies with a "virtual memory exhausted" error. What can I do?

A:
  Add more swap space. Under Linux you can simply create a swap file:

           su
           dd if=/dev/zero of=/tmp/swapfile bs=1024 count=64000
           mkswap /tmp/swapfile
           swapon /tmp/swapfile

  There are similar ways for other unix flavors. Ask your sys admin. If for some reason you cannot add more swap space, try turning off optimization by rerunning configure: `./configure -disable-optimize`.

Q:
  I use Cygnus CDK and gcc dies with a "virtual memory exhausted" error. How to fix this?
A:
  There seems to be a bug Cygnus CDK beta19 that prevents gcc from using swap space. The only workaround is to disable optimization by rerunning configure: `./configure -disable-optimize`.

Q:
  I configured for namspace support but MICO doesn't compile?
A:
  Earlier versions of gcc and egcs (up to gcc 2.8 and egcs 1.0) have very limited namespace support. The tests configure does to check for working namespaces pass, but MICO itself fails to compile. Rerun configure without `-enable-namespace`.

Q:
  Why do MICO programs fail with a COMM_FAILURE exception when running on `localhost'?
A:
  Because MICO requires using your `real' host name. Never use `localhost' in an address specification.

Q:
  MICO programs crash. Why?

A:
  There is no easy answer (what did you expect?). But often this is caused by linking in wrong library versions. For example people often install egcs as a second compiler in their system and set PATH such that egcs will be picked. But that is not enough: You have to make sure that egcs' C++ libraries (esp. libstdc++) will be linked in. One way to make MICO use an egcs installed in `/usr/local/egcs` is:

           export PATH=/usr/local/egcs/bin:$PATH
           export CXXFLAGS=-L/usr/local/egcs/lib
           export LD_LIBRARY_PATH=/usr/local/egcs/lib:$LD_LIBRARY_PATH
           ./configure

  If that is not the cause you probably found a bug in MICO. Write a mail to `mico@vsb.cs.uni-frankfurt.de` containing a description of the problem, along with

  - the MICO version (make sure it is the latest by visiting http://www.cs.uni-frankfurt.de/ mico/)
  - the operating system you are running on
  - the hardware you are running on
  - the compiler type and version you are using
  - a stack trace
  - To get a stack trace run the offending program in the debugger:

              gdb <prog>
              (gdb) run <args>
              program got signal ???
              (gdb) backtrace

    and include the output in your mail.

Q:
  After creating Implementation Repository entiries with imr create imr list does not show the newly created entries. What is going wrong?

A:
  You must tell `imr` where `micod` is running, otherwise imr will create its own implementation repository which is destroyed when imr exits. You tell `imr` the location of the implementation repository by using the `-ORBImplRepoAddr` option, e.g.:

           micod -ORBIIOPAddr inet:jade:4242 &
           imr -ORBImplRepoAddr inet:jade:4242

Q:
  I'm using egcs 1.x. When I turn off MiniSTL compliation aborts with

           /usr/ccs/bin/as: error: can't compute value of an expression
           involving an external symbol

A:
  This is a bug in the assember. One solution is to enable debugging:

           ./configure --enable-debug

  The preferred solution is to install GNU as (in the binutils package). See also the discussion on the egcs FAQ (the `-fsquangle` option).

Q:
  Why don't exceptions work on Linux?
A:
  They do. You are experiencing a bug in the assembler. Upgrade to binutils-2.8.1.0.15 or newer and recompile MICO.

Next: References Up: No Title Previous: GNU General Public License