Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#53138 closed defect (fixed)

clang-3.x: fails to build on Mountain Lion, possible circular dependencies

Reported by: maxkalashnikov-macports (Max Kalashnikov) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.3.5
Keywords: Cc: larryv (Lawrence Velázquez), mojca (Mojca Miklavec)
Port: clang-3.3 clang-3.4 clang-3.5 clang-3.6 clang-3.7 clang-3.8 clang-3.9

Description

This seems similar to #52091 du to the common error output for any of the clang ports:

Error: The following dependencies were not installed: cctools llvm-3.9 clang-3.8 clang-3.7 ld64 ld64-latest llvm-3.8

I believe this worked in version 2.3.4, and I haven't installed a differen Xcode, which is 5.1.1.

Full otuput of port -d install clang-3.3 attached.

Attachments (2)

mp-debug (43.3 KB) - added by maxkalashnikov-macports (Max Kalashnikov) 7 years ago.
port -d install clang-3.3
mp-cctools-debug (17.5 KB) - added by maxkalashnikov-macports (Max Kalashnikov) 7 years ago.
port -d install cctools

Download all attachments as: .zip

Change History (20)

Changed 7 years ago by maxkalashnikov-macports (Max Kalashnikov)

Attachment: mp-debug added

port -d install clang-3.3

comment:1 Changed 7 years ago by mf2k (Frank Schima)

Cc: larryv added
Owner: set to jeremyhu
Status: newassigned

In the future, please Cc the port maintainers (port info --maintainers clang-3.3 clang-3.4 clang-3.5 clang-3.6 clang-3.7 clang-3.8 clang-3.9), if any.

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

Resolution: duplicate
Status: assignedclosed

Why do you need clang-3.3 on Montain Lion. It basically exists for Leopard.

As for the circular dependencies, that's fixed already. See #53110

comment:3 Changed 7 years ago by maxkalashnikov-macports (Max Kalashnikov)

Last edited 7 years ago by maxkalashnikov-macports (Max Kalashnikov) (previous) (diff)

comment:4 in reply to:  2 Changed 7 years ago by maxkalashnikov-macports (Max Kalashnikov)

Replying to jeremyhu:

Why do you need clang-3.3 on Montain Lion. It basically exists for Leopard.

I don't need any particular version. I used its debug output because it had the fewest lines of the 7.

As for the circular dependencies, that's fixed already. See #53110

I don't see how that would fix this issue, since that appears to be a change to the libomp port, of which I already have the latest version installed, not any of the clang (or llvm) ports nor cctools or ld64, which are what appear in the error message I receive.

Trying to install cctools, I get:

Error: The following dependencies were not installed: llvm-3.9 clang-3.8 cctools clang-3.7 ld64 ld64-latest llvm-3.8

So maybe that's the port with circular dependency, since it seems to depend on itself. Should I open another ticket against it, instead?

comment:5 Changed 7 years ago by maxkalashnikov-macports (Max Kalashnikov)

Resolution: duplicate
Status: closedreopened

Changed 7 years ago by maxkalashnikov-macports (Max Kalashnikov)

Attachment: mp-cctools-debug added

port -d install cctools

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

Ah.

ld64-X depends on llvm39 (or llvm38), but your version of Xcode is too old to build llvm, so it tries to use the fallback (macports-clang-X.Y). That depends on ld64, and cycle.

I suggest you install ld64 with the +ld64_xcode variant, then install clang-3.9, then deactivate and reinstall ld64 (with -ld64_xcode)

comment:7 Changed 7 years ago by maxkalashnikov-macports (Max Kalashnikov)

That doesn't seem to work, though having ld64+ld64_xcode installed eliminates ld64 from the list of dependencies in the error message:

--->  Computing dependencies for clang-3.9......
--->  Dependencies to be installed: cctools llvm-3.9 clang-3.8 clang-3.7 llvm-3.8
Error: The following dependencies were not installed: cctools llvm-3.9 clang-3.8 clang-3.7 llvm-3.8
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port clang-3.9 failed

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

Resolution: fixed
Status: reopenedclosed

In ecaccfb3/macports-ports:

llvm-{3.8,3.9,devel}: Drop dependency on cctools for building clang

We don't need to use install_name_tool when building compiler_rt in the cmake based build system.

Fixes #53138

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

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

Although I'm not satisfied that's the last of them.

We might need to re-add +llvm37 variants when building with older versions of Xcode to help with the bootstrapping problem.

comment:10 Changed 7 years ago by mojca (Mojca Miklavec)

Cc: mojca added

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

In ceaae55e/macports-ports:

cctools: Add a +llvm37 variant to help bootstrap Mountain Lion and Mavericks

Fixes #53138

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

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

In e16e8261/macports-ports:

ld64: Add a +llvm37 variant to help bootstrap Mountain Lion and Mavericks

Fixes #53138

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

comment:13 Changed 7 years ago by mojca (Mojca Miklavec)

Other OS versions have

if {${os.major} == 10 || ${os.major} == 11} {
    default_variants +llvm34
} elseif {${os.major} == 9} {
    # Using llvm-3.3 to break dependency cycle (https://trac.macports.org/ticket/52091)
    default_variants +llvm33
}

Isn't the same needed on 10.8 & 10.9 as well?

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

Doh. Yeah, I left that out.

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

In d322f154/macports-ports:

ld64: Default to +llvm37 on Mountain Lion and Mavericks

Fixes #53138

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

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

In 4b49d965/macports-ports:

cctools: Default to +llvm37 on Mountain Lion and Mavericks

Fixes #53138

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

comment:17 Changed 7 years ago by mojca (Mojca Miklavec)

Thanks, it looks better on the buildbots now. Unrelated to this ticket, but where exactly does x86_64h come from? log:

cd /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_llvm-3.8/clang-3.8/work/build/projects/compiler-rt/lib/builtins && lipo -output /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_llvm-3.8/clang-3.8/work/build/./lib/clang/3.8.1/lib/darwin/libclang_rt.cc_kext.a -create -arch i386 /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_llvm-3.8/clang-3.8/work/build/lib/libclang_rt.cc_kext_i386_osx.a -arch x86_64 /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_llvm-3.8/clang-3.8/work/build/lib/libclang_rt.cc_kext_x86_64_osx.a -arch x86_64h /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_llvm-3.8/clang-3.8/work/build/lib/libclang_rt.cc_kext_x86_64h_osx.a
lipo: unknown architecture specification flag: x86_64h in specifying input file -arch x86_64h /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_llvm-3.8/clang-3.8/work/build/lib/libclang_rt.cc_kext_x86_64h_osx.a
lipo: known architecture flags are: any little big ppc64 x86_64 ppc970-64 ppc i386 m68k hppa sparc m88k i860 veo arm ppc601 ppc603 ppc603e ppc603ev ppc604 ppc604e ppc750 ppc7400 ppc7450 ppc970 i486 i486SX pentium i586 pentpro i686 pentIIm3 pentIIm5 pentium4 m68030 m68040 hppa7100LC veo1 veo2 veo3 veo4 armv4t armv5 xscale armv6 armv7 armv7f armv7k
lipo: Usage: lipo [input_file] ... [-arch <arch_type> input_file] ... [-info] [-detailed_info] [-output output_file] [-create] [-arch_blank <arch_type>] [-thin <arch_type>] [-remove <arch_type>] ... [-extract <arch_type>] ... [-extract_family <arch_type>] ... [-verify_arch <arch_type> ...] [-replace <arch_type> <file_name>] ...
make[2]: *** [lib/clang/3.8.1/lib/darwin/libclang_rt.cc_kext.a] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_llvm-3.8/clang-3.8/work/build'
make[1]: *** [projects/compiler-rt/lib/builtins/CMakeFiles/clang_rt.cc_kext.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

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

x86_64h is for CPU_SUBTYPE_X86_64_H. It requires Haswell or newer. One solution there is to pick up newer cctools if Xcode's is too old. Or we can just drop that slice.

Note: See TracTickets for help on using tickets.