Opened 18 months ago
Last modified 9 months ago
#64253 new defect
llvm-3.3 and llvm-3.4 fail for ppc+ppc64
Reported by: | barracuda156 | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.1 |
Keywords: | PowerPC, Leopard, ppc64 | Cc: | |
Port: | llvm-3.3, llvm-3.4 |
Description (last modified by ryandesign (Ryan Schmidt))
First of all, by default it asks for python27 to be built as universal, which fails: #50821
After adding depends_skip_archcheck-append python27 it starts building, but eventually fails:
/opt/local/bin/ranlib: archive member: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build/Release/lib/libLLVMARMDesc.a(ARMAsmBackend.o) fat object file's offset in archive not a multiple of 8) (must be since member is a 64-bit object file) ranlib /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build/Release/lib/libLLVMARMDesc.a ranlib: archive member: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build/Release/lib/libLLVMARMDesc.a(ARMAsmBackend.o) fat object file's offset in archive not a multiple of 8) (must be since member is a 64-bit object file) make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build/lib/Target/ARM/MCTargetDesc' make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build/lib/Target/ARM' make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build/lib/Target' make[1]: *** [Target/.makeall] Error 2 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build/lib' make: *** [all] Error 1 make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/work/build" && /usr/bin/make -j4 -w all Exit code: 2 Error: Failed to build llvm-3.3: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.3/llvm-3.3/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port llvm-3.3 failed
Attachments (2)
Change History (11)
Changed 18 months ago by barracuda156
comment:1 Changed 18 months ago by barracuda156
comment:2 Changed 18 months ago by barracuda156
Port: | llvm-3.4 added |
---|---|
Summary: | llvm-3.3 fails for ppc64 → llvm-3.3 and llvm-3.4 fail for ppc+ppc64 |
comment:3 follow-ups: 4 8 Changed 18 months ago by ryandesign (Ryan Schmidt)
Looks like ar
is used to create libLLVMCodeGen.a and then ranlib
is asked to operate on that static library and complains about how it was made. I have often seen the recommendation that static libraries should be created using libtool
, not ar
. I don't know if that would solve this particular issue. If you can figure out how to tell llvm to use libtool
instead of ar
you could try that.
comment:4 follow-up: 5 Changed 18 months ago by barracuda156
Replying to ryandesign:
Looks like
ar
is used to create libLLVMCodeGen.a and thenranlib
is asked to operate on that static library and complains about how it was made. I have often seen the recommendation that static libraries should be created usinglibtool
, notar
. I don't know if that would solve this particular issue. If you can figure out how to tell llvm to uselibtool
instead ofar
you could try that.
There are some posts online apparently addressing the issue, however they don't seem to work. For example, this is specifically for llvm: https://reviews.llvm.org/rG6108658da4c2cef2d303c6a2fddfb60a5d589e69 (fails anyway).
AR
is defined in Makefile.config.in
and AR.Flags
defined in Makefile.rules
. I can patch these to use Libtool, but I don't know which flags to use.
I tried "-static -o" from here: https://patchwork.kernel.org/project/qemu-devel/patch/1462236478-61645-2-git-send-email-chrisfriedt@gmail.com - and it failed too.
comment:5 follow-up: 6 Changed 18 months ago by ryandesign (Ryan Schmidt)
Replying to barracuda156:
I tried "-static -o" from here: https://patchwork.kernel.org/project/qemu-devel/patch/1462236478-61645-2-git-send-email-chrisfriedt@gmail.com - and it failed too.
I would expect that this would at least change the error message?
comment:6 Changed 18 months ago by barracuda156
Replying to ryandesign:
Replying to barracuda156:
I tried "-static -o" from here: https://patchwork.kernel.org/project/qemu-devel/patch/1462236478-61645-2-git-send-email-chrisfriedt@gmail.com - and it failed too.
I would expect that this would at least change the error message?
It has been failing every time on the same place (CodeGen for ppc64) until I redefined AR to libtool, and now it fails due to incorrect flags:
error: libtool: no output file specified (specify with -o output) Usage: libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT] [-no_warning_for_no_symbols] Usage: libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load] make[1]: *** [/opt/local/var/macports/build/_opt_PPCLeopardPorts_lang_llvm-3.3/llvm-3.3/work/build-ppc/Release/lib/libLLVMSupport.a] Error 1 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_lang_llvm-3.3/llvm-3.3/work/build-ppc/lib/Support' make: *** [all] Error 1 make: Leaving directory `/opt/local/var/macports/build/_opt_PPCLeopardPorts_lang_llvm-3.3/llvm-3.3/work/build-ppc' Command failed: cd "/opt/local/var/macports/build/_opt_PPCLeopardPorts_lang_llvm-3.3/llvm-3.3/work/build-ppc" && /usr/bin/make -j4 -w all Exit code: 2 Error: Failed to build llvm-3.3: command execution failed
comment:7 Changed 15 months ago by barracuda156
So not only universal, but ppc64
on its own also broken: https://trac.macports.org/ticket/64760
comment:8 Changed 15 months ago by barracuda156
Replying to ryandesign:
Looks like
ar
is used to create libLLVMCodeGen.a and thenranlib
is asked to operate on that static library and complains about how it was made. I have often seen the recommendation that static libraries should be created usinglibtool
, notar
. I don't know if that would solve this particular issue. If you can figure out how to tell llvm to uselibtool
instead ofar
you could try that.
Okay what I did is manually running /usr/bin/libtool -static -o
each time when ar cru
failed. This might have got me through those errors (compilation proceeded, but I still got another failure, so cannot be sure that worked). Now the build failed here:
make[3]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/MC/MCDisassembler' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/MC/MCDisassembler' make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/MC' make[3]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/CodeGen/SelectionDAG' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/CodeGen/SelectionDAG' make[3]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/CodeGen/AsmPrinter' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/CodeGen/AsmPrinter' make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/CodeGen' {standard input}:7:Parameter syntax error (parameter 1) {standard input}:8:Parameter syntax error (parameter 1) {standard input}:9:Parameter syntax error (parameter 1) {standard input}:10:Parameter syntax error (parameter 1) {standard input}:11:Parameter syntax error (parameter 1) {standard input}:12:Parameter syntax error (parameter 1) {standard input}:13:Parameter syntax error (parameter 1) {standard input}:14:Parameter syntax error (parameter 1) {standard input}:15:Parameter syntax error (parameter 1) {standard input}:16:Parameter syntax error (parameter 1) {standard input}:17:Parameter syntax error (parameter 1) {standard input}:18:Parameter syntax error (parameter 1) {standard input}:19:Parameter syntax error (parameter 1) {standard input}:20:Parameter syntax error (parameter 1) {standard input}:21:Parameter syntax error (parameter 1) {standard input}:22:Parameter syntax error (parameter 1) {standard input}:23:Parameter syntax error (parameter 1) {standard input}:24:Parameter syntax error (parameter 1) {standard input}:25:Parameter syntax error (parameter 1) {standard input}:26:Parameter syntax error (parameter 1) {standard input}:27:Parameter syntax error (parameter 1) {standard input}:28:Parameter syntax error (parameter 1) {standard input}:29:Parameter syntax error (parameter 1) {standard input}:30:Parameter syntax error (parameter 1) {standard input}:31:Parameter syntax error (parameter 1) {standard input}:32:Parameter syntax error (parameter 1) {standard input}:33:Parameter syntax error (parameter 1) {standard input}:34:Parameter syntax error (parameter 1) {standard input}:36:Parameter syntax error (parameter 2) {standard input}:37:Parameter syntax error (parameter 1) {standard input}:38:Parameter syntax error (parameter 1) {standard input}:39:Parameter syntax error (parameter 1) {standard input}:40:Parameter syntax error (parameter 1) {standard input}:41:Parameter syntax error (parameter 1) {standard input}:42:Parameter syntax error (parameter 1) {standard input}:43:Parameter syntax error (parameter 1) {standard input}:44:Parameter syntax error (parameter 1) {standard input}:45:Parameter syntax error (parameter 1) {standard input}:46:Parameter syntax error (parameter 1) {standard input}:47:Parameter syntax error (parameter 1) {standard input}:48:Parameter syntax error (parameter 1) {standard input}:49:Parameter syntax error (parameter 1) {standard input}:50:Parameter syntax error (parameter 1) {standard input}:51:Parameter syntax error (parameter 1) {standard input}:52:Parameter syntax error (parameter 1) {standard input}:53:Parameter syntax error (parameter 1) {standard input}:54:Parameter syntax error (parameter 1) {standard input}:55:Parameter syntax error (parameter 1) {standard input}:56:Parameter syntax error (parameter 1) {standard input}:57:Parameter syntax error (parameter 1) {standard input}:58:Parameter syntax error (parameter 1) {standard input}:59:Parameter syntax error (parameter 1) {standard input}:60:Parameter syntax error (parameter 2) make[3]: *** [/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/Target/PowerPC/Release/PPCJITInfo.o] Error 1 make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/Target/PowerPC' make[2]: *** [PowerPC/.makeall] Error 2 make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib/Target' make[1]: *** [Target/.makeall] Error 2 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build/lib' make: *** [all] Error 1 make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-3.4/llvm-3.4/work/build" && /usr/bin/make -j4 -w all Exit code: 2
Changed 15 months ago by barracuda156
Attachment: | main_llvm34_ppc64.log added |
---|
Here is where I got with it:
comment:9 Changed 9 months ago by ryandesign (Ryan Schmidt)
Description: | modified (diff) |
---|---|
Keywords: | LLVM removed |
llvm-3.4 fails likewise: