Opened 3 years ago
Last modified 3 months ago
#64253 new defect
llvm-3.3 and llvm-3.4 fail for ppc+ppc64 — at Version 9
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 Carsten 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
Change History (11)
Changed 3 years ago by barracuda156
comment:1 Changed 3 years ago by barracuda156
comment:2 Changed 3 years 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 3 years ago by ryandesign (Ryan Carsten 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 3 years 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 3 years ago by ryandesign (Ryan Carsten 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 3 years 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 3 years ago by barracuda156
So not only universal, but ppc64
on its own also broken: #64760
comment:8 Changed 3 years 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 3 years ago by barracuda156
Attachment: | main_llvm34_ppc64.log added |
---|
Here is where I got with it:
comment:9 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|---|
Keywords: | LLVM removed |
llvm-3.4 fails likewise: