Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#34634 closed defect (wontfix)

llvm 3.0 won’t build on ppc64

Reported by: Veence (Vincent) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.1.1
Keywords: llvm-3.0 ppc64 Cc:
Port: llvm-3.0

Description

While building llvm-3.0 for ppc seems to work, building it for ppc64 fails:

sudo /usr/bin/g++-4.2 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.0/llvm-3.0/work/llvm-3.0.src/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.0/llvm-3.0/work/llvm-3.0.src/lib/Target/PowerPC -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Os -g -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual -Wcast-qual -mmacosx-version-min=10.5 -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings -arch ppc -c PPCJITInfo.cpp -o /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.0/llvm-3.0/work/llvm-3.0.src/lib/Target/PowerPC/Release+Debug/PPCJITInfo.o

compiles OK. The ppc64 equivalent does not:

sudo /usr/bin/g++-4.2 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.0/llvm-3.0/work/llvm-3.0.src/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.0/llvm-3.0/work/llvm-3.0.src/lib/Target/PowerPC -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Os -g -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual -Wcast-qual -mmacosx-version-min=10.5 -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings -arch ppc64 -c PPCJITInfo.cpp -o /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_llvm-3.0/llvm-3.0/work/llvm-3.0.src/lib/Target/PowerPC/Release+Debug/PPCJITInfo.o
/var/tmp//cci6Aqr4.s:38:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:39:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:40:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:41:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:42:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:43:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:44:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:45:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:46:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:47:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:48:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:49:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:50:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:51:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:52:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:53:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:54:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:55:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:56:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:57:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:58:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:59:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:60:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:61:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:62:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:63:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:64:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:65:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:67:Parameter syntax error (parameter 2)
/var/tmp//cci6Aqr4.s:68:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:69:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:70:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:71:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:72:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:73:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:74:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:75:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:76:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:77:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:78:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:79:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:80:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:81:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:82:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:83:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:84:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:85:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:86:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:87:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:88:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:89:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:90:Parameter syntax error (parameter 1)
/var/tmp//cci6Aqr4.s:91:Parameter syntax error (parameter 2)

Therefore, a universal build of llvm-3.0 also fails.

Change History (7)

comment:1 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: wontfix
Status: newclosed

Work with upstream for ppc64 support.

comment:2 Changed 12 years ago by Veence (Vincent)

Okay, but now explain me how I am supposed to compile a universal gcc46 on my PPC64 MacPro? Fact is, at this point in time, nobody can compile a gcc version for ppc64 anymore! That’s a botch.

comment:3 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

If you want to support ppc64, be my guest. I'm not going to stop you, but the fact is that the only supported platforms are SL+ and Intel at this point. You'll get sympathy from me over ppc issues, but I don't think we have resources to devote to ppc64.

comment:4 Changed 12 years ago by Veence (Vincent)

I understand this very well. I don’t mind llvm not supporting ppc64. My ire was caused by the fact that llvm is now a dependency of gcc; in other words, building a compiler that supports ppc64 requires building a compiler (why?) that cannot. Call it by any name, for me I can’t help but thinking it is stupid. That cctools stuff should not be enforced for ppc archs.

I had to tweak my Macports.conf file to change build_arch to ppc, then manually remove --disable-multilib from the configure_args to build a universal gcc (ppc/ppc64) without using the universal variant. But now I am stuck, because if I want to build a ppc64 binary, I have to reset build_arch to ppc64, and Macports wants to rebuild gcc…

comment:5 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

llvm is not a dependency of gcc. ld64 and cctools is, and you're more than welcome to build them without llvm support... That's why they are variants...

comment:6 Changed 12 years ago by Veence (Vincent)

Well, if I try to build gcc46, Macports tells me I have to build llvm-3.0 before… Otherwise I would not have bothered. BTW, llvm is not even used to build gcc. Go figure…

comment:7 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Yes, as mentioned, llvm is a dependency of cctools and ld64. If you don't want llvm (or if you are running an architcture which doesn't have good llvm support), you can disable llvm support in those projects by simply turning off the variant. That is why it is there.

Note: See TracTickets for help on using tickets.