
Sorry if this is a RTFM type question - but what is the status of the x86_64 port?

kip.macy:
Sorry if this is a RTFM type question - but what is the status of the x86_64 port?
As it says on http://www.haskell.org/ghc/docs/latest/html/building/sec-port-info.html it currently works unregisterised (and is available in binary form on a number of platforms). The registerised port is being held up as none of the developers have regular access to such a machine. -- Don

kip.macy:
number of platforms). The registerised port is being held up as none of the developers have regular access to such a machine.
I'm new to Haskell but not to assembler - is the work required something that someone in my position could contribute to?
Certainly. Not much Haskell is required at all, and only some assembler. The porting guide contains a list of what needs to be done: http://www.haskell.org/ghc/docs/latest/html/building/sec-porting-ghc.html Much of this is done already. Simon Marlow's done the register mapping (ghc/includes/MachRegs.h) and done other registerisation work. There was a bug in gcc-3.3x that halted things for a while, but this has been fixed in 6.4 Most stuff can be figured out by looking at the code for other archs already in the relevant files. The FFI for example just requires a few dozen lines of assembly. If you felt up to it, it would be a good way to learn about ghc internals. Feel free to ask questions on the mailing list, we'll help as much as possible. Cheers, Don

Much of this is done already. Simon Marlow's done the register mapping (ghc/includes/MachRegs.h) and done other registerisation work. There was a bug in gcc-3.3x that halted things for a while, but this has been fixed in 6.4
All the files mentioned except for the Adjustor appear to have x86_64 bits.
If you felt up to it, it would be a good way to learn about ghc internals. Feel free to ask questions on the mailing list, we'll help as much as possible.
Sounds interesting, at the moment I just want to get an unregistered build going. I've followed the instructions to the letter. After adding an x86_64-* entry to config.sub in gmp I get the following on the target: copying ./mpn/generic/gcdext.c to mpn/gcdext.c copying ./mpn/generic/tdiv_qr.c to mpn/tdiv_qr.c copying ./mpn/generic/bz_divrem_n.c to mpn/bz_divrem_n.c copying ./mpn/generic/sb_divrem_mn.c to mpn/sb_divrem_mn.c copying ./mpn/generic/jacbase.c to mpn/jacbase.c copying ./mpn/generic/gmp-mparam.h to gmp-mparam.h gmake: *** No rule to make target `AutoApply.hc', needed by `depend'. Stop. gmake: Leaving directory `/home/kmacy/ghc-6.2.2/ghc/rts' The makefile indicates that genapply is called for, but it isn't there, oddly enough the one on the host failed initially: kmacy@shemp ./ghc/utils/genapply/genapply genapply: internal error: stg_ap_v_ret Please report this as a bug to glasgow-haskell-bugs@haskell.org, or http://www.sourceforge.net/projects/ghc/ but when I rebuilt it it worked - I then copied that over - Then I got complaints about all the *_hsc.c files missing in the libraries - hoping that the compiler itself didn't need them I just touched those files so the build could continue - the same occurred for .o files under base/control ... Am I way off track or is building an unregistered target just really unfriendly?

Kip Macy
I've followed the instructions to the letter.
Debian has had a working amd64 package of ghc for some time now. It is built out of the standard source base for it. You can find that at: http://ftp.debian.org/debian/pool/main/g/ghc6 You'll want to grab the orig.tar.gz and the diff.gz files. If you want to grab an amd64 .deb to try, go to: http://debian-amd64.alioth.debian.org/pure64/pool/unstable/main/amd64/g/ghc6... Even if you're not running Debian, there are tools available to convert a .deb to a RPM or tgz package. Or, you can easily unpack a deb using only ar(1) and tar(1). -- John
participants (3)
-
dons@cse.unsw.edu.au
-
John Goerzen
-
Kip Macy