Menu

linux 64bit compilation error

Help
tomek
2008-02-21
2013-04-25
  • tomek

    tomek - 2008-02-21

    i'm trying to compile pixie 2.2.3 on 64bit linux, but my copmpilation fails with these errors:

    [...]
    /tmp/ccPPoeEV.s:1416: Error: no such instruction: `lwarx %esi,0,%rdx'
    /tmp/ccPPoeEV.s:1417: Error: suffix or operands invalid for `add'
    /tmp/ccPPoeEV.s:1418: Error: invalid character '.' in mnemonic
    /tmp/ccPPoeEV.s:1419: Error: no such instruction: `bne- $-12'
    make[4]: *** [attributes.lo] Error 1
    make[4]: Leaving directory `/home/tomek/src/Pixie/src/ri'
    make[3]: *** [all] Error 2
    make[3]: Leaving directory `/home/tomek/src/Pixie/src/ri'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/tomek/src/Pixie/src'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/tomek/src/Pixie'
    make: *** [all] Error 2

    i'm running centos5 (rhel5 compatible). any ideas what could be wrong?

     
    • writhe

      writhe - 2008-02-21

      That looks *real* weird. Which platform are you compiling on, 64-bit x86 or PowerPC?

      The instructions that it's complaining about ("lwarx" and "bne") are for PowerPC, but the registers ("%esi" and "%rdx") are for 64-bit x86...

      It looks as though the compiler is seriously confused or broken. You should double check the command line options that are being passed to it or try another compiler.

       
    • tomek

      tomek - 2008-02-21

      i'm on 64-bit x86.

       
      • writhe

        writhe - 2008-02-21

        Yup, your compiler is definitely broken. I would do all the usual stuff (check system is up to date, remove and reinstall the compiler).

        If that doesn't work then try getting help from the people who make your distribution. It looks as though the compiler (assuming you're using GCC) has been built wrong.

        Worst case, try another Linux distribution.

         
    • tomek

      tomek - 2008-02-21

      i've just reinstalled gcc, but compilation fails anyway. it's strange - i've compiled several apps recently and i didn't have any problems.
      yesterday i tried to compile pixie on 32-bit version of centos5, but i came across another problem. i ran out of memory - i have 1gb of ram and about 600mb of swap space. i downloaded binaries instead. but i haven't found 64-bit binaries.
      unfortunetelly, changing distribution is not an option. i think i'll just wait for 64bit binary version :)

       
    • Cedric PAILLE

      Cedric PAILLE - 2008-02-21

      Hi,

      I've a 64-bit (but with 32-bit linux) HP with 1Go RAM, and I need to compile Pixie W/O the X server, or decrease (or remove) the optmisation flag to avoid a compilation crash.

      Hope it helps.

      Best regards.

       
    • tomek

      tomek - 2008-02-21

      i've just downloaded pixie 2.2.2, just to check. and it's compiling right now. so maybe there's nothing wrong with my gcc, and the cause lies somewhere else. i'll just leave it for the night and check the result tomorrow.
      thank you all for your feedback :)

       
      • tomek

        tomek - 2008-02-21

        good news. pixie 2.2.2 compiled and installed just fine :)

         
    • Aasimon

      Aasimon - 2008-02-22

      If you get SVN Rev 1144 it has been fixed.

       
    • Chris Hiestand

      Chris Hiestand - 2008-05-09

      Because the latest svn won't compile for me, I've got pixie 2.2.3 to compile with the following patch to src/ri/atomic.h:

      108,133d107
      < // GCC (x86_64)
      < #elif defined(__x86_64__) && defined(__GNUC__)
      <
      < inline int atomicIncrement(volatile int *ptr) {
      <     unsigned char ret;
      <     asm volatile("lock\n"
      <                  "incl %0\n"
      <                  "setne %1"
      <                  : "=m" (*ptr), "=qm" (ret)
      <                  : "m" (*ptr)
      <                  : "memory");
      <     return ret;
      < }
      <
      < inline int atomicDecrement(volatile int *ptr) {
      <     unsigned char ret;
      <     asm volatile("lock\n"
      <                  "decl %0\n"
      <                  "setne %1"
      <                  : "=m" (*ptr), "=qm" (ret)
      <                  : "m" (*ptr)
      <                  : "memory");
      <     return ret;
      < }
      <
      < ///////////////////////////////////////////////////////////////

       

Log in to post a comment.