Let GHCi work with with Sparc32+/V8+ .o files
authorDuncan Coutts <duncan.coutts@worc.ox.ac.uk>
Tue, 16 May 2006 09:04:30 +0000 (09:04 +0000)
committerDuncan Coutts <duncan.coutts@worc.ox.ac.uk>
Tue, 16 May 2006 09:04:30 +0000 (09:04 +0000)
Currently the GHCi linker looks exclusively for V7 ABI .o files.

You can generate V8+ ABI .o files using flags to gcc such as:
 -optc-mcpu=ultrasparc -opta-mcpu=ultrasparc

Note that this allows gcc to generate hardware integer division and
hardware floating point instructions rather than using software emulation.
All recent sparc hardware is V8+ or later. Perhaps we should check for the
cpu generation in configure and use the later ABI if possible.

Tested briefly on a SunBlade 100 (TI UltraSparc IIe) sparc-unknown-linux

rts/Linker.c

index e1be5e6..4aca397 100644 (file)
@@ -2908,6 +2908,9 @@ ocVerifyImage_ELF ( ObjectCode* oc )
    IF_DEBUG(linker,debugBelch( "Architecture is " ));
    switch (ehdr->e_machine) {
       case EM_386:   IF_DEBUG(linker,debugBelch( "x86" )); break;
+#ifdef EM_SPARC32PLUS
+      case EM_SPARC32PLUS:
+#endif
       case EM_SPARC: IF_DEBUG(linker,debugBelch( "sparc" )); break;
 #ifdef EM_IA_64
       case EM_IA_64: IF_DEBUG(linker,debugBelch( "ia64" )); break;