
Hello: I'm trying to run GHC in a mips-SGI-irix platform, more accurately Irix 6. The last binary version avalaible (ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/) is for ghc-2.10 (ghc-2.10-mips-sgi-irix6.tar.gz) . In order to reach the actual ghc-5-XX step by step, I will start by porting ghc-3.02, ghc-4.08.... 1) Is it really ghc-2.10 the last version avalaible ? If any newer, where to get it from (Any other discussing group) ? I tried unsuccesfully to run the ghc-2.10 on a Irix6 . The mangler-phase seems to fail and aborts the process. I had been told that for newer ghc-versions I should rearrange the mangler to make GHC run, but I hoped the 2.10 binary version to run succesfull.
From a Unix-programmer external point of view ,(exclude STG or run-time dessigner scope) my empirical experience by running several versions (ghc-3.02,ghc-4.08 ) among different platforms ( sparc-sunos, i386-linux ) suggest me the next:
( I may be wrong or confused. My STG computation model is not very mature (Four months ) Enlightment would be acknowledged ) - Obtaining a succesfull image doesn't depend so much from the run time system implementation varying from ghc-[2345]-XX as from the gcc-mangler interface.(At least for "Hello world" programs, differ subtility from correctness in larger projects, where the run-time system takes more relevance )( Read next) - The mangler is closely bound to the gcc output. As a matter of versioning problem, when gcc goes upwards the mangler may not to operate correctly. Mangler reduces well for gcc-2.7.2.3 and fails for gcc-2.95.1 ( Test source: ghc-3.02 on both i386-linux and sparc-sun. both linked, but a faulty image was generetaed. The O.S sends the runtime a signal and aborted the program). - As a consequence of the previous point, the original idea for using C as a "transparent macro-assembler" among different platforms is now discussed again. In practical terms, not only the C compiler used (I have tried only GNU CC) but the compiler version may interfere the entire ghc-compiling process. This should be of special interest for making binary distributions (rpm, pkg...) The first time I ran the ghc-3.02 (installed from chack's rpm's ) on a i386-linux it failed. Reason: my Linux distribution installed the ghc-2.95.1. Reinstalling downwards the gcc to 2.7.2.3 solved the problem. Hence, 2) Should the binary versions be distributted with the specific gcc version attached ,like other compiler packets do (i.e Ada ) ? This would help to portability among different platforms, though C-compiler transparency would be compromised. Only Gcc should be used and specific version... Unless you want a normal user to hack the mangler piece... 3) Specific question: As a porter, I have two choices in order to make GHC run in a mips-SGI-irix platform... - To hack the mangler: discarded since I have no deep knowledge about how the mangler operates. :-| - To retrieve (from this mailing list) which a configuration was last used to make ghc-2.10 run on a mips-SGI-irix. Instead of rearrenge the mangler to match the environment, I will rearrange the environment to match the mangler. Which gcc version was the ghc-2.10 mangler designed for ? Or The highest gcc version the binary (ghc-2.10-mips-sgi-irix6.tar.gz) ran sucessfull last time : The gcc-2.95 seems to fail... 4)Once I have got it : should I install the GNU assembler for MIPS or use the propietary one ? This is because I have read the gcc modifies its output according to the asssembler to be used in the next step (--with-gnu-as in the configure ). Was this considered during the mangler dessign ? 5) I think once you have the final .o files, choice between GNU or propietary linker shouldn't matter grosso modo. True ? Cheers.

Rafael writes:
I'm trying to run GHC in a mips-SGI-irix platform, more accurately Irix 6.
The last binary version avalaible (ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/) is for ghc-2.10 (ghc-2.10-mips-sgi-irix6.tar.gz) .
In order to reach the actual ghc-5-XX step by step, I will start by porting ghc-3.02, ghc-4.08....
The other way to do the port is to bootstrap from HC files; i.e., forget that any ghc build exists on your architecture, and start from scratch. The method is discussed briefly at http://www.haskell.org/ghc/docs/latest/building/sec-booting-from-c.html but basically involves using pre-built, non-gcc-specific C files that don't need mangling to build the first stage GHC compiler. From there, you have a Haskell compiler that can be used to compile the real GHC natively, and you can work on the mangler etc as necessary. No doubt one of the GHC Team will give more details. In general, the GHC Team is very happy to help with this kind of thing, because they want GHC to be available on as many platforms as possible. HTH.. --KW 8-)
participants (2)
-
Keith Wansbrough
-
Rafael MartÃnez Torres