Hello all,
It seems like it should not very difficult to make 0.27 build for Mac  
OS X cleanly.

You need xcode installed (Apple's version of the GNU tools and an IDE)
Grab Gnati386-4.3-xcode3.0.dmg from http://www.macada.org/macada/Downloads.html
Grab gcc-core-4.2.4.tar.bz2 from GNU
Grab ghdl-0.27.tar.bz2 from the GHDL site

Make a list of the contents of /Developer/Library/Xcode/Plug-ins
Install the gnat package.  Remove anything the gnat install puts in / 
Developer/Library/Xcode/Plug-ins

As per Thomas Sailer - 
https://mail.gna.org/public/ghdl-discuss/2008-05/msg00006.html
Hack ghdl-0.27/vhdl/grt/grt.adc commenting out 3 lines, thus:

-- pragma Restrictions (No_Exception_Handlers);
-- pragma restrictions (No_Exceptions);
pragma Restrictions (No_Secondary_Stack);
--pragma Restrictions (No_Elaboration_Code);
pragma Restrictions (No_Io);
pragma Restrictions (Max_Tasks => 0);
pragma Restrictions (No_Implicit_Heap_Allocations);
-- pragma No_Run_Time;

Note: this causes trouble later, which is not quite solved...

The build will break complaining that xgcc doesn't know ada.  It's  
possible that this could
be solved by building the ada compiler.  Another day.  For  now, patch  
gcc/vhdl/Makefile.in
before you run configure

GRT_ADACOMPILE=$(ADAC) -c $(GRT_FLAGS) $(GRT_PRAGMA_FLAG) -o $@ $<
hacked to run gcc directly
GRT_ADACOMPILE=gcc -c $(GRT_FLAGS) $(GRT_PRAGMA_FLAG) -o $@ $<

Prefix PATH with the path to the ada install /usr/local/ada-4.3/bin
Build as per instructions in ghdl-0.27/README.
I also suggest setting a prefix eg, /usr/local/ghdl-0.27 and build  
languages c and vhdl

$ make ; sudo make install
Works... mostly.  Since we had to enable the ada run time, elaboration  
fails when it tries to link.

$ cat > hello.vhd
use std.textio.all; --  Imports the standard textio package.

--  Defines a design entity, without any ports.
entity hello_world is
end hello_world;

architecture behaviour of hello_world is
begin
   process
      variable l : line;
   begin
      write (l, String'("Hello world!"));
      writeline (output, l);
      wait;
   end process;
end behaviour;

^C
$ ghdl -a hello.vhd
$ ghdl -e hello_world
Undefined symbols:
   "___gl_interrupt_states", referenced from:
       ___gl_interrupt_states$non_lazy_ptr in libgrt.a(run-bind.o)
   "___gnat_eh_personality", referenced from:
... and on and on...

We need the ada runtime and GCC's exception handling code...

$ ghdl --bind hello_world
$ gcc `ghdl --list-link hello_world` /usr/local/ghdl-0.27/lib/gcc/i386- 
apple-darwin9.5.0/4.2.4/libgcc_eh.a /usr/local/ada-4.3/lib/gcc/i686- 
apple-darwin9/4.3.0/adalib/libgnat.a  -o hello_world
$ ./hello_world
Hello world!

Thanks to Tristan, as always, for GHDL.
I'll try and make a patch or a build script, and fix the elaboration...
Cheers,
J

_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to