Version française
Home     About     Download     Resources     Contact us    
Browse thread
Objective Caml 2 with RedHat 5.1
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Xavier Leroy <Xavier.Leroy@i...>
Subject: Re: Objective Caml 2 with RedHat 5.1
> I've recently upgraded to RedHat  (Linux) 5.1 and am having
problems.
> [...]
> interp.c:983: fixed or forbidden register was spilled.
> This may be due to a compiler bug or to impossible asm
> statements or clauses.

Several users have reported this problem.  It looks like the "asm"
statements for the Intel x86 in byterun/interp.c don't work with gcc
2.8 nor egcs (but they work OK with gcc 2.7).  The one-line patch
below fixes this problem.

If you're using RedHat 5.1, you can also download pre-compiled RPM
binaries from our FTP site (ftp.inria.fr:/lang/caml-light).

- Xavier Leroy

Index: csl/byterun/interp.c
diff -c csl/byterun/interp.c:1.46 csl/byterun/interp.c:1.47
*** csl/byterun/interp.c:1.46	Tue Jun 23 18:47:02 1998
--- csl/byterun/interp.c	Mon Sep  7 09:57:05 1998
***************
*** 9,15 ****
  /*                                                                     */
  /***********************************************************************/
  
! /* $Id: interp.c,v 1.46 1998/06/23 16:47:02 xleroy Exp $ */
  
  /* The bytecode interpreter */
  
--- 9,15 ----
  /*                                                                     */
  /***********************************************************************/
  
! /* $Id: interp.c,v 1.47 1998/09/07 07:57:05 xleroy Exp $ */
  
  /* The bytecode interpreter */
  
***************
*** 124,130 ****
  #ifdef __i386__
  #define PC_REG asm("%esi")
  #define SP_REG asm("%edi")
! #define ACCU_REG asm("%ebx")
  #endif
  #if defined(PPC) || defined(_POWER) || defined(_IBMR2)
  #define PC_REG asm("26")
--- 124,130 ----
  #ifdef __i386__
  #define PC_REG asm("%esi")
  #define SP_REG asm("%edi")
! #define ACCU_REG
  #endif
  #if defined(PPC) || defined(_POWER) || defined(_IBMR2)
  #define PC_REG asm("26")