#4803: "can't find a register in class ‘BREG’ while reloading ‘asm’" - problem
with dynamic link libraries
-----------------------+----------------------------------------------------
    Reporter:  guest   |       Owner:                           
        Type:  bug     |      Status:  new                      
    Priority:  normal  |   Component:  Compiler                 
     Version:  6.12.3  |    Keywords:                           
    Testcase:          |   Blockedby:                           
          Os:  Linux   |    Blocking:                           
Architecture:  x86     |     Failure:  GHC rejects valid program
-----------------------+----------------------------------------------------
 When compiling the cpuid package with dynamic link libraries I get the
 following error:
 {{{
 $ cabal install --enable-shared cpuid-0.2
 ...
 cbits/cpuid.c: In function ‘cpuid’:

 cbits/cpuid.c:7:0:
      error: can't find a register in class ‘BREG’ while reloading ‘asm’

 cbits/cpuid.c:7:0:  error: ‘asm’ operand has impossible constraints
 ...
 }}}

 The shortest call of ghc to reproduce this error is:
 {{{
 cpuid-0.2/cbits$ ghc -fPIC -c cpuid.c
 }}}

 The shortest call of gcc to reproduce this error is:
 {{{
 cpuid-0.2/cbits$ gcc -fPIC -c cpuid.c
 }}}

 The content of cpuid.c is:
 {{{
 void cpuid(int in, int * aa, int * bb, int * cc, int * dd)
 {
   int a, b, c, d;
   asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in));
   *aa = a;
   *bb = b;
   *cc = c;
   *dd = d;
 }
 }}}

 Shall I consider this a bug of GHC or of the cpuid package?
 Since GCC complains about this problem, I'm afraid it must be solved in
 the cpuid package.
 Just wanted to make sure the problem is reported somewhere.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4803>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to