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

Close

Open64 tries to build 64-bit binaries on IA32

ibidem
2011-12-16
2013-06-04
  • ibidem
    ibidem
    2011-12-16

    I've been fighting with the "i686" binaries for Open64 5.0, in an attempt to bootstrap an i686 compiler.
    They run on i686, but target x86_64.
    So far I have not been able to find the correct parameters: it will build 64-bit objects, try to link with "CC32", and of course fail spectacularly.
    This is the case regardless of what I try, except that I can kill it another way with the right flags..
    I've attempted a plain …/open64/configure, adding -target=i686-pc-linux-gnu, adding -host=i686-pc-linux-gnu, and setting BUILD_TARGET=IA32 (which instead dies because of a missing directory).
    From what I see, it looks like configure detects that -m32 is needed; but the compiler seems not to recognize that this means generate 32-bit ASM.
    (I've also had this issue with any other attempt to use the binaries)

    Sample errors:

    /tmp/ccgk9olm.s:4880: Error: bad register name `%rip)'
    /tmp/ccgk9olm.s:4881: Error: bad register name `%rip)'
    /tmp/ccgk9olm.s:4885: Error: bad register name `%r12d'
    /tmp/ccgk9olm.s:4887: Error: bad register name `%r13)'
    /tmp/ccgk9olm.s:4889: Error: bad register name `%r13)'
    /tmp/ccgk9olm.s:4894: Error: bad register name `%rsp)'
    /tmp/ccgk9olm.s:4895: Error: bad register name `%bpl'
    /tmp/ccgk9olm.s:4898: Error: bad register name `%r15)'
    /tmp/ccgk9olm.s:4902: Error: bad register name `%rip)'
    /tmp/ccgk9olm.s:4903: Error: bad register name `%rax)'
    /tmp/ccgk9olm.s:4910: Error: bad register name `%rip)'
    /tmp/ccgk9olm.s:4911: Error: bad register name `%rip)'
    /tmp/ccgk9olm.s:4912: Error: bad register name `%rip)'
    /tmp/ccgk9olm.s:4913: Error: bad register name `%rip)'
    /tmp/ccgk9olm.s:4917: Error: bad register name `%r9d'
    /tmp/ccgk9olm.s:4919: Error: bad register name `%rbx)'
    /tmp/ccgk9olm.s:4921: Error: bad register name `%rbx)'
    make: ***  Error 1