I put together an RPM spec file for GHDL, and have built it
on Fedora Core 3 on an Athlon XP system (32-bit), and on
Fedora Core 4 on an Opteron system (64-bit). The spec file,
SRPMs, and RPMs are available on my web site, though they
aren't yet ready for prime time:
http://www.brouhaha.com/~eric/software/ghdl/
I didn't have to change anything for the 32-bit system; the RPM
is based pretty closely on the normal GHDL build instructions.
The file list in the resulting binary RPM is identical to the
file list of the binary distribution tarball. But when I try to
elaborate a program, I get complaints about a bunch of
undefined symbol references in libgrt.a(run-bind.o):
_ada__exceptions_E
_ada__exceptions___elabs
_ada__exceptions___elabb
system__exceptions_E
system__exceptions___elabs
system__soft_links_E
system__soft_links___elabb
system__secondary_stack_E
system__secondary_stack___elabb
system__exception_table_E
system__exception_table___elabb
Since those symbols seem to be defined in libgrt.a, I thought maybe
the build didn't run ranlib on it. So I did that by hand, but it
didn't help. Any ideas?
On the Opteron, I get undefined symbol references in libgrt.a(grt-cvpi.o)
to dlopen, dlsym, and dlerror. Apparently the linker isn't being told
to link in libdl. If I elaborate with the command ghdl -e -Wl,-ldl foo,
it links fine. But whe I try to run the result with ghdl -r foo, I get
"ghdl: exec error". And if I try to just run it directly with "./foo",
I get "Illegal instruction".
Has anyone else built a GHDL for a 64-bit target?
I'm excited about GHDL, and would like to try to get an RPM build
accepted into the Fedora Extras repository.
Best regards,
Eric Smith