Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

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;
      < }
      <
      < ///////////////////////////////////////////////////////////////