Yet another puzzle

Mark S. Miller markm@caplet.com
Sun, 14 Feb 1999 23:30:16 -0800


At 02:41 PM 2/13/99 , Marc Stiegler wrote: 
>So, in search of either new bugs or maybe fixes to the existing ones, I put 
>the new e jars onto my Linux system, and rewrite my shell script to make the 
>class path with the new stuff. Elmer comes up and adds 2 + 3 just fine. I 
>try to run eChat, and get the error message,
> 
>File not found (libecutil.so)

[?] But does it work anyway?
.so is unix for .dll
The only two places where "ecutil" appears in the Java sources are:

  public class MicroTime {
      static private boolean HasNative;
      static  {
          try {
              System.loadLibrary("ecutil");
              HasNative = true;
          } catch(UnsatisfiedLinkError e) {
              //System.out.println("not using native timers: " + e);
              HasNative = false;
          }
and

  public class Native {
      static  {
          try {
              System.loadLibrary("ecutil");
          } catch(UnsatisfiedLinkError e) {
              System.out.println("ecutil linkage error" + e);
          }

As you see, both are supposed to be tolerant of not finding the library.
In the interests of keeping my build and install issues down to a dull roar
for now, I'm not if fact building this library, though its sources are in
the source distribution.  (They are therefore probably also slightly
stale.)  E is supposed to transparently recover from the absence of this
library and work anyway.  

The only native service we would currently be using from this library is a
microsecond clock.  The only penalties of doing without are 1) It takes
longer to gather adequate initial entropy, and 2) It becomes moderately
harder to gather certain performance measures.

So I'd hope that you get the error, but everything still works fine.  If
so, it would be good to suppress the error message, so as not to alarm the
next guy.  I don't have a clue of how to do this.  If not, I'm mystified
and we should probably debug with a voice phone call.

But in the worst case (you know what I mean), if you just comment out the
above try/catch blocks except for "HasNative = false;", then "ecutil" won't
be referenced from anywhere in E or Elmer.  If you still have problems,
then they're independent of the libecutil.so complaint.  When you have more
info, please let us know.  Thanks.

	Good luck, 
	--MarkM