[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-user: Icarus Verilog 20040606 on Solaris w/ Sun Studio



I had gotten Icarus Verilog 20040606 to build on Solaris with
SunStudio.  The source code changes required were minor, and fixed
things like coercion assumptions (i.e. GCC makes the correct assumption,
and Sun's cc does as well, but it also makes a warning).  I think there
were only two pieces of source code that really wouldn't compile (one
was making an instance of the abstract class PNoop).

However, lots of Makefile fiddling was required because the configure
script does the wrong thing.

The primary problems are using the -Wall flag, the -fPIC flag, and the
-shared flag.  The first two flags should just be dropped.  The third
needs to be changed to -dy -G.  As I have more time, optimization flags
may also be worth adding.  The second major problem is the .d files.
Ever single mv x.d dep/x.d like command in the make files fail because
Sun CC doesn't make the gcc style dependency files.  Likewise, the -MD
flag should not be used when compiling.

The lesser problem is that the dependencies in the Makefiles don't have
the dependency relations needed to allow parallel make.  Only single
project make will work, which means on the machine I'm working on,
builds take 4 times as long (a quad processor Enterprise machine that a
friend owns).

Anyway, I'm am completely clueless about the configure system, and was
hoping that someone could help me fix it up to do the right thing on
Solaris.  

I have hand edited the makefiles once, but I ran ./configure again
without backing up the makefiles first.  It will be several hours of
work to get it to build again, but it should be easy enough now that I
know what I did the first time around.  I made this mistake BEFORE I
tested it, so I don't know for certain that it actually works when built
with Sun's compiler.  Sigh.  Clumsy me.

BTW, I tried icarus on a G5 2.0ghz machine.  It was about 3 times as
fast as a 2.0 ghz P4, both machines using the same version of GCC.  The
G5 was a dual processor machine, but I don't believe that icarus
actually takes advantage of that.