
The amd64 port isn't really there yet. It works unregisterised, but the registerised support need some more work (as you discovered). You also need a non-broken version of gcc (3.3.3 or 3.4.0).
I'd settle for unregisterised... it seems every time I run through the whole port process I see to do some new wrong thing each time, hehe. I'm really just in search of a working ghc implementation for my amd64, registered or not (the main difference is the use of architecture specific registers and thus performance right?). Does anyone have any unregistered amd64 builds that they've cooked up? Regards, Scott

Hello, scott west wrote:
Does anyone have any unregistered amd64 builds that they've cooked up?
And please put it on a ftp server somewhere if you have a working build for Linux/amd64. Gabriel. -- Gabriel Ebner - reverse "ta.renbeleirbag@eg" ==> Please don't CC me! I'm reading the list.

On Wed, Jun 02, 2004 at 10:00:38AM +0000, Gabriel Ebner wrote:
Hello,
scott west wrote:
Does anyone have any unregistered amd64 builds that they've cooked up?
And please put it on a ftp server somewhere if you have a working build for Linux/amd64.
I think this should work (unregisterised): wget ftp://debian-amd64.alioth.debian.org/pub/debian-amd64/pure64/pool/main/g/ghc6/ghc6_6.2.1-2_amd64.deb ar -x ghc6_6.2.1-2_amd64.deb tar -zxf data.tar.gz ln -s ghc6 usr/bin/ghc ln -s ghci6 usr/bin/ghci perl -pi -e "s#/usr#`pwd`/usr#" usr/bin/{ghc,ghci} $ file usr/lib/ghc-6.2.1/ghc-6.2.1 usr/lib/ghc-6.2.1/ghc-6.2.1: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), dynamically linked (uses shared libs), stripped I haven't been able to test it myself, but someone on IRC successfully compiled and ran hello world (installing the Debs on a Debian system). I didn't build the binaries, but AFAIK nothing special was done. Roughly: echo "GhcUnregisterised=YES" > mk/build.mk echo "SplitObjs=NO" >> mk/build.mk ./configure make make install Hope that's of some help Ian

On Wed, 2004-06-02 at 15:45, scott west wrote:
I'd settle for unregisterised... it seems every time I run through the whole port process I see to do some new wrong thing each time, hehe. I'm really just in search of a working ghc implementation for my amd64, registered or not (the main difference is the use of architecture specific registers and thus performance right?).
Some ghc nomenclature: unregistered means "half as fast as you'd like it to be". If you're after performance (rather than simply working), you'll need to wait for a registered build, or if you've got the assembler hacking skills you can help out. Duncan

If you're after performance (rather than simply working), you'll need to wait for a registered build, or if you've got the assembler hacking skills you can help out.
I'm afraid of the few skills I have (walking, breathing, eating, etc), working in assembler isn't one of them! And if I lower my standards (an easy way to stay happy!) and just settle for a working, not performance-oriented build, are my options basically porting it myself, as per the instructions in the build-guide? Scott

On Wed, 2004-06-02 at 16:14, scott west wrote:
If you're after performance (rather than simply working), you'll need to wait for a registered build, or if you've got the assembler hacking skills you can help out.
I'm afraid of the few skills I have (walking, breathing, eating, etc), working in assembler isn't one of them! And if I lower my standards (an easy way to stay happy!) and just settle for a working, not performance-oriented build, are my options basically porting it myself, as per the instructions in the build-guide?
Someone mentioned they had an unregistered build working so you could see if that's available or if you can get sufficiently detailed instructions to do it yourself. As for a registered build see: http://www.haskell.org/ghc/docs/latest/html/building/sec-porting-ghc.html You'd have to do it yourself or persuade/bully/pay someone else to do it. It may be beyond your assembler skill but it's not necessarily extremely hard: * You're not changing OS or linker format * the arch is 64 bit, but ghc has been ported to 64 bit archs before I believe (Sparc64?) * The cpu register layout is similar to x86 (though the calling convention / C ABI is slightly different) You're paying the price of being an early adopter :-). If any of the ghc developers had an AMD64, there'd probably be a registered build by now. Duncan

You're paying the price of being an early adopter :-). If any of the ghc developers had an AMD64, there'd probably be a registered build by now.
Well... these guys aren't very devoted now are they? Why can't they just steal one like me? :) And my one ray of hope is that there is a build for OpenBSD, but the port downloads the HC files to get it part-way there (as outlined in the ports section of the build guide). I'm giving the port another shot now, with the cvs source and a single ray of hope ;) Scott

swest3:
You're paying the price of being an early adopter :-). If any of the ghc developers had an AMD64, there'd probably be a registered build by now.
Well... these guys aren't very devoted now are they? Why can't they just steal one like me? :)
If someone steals one for me, I'll finish the port ... ;)

duncan.coutts:
On Wed, 2004-06-02 at 15:45, scott west wrote:
I'd settle for unregisterised... it seems every time I run through the whole port process I see to do some new wrong thing each time, hehe. I'm really just in search of a working ghc implementation for my amd64, registered or not (the main difference is the use of architecture specific registers and thus performance right?).
Some ghc nomenclature: unregistered means "half as fast as you'd like it to be".
If you're after performance (rather than simply working), you'll need to wait for a registered build, or if you've got the assembler hacking skills you can help out.
However, unregisterised amd64 is still as fast as my 2.4Ghz P4 registerised.

I too would be happy with an unregistered build. I've tried off and on to port ghc to my linux distro (uses static linking against uClibc, glibc isn't present at all). Every time I go through the process, I get stuck at the point where I seem to have a working unregistered build. I can't quite find the missing link to proceed on to a registered build, and "make install" on the unregistered build doesn't do anything. Is there some special trick to get the unregistered build to make install? I'm not currently expecting to be a Haskell programmer, though who can tell what the future will bring, but I'd love to port darcs to my distro. -Bennett

swest3:
The amd64 port isn't really there yet. It works unregisterised, but the registerised support need some more work (as you discovered). You also need a non-broken version of gcc (3.3.3 or 3.4.0).
I'd settle for unregisterised... it seems every time I run through the whole port process I see to do some new wrong thing each time, hehe. I'm really just in search of a working ghc implementation for my amd64, registered or not (the main difference is the use of architecture specific registers and thus performance right?). Does anyone have any unregistered amd64 builds that they've cooked up?
If you are running OpenBSD on your amd64, regular builds of 6.2.1 for amd64 are happening in the -current branch. You can download them from ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/ghc-6.2.1.tgz You can also get a lot of the other common Haskell tools there too. -- Don
participants (6)
-
Bennett Todd
-
dons@cse.unsw.edu.au
-
Duncan Coutts
-
Gabriel Ebner
-
Ian Lynagh
-
scott west