SGI-Port // Mnagler-Gcc Interface...

Rafael Martínez Torres martinez.torres@fdi.ucm.es
Tue, 26 Feb 2002 19:45:00 +0000


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.